Просто хотел спросить, есть ли у кого-нибудь мысли о сходствах и различиях между протоколами консенсуса Mencius и AllConcur?
На первый взгляд эти алгоритмы представлены очень по-разному, но у меня есть внутреннее ощущение, что есть много связей между ними. Я так думаю, что они оба, похоже, используют механизм для уменьшения количества сообщений, обрабатываемых каждым процессом, а также другой механизм для быстрого завершения экземпляров на основе обнаружения сбоя. For Mencius достигается за счет того, что значения для экземпляров консенсуса могут быть изучены без кворума (большинства), а также путем предоставления каждому процессу права собственности на некоторое подмножество экземпляров, для которых только они могут предлагать значения, не требующие выполнения. Другие процессы могут предлагать запретить выполнение операций только экземплярам, которые им не принадлежат, если они подозревают, что владелец потерпел неудачу. Между тем, в AllConcur каждый процесс пытается поддерживать график пути, по которому проходит каждое сообщение. Насколько я понимаю, когда известно, что на достаточном количестве серверов есть сообщение, процесс может считать, что есть консенсус по этому сообщению. В противном случае, если получено достаточно подозрений на сбой, процесс может игнорировать определенные сообщения от этого предполагаемого сбойного процесса.
Спасибо