Stateless Postgres Query Router — система шардирования PostgreSQL-кластера с открытым исходным кодом. Роутер, главный ее компонент, по запросу понимает, на каком конкретном PostgreSQL-кластере надо выполнить транзакцию или запрос.
В своем докладе я расскажу о главной проблеме, которую должна решать любая шардированная OLTP-база данных: как быстро и эффективно балансировать нагрузку и данные в инсталляции. В этом докладе я хочу обсудить возможные решения этой проблемы, рассказать, как устроено шардирование в других OLTP-базах данных, а также какие проблемы есть у такой системы: протоколы блокировки, методы перевоза данных, восстановление после сбоев, оценку нагрузки на диапазоны ключей шардирования и т.д. И о том, как мы решаем эту проблему в SPQR.
Эта информация может быть полезна тем, кто стоит на пороге шардирования PostgreSQL-кластера, пишет свое решение или рассматривает готовые. Некоторые инциденты будут описаны как свидетельства возможных направлений будущей работы.