Как стать автором
Обновить

Бесшовность 2.0: как работает шардирование в Сбере

Уровень сложностиСредний
Время на прочтение10 мин
Количество просмотров5.9K
Всего голосов 14: ↑11 и ↓3+14
Комментарии6

Комментарии 6

Хеш функция для шардироаания? Дальше можно не читать. Если у вас данные рамазаны по нодам и нужен джойн с другими размазанными данными в десятках таблиц то, что будет, если данные у вас разложились как придётся по хеш функции?

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

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

А что значит "вряд ли"?
Банальный пример: таблицы клиентов, поставщиков, договоров. Договоры ссылаются на две другие таблицы. Запрос - получить всех контграгентов (клиентов и поставщиков) по диапазону договоров. Собственно, "правильный ключ" (чтобы без дублирования и в одном шарде всё) тут не подобрать, как ни хэшируй.

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

Спасибо за статью!

Скажите пожалуйста используете ли patroni?

Да, patroni стоит по умолчанию.

Зарегистрируйтесь на Хабре, чтобы оставить комментарий