Означает ли в конечном счете согласованность БД с высоким уровнем репликации, что отсоединенные объекты JDO не всегда могут содержать обновленный граф объектов?

Я использовал базу данных Master/Slave для предыдущих проектов App Engine, но мое новое приложение определено как хранилище данных с высоким уровнем репликации (я не верю, что этот параметр можно изменить после его определения).

То, что я делал до сих пор, вызывал detachedCopy для объекта после обновления, чтобы последующее обновление обязательно работало с недавно обновленным графом объекта.

Однако у хранилища данных с высоким уровнем репликации есть характеристика, которую я не совсем понимаю, но которая меня беспокоит, а именно «в конечном счете непротиворечивая». Что я слышал от некоторых людей Python в группе Google App Engine, так это то, что они будут выполнять обновление объекта «модель», но поскольку хранилище данных с высоким уровнем репликации не возвращает обновленный граф объекта, пока не почувствует себя так, любые последующие обновления к этому объекту теперь может не синхронизироваться с базовым хранилищем данных.

Если это так, то это как бы портит то, как я использовал detachedCopy в Datanucleus JDO - в базе данных Master/Slave я никогда не сталкивался с ситуацией, когда отсоединенный объект не согласовывался с хранилищем данных. Стоит ли об этом беспокоиться сейчас, и есть ли способ избежать катастрофы с хранилищем данных с высоким уровнем репликации? Или я должен просто запускать все свои приложения в конфигурации Master/Slave, чтобы избежать этой проблемы, если для нее нет обходного пути JDO?


person Coraghessen    schedule 04.09.2011    source источник


Ответы (1)


"JDO" возвращает объекты, находящиеся в отсоединенном состоянии, из detachCopy. Если хранилище данных не обновляется, то это только хранилище данных, и «JDO» не заботится об этом (за исключением, я полагаю, до тех пор, пока вы не попытаетесь обновить хранилище данных обновленными формами этих объектов).

person DataNucleus    schedule 05.09.2011