spqr

module
v0.0.0-...-963c118 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Dec 21, 2024 License: PostgreSQL

README

Go Go Docs Telegram Chat

Stateless Postgres Query Router

Stateless Postgres Query Router is a production-ready system for horizontal scaling of PostgreSQL via sharding.


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.

Development

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

Tests

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.

Support

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.

License

The SPQR source code is distributed under the PostgreSQL Global Development Group License.

Directories

Path Synopsis
app
cmd
app
pkg
mock/clientinteractor
Package mock is a generated GoMock package.
Package mock is a generated GoMock package.
mock/conn
Package mock is a generated GoMock package.
Package mock is a generated GoMock package.
mock/meta
Package mock is a generated GoMock package.
Package mock is a generated GoMock package.
mock/pgx
Package mock is a generated GoMock package.
Package mock is a generated GoMock package.
mock/pool
Package mock is a generated GoMock package.
Package mock is a generated GoMock package.
mock/shard
Package mock is a generated GoMock package.
Package mock is a generated GoMock package.
tsa
qdb
mock
Package mock is a generated GoMock package.
Package mock is a generated GoMock package.
ops
router
app
mock/client
Package mock is a generated GoMock package.
Package mock is a generated GoMock package.
mock/poolmgr
Package mock is a generated GoMock package.
Package mock is a generated GoMock package.
mock/qrouter
Package mock is a generated GoMock package.
Package mock is a generated GoMock package.
mock/server
Package mock is a generated GoMock package.
Package mock is a generated GoMock package.
test
yacc

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL