PostgreSQL is awesome, but it's hard to manage a single database with some terabytes of data and 105+ queries per second. Current sharding solutions focus on analytical and hybrid workloads (OLAP, HTAP). Moreover, most of those solutions do not provide a smooth path for monolith to sharded transitions, which is why Yandex Cloud's Data Platform team developed SPQR.
SPQR is a production-ready system for horizontal scaling of PostgreSQL via sharding. We appreciate any kind of feedback and contribution to the project.
To get started, please visit our documentation. The full list of features is available here.
You can use make run
for a quick example using Docker. For local development, you need the latest Go version.
How to build:
make
make build
How to run:
spqr-router run --config path-to-router-config.yaml
SPQR has all types of tests: unit, regress, and end-to-end. These tests require Docker Compose, and can be run using make
. For more information on testing, please see unittest
, regress
, and feature
sections in Makefile.
We have a Telegram chat to discuss SPQR usage and development. If you're missing a feature or have found a bug, please open a GitHub Issue. We appreciate any kind of feedback and contribution to the project.
The SPQR source code is distributed under the PostgreSQL Global Development Group License.