Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Программирование Новый топик    Ответить
 Консистентное хеширование?  [new]
Ролг Хупин
Member

Откуда: Чебаркуль
Сообщений: 2347
Есть описание
https://4gophers.ru/articles/konsistentnoe-heshirovanie/#.WbKd5sgjEuU

В принципе понятно, но что-то торможу:

Я так понимаю, что ключи распределяются по разным нодам согласно каким-то фукнциям, хэшам, ок.

Если упал узел Н, то далее все новые ключи будут попадать на следующий по кругу узел. Хорошо.

Но что будет с ключами, хранившимися на упавшем узле? Накрылись?
А если упадет еще и еще один узел?
11 сен 17, 11:57    [20786205]     Ответить | Цитировать Сообщить модератору
 Re: Консистентное хеширование?  [new]
Dima T
Member

Откуда:
Сообщений: 13187
Ролг Хупин
Но что будет с ключами, хранившимися на упавшем узле? Накрылись?

Накрылись. Если откуда восстановить? От настроек резервного копирования зависит. Эта тема в статье никак не затрагивается.
Статья про распределение обработки, а не про хранение.
11 сен 17, 12:22    [20786291]     Ответить | Цитировать Сообщить модератору
 Re: Консистентное хеширование?  [new]
kealon(Ruslan)
Member

Откуда: Нижневартовск
Сообщений: 4059
Ролг Хупин,

данные сохраняются сразу на нескольких нодах, если одна упадёт - в идеале должно сработать перераспределение
11 сен 17, 12:25    [20786308]     Ответить | Цитировать Сообщить модератору
 Re: Консистентное хеширование?  [new]
Ролг Хупин
Member

Откуда: Чебаркуль
Сообщений: 2347
Dima T
Ролг Хупин
Но что будет с ключами, хранившимися на упавшем узле? Накрылись?

Накрылись. Если откуда восстановить? От настроек резервного копирования зависит. Эта тема в статье никак не затрагивается.
Статья про распределение обработки, а не про хранение.


в том и вопрос, что писатели умалчивают об этом моменте, задорно рассказывая, что новые будут распередляться по новым узлам.

Но если юзер будт запрашивать ключи с накрывшегося узла, то по алгоритму его запросы будут перенаправляться на следующий по часовой стрелке узел.
Следовательно, если ключи-значения реплицировались, то он должны находиться на том самом следующем узле, куда будет перенаправляться запрос юзера?

Получается, что сам алгоритм репликации-копирования тоже непростой.
11 сен 17, 13:50    [20786724]     Ответить | Цитировать Сообщить модератору
 Re: Консистентное хеширование?  [new]
Dima T
Member

Откуда:
Сообщений: 13187
Ролг Хупин
в том и вопрос, что писатели умалчивают об этом моменте, задорно рассказывая, что новые будут распередляться по новым узлам.

Но если юзер будт запрашивать ключи с накрывшегося узла, то по алгоритму его запросы будут перенаправляться на следующий по часовой стрелке узел.
Следовательно, если ключи-значения реплицировались, то он должны находиться на том самом следующем узле, куда будет перенаправляться запрос юзера?

Получается, что сам алгоритм репликации-копирования тоже непростой.

Там же не пишут куда конкретно запрос перенаправляется. Скорее всего в NoSQL БД какую-нибудь, а там есть встроенные средства репликации.

В принципе если каждая нода будет постоянно реплицировать свое состояние на следующую, куда произойдет переключение в случае отказа, то переключить можно мгновенно, но после надо репликацию перенастроить.
11 сен 17, 14:34    [20786928]     Ответить | Цитировать Сообщить модератору
 Re: Консистентное хеширование?  [new]
kealon(Ruslan)
Member

Откуда: Нижневартовск
Сообщений: 4059
Ролг Хупин
Dima T
пропущено...

Накрылись. Если откуда восстановить? От настроек резервного копирования зависит. Эта тема в статье никак не затрагивается.
Статья про распределение обработки, а не про хранение.


в том и вопрос, что писатели умалчивают об этом моменте, задорно рассказывая, что новые будут распередляться по новым узлам.

Но если юзер будт запрашивать ключи с накрывшегося узла, то по алгоритму его запросы будут перенаправляться на следующий по часовой стрелке узел.
Следовательно, если ключи-значения реплицировались, то он должны находиться на том самом следующем узле, куда будет перенаправляться запрос юзера?

Получается, что сам алгоритм репликации-копирования тоже непростой.

само собой. Ели нужно расковырять как, смотришь исходники, надёжнее источника нет
11 сен 17, 16:16    [20787471]     Ответить | Цитировать Сообщить модератору
 Re: Консистентное хеширование?  [new]
Ролг Хупин
Member

Откуда: Чебаркуль
Сообщений: 2347
Вот тут еще нашел старую статью с комментариями
https://habrahabr.ru/post/42972/

Тот же вопрос, пишут
автор
Нет, тут есть один существенный момент. Ну пусть было 100 ключей, по 25 на каждом, пусть хэш каждого ключа соответствует его номеру. Функция распределения ключей: ключ % 4 + 1.

Тогда ключи 0, 4, 8,… лежат на 1-м сервере, 1, 5, 9,… — на 2-м, 2, 6, 10,… — на 3-м и 3, 7, 11,… — на 4-м.

Пусть 4-й сервер выходит из строя, теперь функция распределения ключей: ключ % 3 + 1.

И теперь ключи 3, 7, 11,… — их значения потеряны (т. к. лежали на упавшем сервере), это 25%.

Далее, берем ключ 6 — он лежал на 3-м сервере, теперь он лежит на 1-м, берем ключ 5 — раньше на 1-м, теперь на на 3-м сервере. Ну и т. д. Сколько ключей сохранили своё расположение?
...

Примечание: изменили расположение — изменили расположения с точки зрения клиента, то есть он за ним обратится на другой сервер, где такого ключа нет, сервера об этой перетасовке ничего не знают, поэтому для клиента переместившийся ключ == потеряный ключ.
11 сен 17, 17:01    [20787692]     Ответить | Цитировать Сообщить модератору
 Re: Консистентное хеширование?  [new]
kealon(Ruslan)
Member

Откуда: Нижневартовск
Сообщений: 4059
Ролг Хупин,

в этой логике одно неправильно, зачем им стучаться на все сервера? есть мастер же - он и распределяет запросы по рабочим лошадкам
11 сен 17, 17:35    [20787805]     Ответить | Цитировать Сообщить модератору
 Re: Консистентное хеширование?  [new]
Dima T
Member

Откуда:
Сообщений: 13187
kealon(Ruslan)
в этой логике одно неправильно, зачем им стучаться на все сервера?

+1

Клиент понятия не имеет как оно там внутри размазано, обращается в центральную точку входа, а дальше его перенаправляют в нужное место.
11 сен 17, 17:48    [20787842]     Ответить | Цитировать Сообщить модератору
 Re: Консистентное хеширование?  [new]
Ролг Хупин
Member

Откуда: Чебаркуль
Сообщений: 2347
Dima T
kealon(Ruslan)
в этой логике одно неправильно, зачем им стучаться на все сервера?

+1

Клиент понятия не имеет как оно там внутри размазано, обращается в центральную точку входа, а дальше его перенаправляют в нужное место.


Так по этим описаниям получается, что центральной точки входа нет, т.е. нет какого-то центрального сервера, а есть множество равноправных серверов, организованных в виде кольца.
Собственно, в качестве одного из примеров использования консистентного хеша приводятся peer-to-peer сети.
Вот это и вызывает какие-то непонятки у меня.
11 сен 17, 17:58    [20787879]     Ответить | Цитировать Сообщить модератору
 Re: Консистентное хеширование?  [new]
Dima T
Member

Откуда:
Сообщений: 13187
Ролг Хупин
Так по этим описаниям получается, что центральной точки входа нет, т.е. нет какого-то центрального сервера, а есть множество равноправных серверов, организованных в виде кольца.

Я такого там не увидел.
Ролг Хупин
Собственно, в качестве одного из примеров использования консистентного хеша приводятся peer-to-peer сети.
Вот это и вызывает какие-то непонятки у меня.

В случае неизменяемых данных возможно. Один раз залили файл на ноду А, она забэкапилась на ноду Б, А умерла, клиент скачал с Б.

Для изменяемых данных такая схема не подойдет, т.к. должна быть нода ответственная за изменение данных. Например если А не успела ответить клиенту и он отвалился по таймауту и слил изменения на Б, то дальше что делать?
11 сен 17, 18:41    [20788025]     Ответить | Цитировать Сообщить модератору
 Re: Консистентное хеширование?  [new]
kealon(Ruslan)
Member

Откуда: Нижневартовск
Сообщений: 4059
Ролг Хупин
Собственно, в качестве одного из примеров использования консистентного хеша приводятся peer-to-peer сети.
Вот это и вызывает какие-то непонятки у меня.

Новости пересмотрелись что ли.
Когда нет мастер-сервера, то решить, что данных однозначно нет или они не согласованы из опроса одного сервера - нельзя, чудес не бывает. Нужны дополнительные механизмы проверки согласованности и доступности данных + дополнительная избыточность при хранении.

Н-р, у тоже же bitcoin база валидации уже под сотню гигов
11 сен 17, 18:48    [20788035]     Ответить | Цитировать Сообщить модератору
Все форумы / Программирование Ответить