DjangoAppEngine и возможные проблемы с согласованностью в хранилище данных с высокой репликацией - PullRequest
0 голосов
/ 17 февраля 2012

Я использую djangoappengine, и я думаю, что столкнулся с некоторыми проблемами, связанными с тем, как он обрабатывает возможную согласованность в хранилище данных высокого уровня.

Во-первых, группы сущностей даже не реализованы в djangoappengine.

Во-вторых, я думаю, что когда вы выполняете djangoappengine get, базовая система движка приложений выполняет запросы движка приложений, которые в конечном итоге оказываются согласованными.Следовательно, вы даже не можете предполагать согласованность с использованием ключей.

Предполагая, что эти два утверждения верны (и я думаю, что они есть), как создать приложение любой сложности, используя djangoappengine, в хранилище данных с высокой репликацией?Каждый раз, когда вы сохраняете значение и затем пытаетесь получить одно и то же значение, нет гарантии, что оно будет одинаковым.

Ответы [ 3 ]

1 голос
/ 26 февраля 2012

Взгляните на djangoappengine / db / compiler.py: get_matching_pk ()

Если вы выполните djangomodel.get () с помощью pk, он будет преобразован в Google App Engine Get ().В противном случае это будет преобразовано в запрос.Здесь есть место для улучшения.Отправить исправление?

0 голосов
/ 17 февраля 2012

Независимо от того, какую систему вы ставите поверх моделей AppEngine, все равно верно, что при сохранении ее в хранилище данных вы получаете ключ.Когда вы просматриваете сущность через ее ключ в хранилище данных HR, вы гарантированно получите самые последние результаты.

0 голосов
/ 17 февраля 2012

Не совсем знаю о djangoappengine, но запрос appengine, если он включает только ключ, считается запросом только с ключом, и вы всегда будете получать согласованные результаты.

...