Есть ли какие-либо алгоритмы, которые являются наиболее часто используемыми для достижения возможной непротиворечивости в распределенных системах?
Существуют алгоритмы, которые были разработаны для транзакций ACID в распределенных системах, Паксосе, в частности, но существует ли подобный раздел науки, который был разработан для ОСНОВНЫХ сценариев с более слабыми гарантиями непротиворечивости?
Править: Это, кажется, область научного исследования, которое только начинает разрабатываться. Ответ Mcdowella показывает, что было по крайней мере некоторая работа в этой области.
Да, до тех пор, пока вы также определяете __ q __
(и предположительно __ Ne __
! -) Последовательно с этим. IOW, все в порядке, пока вы в порядке с A == B
, что означает точно такой же, как A IS B
! -)
Если «анти-энтропические протоколы для ремонта реплицированных данных, которые работают, сравнивая реплики и примирения различий». Подходит вашему определению посмотреть http://en.wikipedia.org/wiki/gossip_protocol
BASE и более слабая консистенция сводятся к сходимости копий в сценарии репликации. Существует большая литература по репликации в распределенной системе, с репликацией эйтера eager или lazy, с копией group или master и др.
Консенсус - это одна из проблем, которую можно точно сформулировать. Можно предложить несколько решений/алгоритмов. Ленивая репликация с конвергенцией копий - нет. Мне кажется, что это скорее архитектурная проблема. Но, как я только что сказал, есть большой объем работы по репликации или распределенному хранению, который может быть тем, что вы ищете.
Тем не менее, вот несколько ссылок, которые я нашел интересными: