Как Dynamo справляется с конфликтом записи?

Когда Dynamo записывает на узел, что он будет делать, если у этого узла есть конфликтующая версия этих данных?

Просто удалить или сохранить вместе с конфликтующей версией?


person Ace    schedule 04.09.2013    source источник


Ответы (1)


Это подробно описано в разделе 4.4 (Версии данных) документа бумага динамо; несколько версий объекта сохраняются и должны быть согласованы позже клиентом (с последующими действиями клиента, а затем записью указанных согласованных данных обратно в кластер, когда речь идет о типичном реальном использовании).

Мы (Basho/Riak) пытаемся обеспечить достаточно приличное освещение этой темы в том, что касается Riak, включая ссылки на дополнительные ресурсы по адресу: http://docs.basho.com/riak/latest/theory/concepts/Vector-Clocks/

person Brian Roach    schedule 04.09.2013
comment
В этой статье есть много интересной информации, о которой я не знал; некоторые из них также кажутся неверными с текущим предложением DynamoDB от AWS. Вы уверены, что между Dynamo в этом документе и DynamoDB, предоставленным AWS, существует отношение один к одному? - person Cory Kendall; 05.09.2013
comment
@brian В разделе 5 статьи говорится, что последним шагом операции чтения является (v), если управление версиями включено, выполнение синтаксического согласования и создание непрозрачного контекста записи, который содержит векторные часы, которые включают в себя все остальные версии. Поскольку координатор является одним из узлов динамо, он не понимает семантику данных. Мой вопрос: как координатор может выполнить синтаксическое согласование? - person Ace; 05.09.2013
comment
@CoryKendall - это не неправильно: DynamoDB, это то, что DynamoDB на самом деле не является реализацией Dynamo :). ОП пометил это множеством очень разных вещей, и я просто рассказал, как это работает: Dynamo (исходный документ) и Riak. - person Brian Roach; 05.09.2013