Paxos и кворум W + R> N пытаются решить несколько разные проблемы. Paxos обычно описывается как способ репликации конечного автомата, но на самом деле это скорее распределенный журнал: каждый элемент, записанный в журнал, получает индекс, а разные серверы в конечном итоге содержат одни и те же элементы журнала + их индекс. (Репликация конечного автомата может быть достигнута путем записи в журнал входных данных конечного автомата, и каждый сервер воспроизводит конечный автомат на согласованных входных данных в соответствии со своим индексом). Вы можете узнать больше о Paxos в сообщении блога, написанном мною здесь.
Кворум W + R> N решает проблему совместного использования одного значения несколькими серверами. В академических кругах это называется «общий регистр». В общем регистре есть две операции: чтение и запись, при этом мы ожидаем, что чтение вернет значение предыдущей записи.
Итак, Paxos и кворум W + R> N живут в разных доменах и имеют разные свойства (например, Paxos сохраняет упорядоченный список элементов). Однако Paxos можно использовать для реализации общего регистра, а кворум W + R> N можно использовать для реализации распределенного журнала (хотя и очень неэффективно).
С учетом всего вышесказанного, иногда кворумы W + R> N не реализуются «полностью надежным» способом, так как для этого потребуется более одного цикла связи. Таким образом, в системах, которым требуется низкая задержка, возможно, что их реализация кворумов W + R> N обеспечивает более слабые свойства (например, могут сосуществовать конфликтующие значения).
Подводя итог, теоретически Paxos и W + R> N могут достичь одних и тех же целей. На практике это было бы очень неэффективно, и каждый из них лучше для чего-то немного другого. Более того, W + R> N не всегда реализуется полностью, что снижает некоторые свойства согласованности для скорости.
Обновление: Paxos поддерживает очень общую модель отказа: сообщения могут быть сброшены, узлы могут аварийно завершить работу и перезапуститься. Схема кворума W + R> N имеет разные реализации, многие из которых предполагают менее общие отказы. Таким образом, разница между ними также зависит от предположения о возможных поддерживаемых сбоях.
person
Ezra Hoch
schedule
22.09.2013