Согласованное хеширование по сравнению с распределенными блокировками для обработки условий гонки

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

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




Ответы (1)


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

person Dr. Aleksandr Yampolskiy    schedule 04.09.2012