SYSTEM ATLASЗагрузка материала

Перемешанное шардирование

Shuffle Sharding

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

Простыми словами

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

Пример от @Vibeclakr

Пример при разработке

Очередь каждого крупного клиента обслуживается своей комбинацией из двух worker-групп; шумный сосед редко делит обе группы.

Это редакционный пример применения, а не часть определения или доказательство концепции.

Формальное определение

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

Механизм действия

Система детерминированно выбирает k ресурсов из n для каждого ключа и ограничивает работу этим подмножеством.

Пример в работе

Нерабочий подход

Внедрить «Перемешанное шардирование» как формальную настройку, не проверив сценарий отказа и ограничение: Сложнее балансировать stateful-нагрузку и объяснять размещение; неверные параметры дают слабую изоляцию.

Системный подход

Применять «Перемешанное шардирование» только для заявленной цели, проверять поведение на реальном контуре и сохранять наблюдаемый критерий результата.

Ограничения

Сложнее балансировать stateful-нагрузку и объяснять размещение; неверные параметры дают слабую изоляцию.

Источник

Amazon Web Services, “Workload isolation using shuffle-sharding”, 2019.

Первоисточник