В High -Replication Datastore (я использую NDB ), согласованность возможна. Для получения гарантированного полного набора можно использовать запросы предков. Запросы предков также предоставляют отличный способ получить всех «потомков» определенного предка с помощью недобрых запросов. Короче говоря, возможность использовать модель предков чрезвычайно полезна в GAE.
Проблема, которую я вижу, довольно проста. Допустим, у меня есть запись контактов и запись сообщений. Данная запись контакта рассматривается как предок для каждого сообщения. Однако возможно, что два контакта созданы для одного и того же человека (ошибка пользователя, разные точки данных и т. д. ).В этой ситуации создаются две записи контактов, с которыми связаны сообщения.
Мне нужно иметь возможность "объединить" две записи и свести все сообщения в одну большую кучу. В идеале я мог бы изменить предка для одного из дочерних элементов записи.
Единственный способ, которым я могу это сделать, - создать сопоставление и заставить мое приложение проверять, была ли запись объединена. Если это так, просмотрите сопоставления, чтобы найти одну или несколько связанных записей, и выполните запросы к ним. Это кажется крайне неэффективным. Есть ли еще «по книге» способ обработки этого варианта использования?