Протокол распределенного консенсуса, разработанный для простоты понимания. Он эквивалентен Paxos по отказоустойчивости и производительности.
3 ответа

Что будет с реплицированными, но незафиксированными журналами в протоколе плота

Предположим, 3-членный плотный кластер a[master],b,c Клиент отправляет журнал a, реплицирует его на b и c, a применяет журнал к машине состояния и отвечает клиенту. Затем происходит сбой до того, как b и c имеют шанс скопировать зафиксированное сост…
08 янв '16 в 08:15
1 ответ

Репликация плота под разделом

7 участников кластера, один из которых является лидером. Лидер пытается повторить журнал (некоторые пишут) Сетевой раздел происходит. 3 и 4 члена соответственно. Лидер оказывается в меньшинстве Лидер достигает только 2 подписчиков → ошибка репликаци…
01 июн '17 в 12:37
1 ответ

Как я могу сделать атомное обновление с etcd

Я пытаюсь понять, что такое "атомарное" обновление в терминах etcd. Когда я думаю, что "атомарный", я думаю, что есть "до" и "после" (не существует во время, и если обновление не удается, оно все еще "до"). Вот пример: curl -s -XPUT http://localhost…
12 июн '15 в 17:34
2 ответа

Интегрируйте бережную реализацию распределенной системы данных (клиент, серверы) с протоколом Raft.

Итак, прежде всего, извините за мой английский. Я не носитель языка. Вопрос в том, что у меня уже есть реализация приложения Cliente-Server с распределенными данными (3 сервера) с использованием Thrift. Теперь (последняя фаза проекта) - использовать…
30 июл '17 в 01:42
2 ответа

Как я практически использую алгоритм Рафта

В документе Raft они упоминали, что все взаимодействие с клиентом происходит с лидерским узлом. Чего я не понимаю, так это того, что лидер постоянно меняется. Допустим, мой кластер находится за балансировщиком нагрузки. Как мне сообщить балансировщи…
27 дек '16 в 05:20
0 ответов

Невозможно построить реализацию LogCabin в Raft, используя scons и Protobuf 3

Я не могу собрать RAFT-реализацию LogCabin (C++), используя scons и protobuf3 в Ubuntu. Ошибки будут как usr/local/include/google/protobuf/repeated_field.h: In member function ‘int google::protobuf::RepeatedPtrField<Element>::SpaceUsedExcludin…
29 окт '17 в 20:25
2 ответа

Количество узлов плота

Узел-лидер плота отправляет записи добавления RPC всем подписчикам. Очевидно, что мы увеличиваем использование сети, когда добавляем нового подписчика, поэтому мой вопрос о том, сколько узлов мы можем добавить в кластер. В статье "Плот" и в других м…
23 фев '17 в 17:09
1 ответ

Как можно выбрать узел с полным журналом, если другой сначала станет кандидатом?

Я смотрел видео с алгоритмом Рафта по адресу https://youtu.be/vYp4LYbnnW8?t=3244, но мне не ясно одно обстоятельство. При избрании лидера на срок 4, если узел s1 транслирует RequestVote раньше, чем s3, тогда узлы s2, s4 и s5 будут голосовать за него…
09 сен '18 в 07:44
0 ответов

Плот: как я могу выполнить некоторую восстановительную работу, когда узел сломался?

Недавно я пишу распределенную систему с использованием пакета hashicorp/raft, каждый узел системы будет выполнять часть всей работы. Когда узел выходит из строя, его рабочие результаты будут потеряны, тогда мне нужно позволить другим узлам перезапус…
1 ответ

Как безопасно удалить историю журнала в плот, когда все записи журнала узлов были зафиксированы

В последнее время я использую RAFT для построения распределенной системы, реализация простой функции - репликация записи журнала на каждый сервер для сохранения согласованности данных, поэтому мой вопрос заключается в том, как безопасно удалить журн…
17 дек '18 в 08:05
1 ответ

Что произойдет, если лидер TiDB уйдет? Как TiDB использует Raft для обеспечения безопасности и согласованности данных?

Если один узел-лидер в TiDB не работает, будут ли потеряны мои данные или будет затронут сервис? Сколько времени пройдет до тех пор, пока служба не восстановится (т.е. новый лидер будет переизбран)?
31 июл '18 в 10:56
1 ответ

Как обращаться с переупорядоченным RPC в плоту

При реализации алгоритма Рафта я обнаружил, что есть ситуация, которая, я думаю, может или не может нанести вред кластеру. Разумно предположить, что некоторые AppendEntriesRPC от Leader получены с переупорядочением (сетевая задержка или другие причи…
0 ответов

Как плот добивается сильной согласованности, когда им не требуется fsync при каждой записи

Я понимаю базовый протокол плота и как его достичь сильной согласованности. Однако, по моему мнению, для достижения реальной согласованности вам нужно использовать fsync для каждой записи (не только для лидера, но и для последователей), поскольку, е…
03 фев '19 в 03:26
1 ответ

Как обработать сбой сбережений после совершения плота

При использовании raft после фиксации записей журнала мы должны записать данные, которые предлагаются узлом, в наше хранилище. Что делать, если один из узлов записи не удалось. скажем, диск получил плохо. должен ли узел сбоя завершать сам себя? the …
01 мар '19 в 05:34
1 ответ

На выборах лидера плота, как живой ответ лидера на RequestVote rpc от кандидата?

Я читаю плот бумаги. По запросу голосовать, Реализация получателя: 1. Ответ false, если term в некоторых ситуациях срок кандидата равен текущему сроку лидера, так как же лидер отвечает на запрос RequestVote rpc от кандидата?
15 дек '17 в 07:05
1 ответ

Consul.IO - Почему для Consul Cluster требуется как минимум кворум серверных узлов, чтобы быть активным

Я потратил немного времени на изучение Консула. Я читал о протоколе консенсуса. Я видел, что если кластер Консул хочет быть доступным, ему нужен узел кворума серверов, чтобы выбрать лидера. Интересно, что когда в консольном кластере работает менее ч…
28 дек '16 в 06:40
1 ответ

Является ли согласованный алгоритм Рафта византийским отказоустойчивым (bft) алгоритмом?

Является ли алгоритм консенсуса на плоту византийским отказоустойчивым алгоритмом? Сколько (процентов) узлов требуется для достижения соглашения / консенсуса?
06 апр '18 в 07:02
0 ответов

goraft sendSnapshotRequest use

Я просмотрел код goraft, но не знаю когда sendSnapshotRequest сработает. func (p *Peer) flush() { //debugln("peer.heartbeat.flush: ", p.Name) prevLogIndex := p.getPrevLogIndex() term := p.server.currentTerm entries, prevLogTerm := p.server.log.getEn…
13 авг '18 в 03:32
0 ответов

Neo4j Casual Clustering - серверы не могут обнаружить друг друга

Я пытался развернуть причинный кластер Neo4j (3.1), я очень внимательно прочитал Руководство по эксплуатации и попытался создать 3-ядерный кластер на моей локальной машине (используя как свежие установки, так и докер). Но когда я пытаюсь развернуть …
23 мар '17 в 09:20
1 ответ

Растут ли переменные индекса журнала и терминов журнала в кластере Raft без границ?

В кластере Raft можно считать, что каждая запись журнала имеет индекс журнала (где в порядке следования журнала эта запись) и термин журнала (в каком "термине" произошла запись; каждое избрание увеличивает этот термин). Например, Здесь квадраты пред…
14 окт '14 в 04:55