что значит 2n + 1 кворум? - PullRequest
       13

что значит 2n + 1 кворум?

5 голосов
/ 19 ноября 2010

Я сталкивался с этим при описании конфигурации Zookeeper для HBase, и я не знаком с этим термином.'N' имеет какое-либо отношение к числу узлов в моем кластере HBase?Или количество узлов, которые я должен использовать в своем кластере Zookeeper?

Ответы [ 2 ]

6 голосов
/ 20 ноября 2010

2f + 1 относится к требуемому уровню надежности / доступности, в общем случае это не связано с производительностью.

Ансамбли ZooKeeper (обслуживающие кластеры) состоят из одного или нескольких серверов, которые «голосуют» за каждое изменение. Большинство исходных серверов должны «одобрить» любое изменение, прежде чем оно будет принято. Клиенты (в данном случае hbase) подключаются к ансамблю и используют его для координации. Если ансамбль работает, клиенты могут сделать это, если ансамбль не работает, hbase не может использовать сервис.

Скажем, у вас есть 3 сервера (f = 1) в ансамбле, если один из них не работает, служба все еще работает (2 - большинство). Однако в случае сбоя второго сервера служба будет недоступна.

Скажем, у вас есть 5 серверов (f = 2) в ансамбле. В этом случае два сервера могут выйти из строя (3 - большинство), а служба все еще работает.

Обычно 3 сервера более чем достаточно. Однако для сред обслуживания в онлайн-производстве я бы предложил 5. Почему? Допустим, вы отключили 1 сервер для планового обслуживания. Если у вас есть 5 серверов, вы можете не спать, даже если один из оставшихся активных серверов неожиданно выходит из строя.

Почему бы тогда не иметь 101 сервер? - TANSTAAFL. Смотрите график здесь. ZK - это служба, основанная на кворуме. По мере увеличения количества серверов производительность записи фактически падает. Для участия в процессе quroum (голосование) требуется больше серверов. В результате число операций записи в секунду уменьшается. (хотя чтение не затрагивается).

4 голосов
/ 19 ноября 2010

n относится к числу сбоев, которые система может испытать, но все же сможет работать по крайней мере с большинством узлов.Два примера:

n = 1 - один узел может выйти из строя из общего числа 2n+1 = 3 узлов

n = 2 - два узла могут выйти из строя из общего числа 2n+1 = 5 узлов

И так далее!

...