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