ndb и последовательность: почему происходит такое поведение в запросе без родителя

я делаю некоторую работу с Python и ndb и могуне понимаю почему. Я'Я опубликую случаи и код выше:

models.py
class Reference(ndb.Model):
  kind = ndb.StringProperty(required=True)
  created_at = ndb.DateTimeProperty(auto_now_add=True)
  some_id = ndb.StringProperty(indexed=True)
  data = ndb.JsonProperty(default={})

Эти тесты выполняются в интерактивной консоли и с параметром --high_replication для dev_appserver.py:

Тест 1
from models import Reference
from google.appengine.ext import ndb
import random

some_id = str(random.randint(1, 100000000000000))
key_id = str(random.randint(1, 100000000000000))

Reference(id=key_id, some_id=some_id, kind='user').put()
print Reference.query(Reference.some_id == some_id, Reference.kind == 'user').get()

# output:
# >> None

Зачем ????? Теперь давайтеs добавить сон (1) перед печатью:

Тест 2
from models import Reference
from google.appengine.ext import ndb
import random
from time import sleep

some_id = str(random.randint(1, 100000000000000))
key_id = str(random.randint(1, 100000000000000))

Reference(id=key_id, some_id=some_id, kind='user').put()
sleep(1)
print Reference.query(Reference.some_id == some_id, Reference.kind == 'user').get()

# output:
# >> Reference(key=Key('Reference', '99579233467078'), createdAt=datetime.datetime(2013, 1, 31, 16, 24, 46, 383100), data={}, kind=u'user', some_id=u'25000975872388')

К, давайПредположим, этоэмулируя время распространения документа на все Googles таблиц, я никогда не буду спать в моем коде, ofc. Теперь давайтеs удалить сон и добавить родителя!

Тест 3
from models import Reference
from google.appengine.ext import ndb
import random
from time import sleep

some_id = str(random.randint(1, 100000000000000))
key_id = str(random.randint(1, 100000000000000))

Reference(id='father', kind='father').put()

Reference(parent=ndb.Key(Reference, 'father'), id=key_id, some_id_id=some_id, kind='user').put()
print Reference.query(Reference.some_id == some_id, Reference.kind == 'user', ancestor=ndb.Key(Reference, 'father')).get()

# output:
# >> Reference(key=Key('Reference', '46174672092602'), createdAt=datetime.datetime(2013, 1, 31, 16, 24, 46, 383100), data={}, kind=u'user', some_id=u'55143106000841')

Теперь, когдасмущает! Просто установите родителя и дайте мне сильную последовательность! Зачем ? И если это требуется для обеспечения строгой согласованности, почему бы не иметь все документы одного и того же родителя при вставке его в хранилище данных по умолчанию? Может я'Я делаю это совершенно неправильно, и есть способ сделать это лучше. Пожалуйста, кто-нибудь, ведите меня!

заранее спасибо

Ответы на вопрос(1)

Ваш ответ на вопрос