Шардирование в postgreSQL

Иногда данных бывает много и приходится задумываться о распределении их между экземплярами БД.

Рассматриваю варианты:

  1. Citus https://github.com/citusdata/citus
  2. Apache shardingsphere https://github.com/apache/shardingsphere
  3. Pg-sharding https://github.com/pg-sharding/spqr
  4. Yuogabytedb https://github.com/yugabyte/yugabyte-db

Какие еще есть варианты?

Интересные алгоритмы поиска партиций:

  1. Table Function. Храним сопоставление партиций узлам.
  2. Consistent hashing.
  3. Rendezvous hashing или наибольшего случайного веса. С Rendezvous клиент может посчитать хэш не просто от ключа 364, а хэш от пар. 364 и нода 1, 364 и нода 2 и выбрать максимальное число.