0

Предположим, у нас есть только два узла А и В.Предоставляет ли нам ключ-значение хранилище Consul для заказа двух записей с двумя разными ключами?

Когда мы выдаем эти две команды на узле А,

$ curl -X PUT -d one .../v1/kv/key1 
$ curl -X PUT -d two .../v1/kv/key2 

(то есть.PUT one key1происходит, перед темPUT two key2), а затем GET от /v1/kv/key2 на узле B возвращается two, гарантировано ли, что GET из /v1/kv/key1 на узле B возвращается one? Другими словами, существует ли честь Consul KVS - до того, как отношения между двумя записываются на узле A?

Консул использует протокол консенсуса, чтобы обеспечить согласованность (как это определено CAP).

Да, но я понимаю, что теорема CAP не говорит о нескольких регистрах. Эти две записи могут в конечном итоге распространяться на узел B, но гарантировано ли мы, что мы никогда не увидим неожиданное промежуточное состояние?

+1

AFAIK Consul имеет только один журнал Raft, что гарантирует, что записи всегда будут упорядочены между собой независимо от ресурса. Один из них должен был бы сбиться с пути, чтобы заставить их писать беспорядочно просто из-за характера консенсуса. – kuujo

+1

Не уверен, если вам это необходимо, но consul 0.7 (который был только что выпущен) также имеет новый транзакционный ключ/значение api - https://github.com/hashicorp/consul/blob/master/CHANGELOG.md#070-september- 14-2016 – deniszh

ответ

1

Консул утверждает, что линеаризуемость. «Все серверы участвуют в консенсусном алгоритме Плофт, чтобы гарантировать, что транзакции происходят согласованным, линеаризуемым образом».

Если puts были синхронизированы в другом порядке, чем они были получены, вы могли бы видеть их не в порядке при чтении с другого узла, нарушая гарантию линеаризуемости. Таким образом, их всегда следует соблюдать по порядку.

Однако, поскольку предыдущие нарушения линеаризуемости были «решены» decreasing a timeout value, а затем лежал в маркетинге, claiming Jepsen never found any bugs, я бы не стал считать его полностью линеаризуемым, по крайней мере в течение следующих нескольких лет.

+0

Меня интересует таймаут. Могу ли я узнать, какие вопросы были связаны с этим? – nodakai

+0

@nodakai взгляните на https://aphyr.com/posts/316-jepsen-etcd-and-consul и https://youtu.be/QdkS6ZjeR7Q?t=1481 –

Смежные вопросы