Comments 6
Хеш функция для шардироаания? Дальше можно не читать. Если у вас данные рамазаны по нодам и нужен джойн с другими размазанными данными в десятках таблиц то, что будет, если данные у вас разложились как придётся по хеш функции?
Вам просто надо выбрать правильный ключ который вы будете подавать в эту функцию, такой что-бы данные с разными ключами вряд-ли взаимодействовали бы друг с другом.
Ага, а хеш ключ в этой конструкции видимо нужен просто для того, что бы был.
А что значит "вряд ли"?
Банальный пример: таблицы клиентов, поставщиков, договоров. Договоры ссылаются на две другие таблицы. Запрос - получить всех контграгентов (клиентов и поставщиков) по диапазону договоров. Собственно, "правильный ключ" (чтобы без дублирования и в одном шарде всё) тут не подобрать, как ни хэшируй.
Описанное в статье - частное решение для древовидных структур (агрегатов), которые можно от корня делить по шардам. Общая задача же, как правило, шире.
Спасибо за статью!
Скажите пожалуйста используете ли patroni?
Бесшовность 2.0: как работает шардирование в Сбере