Consistent hashing — это техника, используемая в распределённых системах для эффективного и надёжного распределения данных между несколькими узлами. Её главное преимущество в том, что она минимизирует перемещение данных при масштабировании системы вверх или вниз.
Пример Hash Ring:
[Node A] → [Node B] → [Node C] → (back to Node A)
Data 1 maps to Node A
Data 2 maps to Node B
При традиционном хешировании данные назначаются по формуле:
node = hash(key) % total_nodes
Это означает, что каждый раз при добавлении или удалении узла количество узлов меняется и все данные нужно перераспределять заново — что вызывает массовое перераспределение.
С consistent hashing:
Consistent hashing лежит в основе многих распределённых технологий:
Consistent hashing решает проблему перемешивания данных, присущую традиционным подходам, что делает его предпочтительным решением, когда горизонтальная масштабируемость и минимальная миграция данных — критически важные требования.
В consistent hashing, когда новый узел добавляется в систему, только элементы данных, которые отображаются на позиции между новым узлом и предыдущим узлом в направлении по часовой стрелке, нужно перераспределить.
Новый — ещё не проверен сообществом
Вы