Шардирование в postgreSQL
Иногда данных бывает много и приходится задумываться о распределении их между экземплярами БД.
Рассматриваю варианты:
- Citus https://github.com/citusdata/citus
- Apache shardingsphere https://github.com/apache/shardingsphere
- Pg-sharding https://github.com/pg-sharding/spqr
- Yuogabytedb https://github.com/yugabyte/yugabyte-db
Какие еще есть варианты?
Интересные алгоритмы поиска партиций:
- Table Function. Храним сопоставление партиций узлам.
- Consistent hashing.
- Rendezvous hashing или наибольшего случайного веса. С Rendezvous клиент может посчитать хэш не просто от ключа 364, а хэш от пар. 364 и нода 1, 364 и нода 2 и выбрать максимальное число.