Виртуальные шарды в Postgresql: маппинг ключа на шард, как это делаете вы?
Подскажите плиз:
1) как вы даете ключу идентификатор? это уникальный идентификатор из глобального сиквенса либо это составной идентификатор из идентификатора сервера и сиквенса сервера? это случайный идентификатор по типу ObjectId из mongodb?
2) как вы подвязываете идентификатор ключа к виртуальному шарду? некоторые (например Badoo вот тут - youtube.com/watch?v=MhGO7BBqSBU с 49:07) говорят о том что не только перемещают виртуальные шарды между серверами, но и отдельные ключи между виртуальными шардами. Как и где вы храните это соответствие между идентификатором ключа и виртуальным шардом? Может в отдельном сервисе на SQL или mongodb? Как?
Я обычно использовал хеширование имени ключа и по последним битам хеша определял шард, те использовал функцию вычисления шарда вместо маппинга на виртуальный шард. Пожалуйста поделитесь опытом как это делаете вы с виртуальными шардами. Заранее благодарен!