Odyssey Versions Save

Scalable PostgreSQL connection pooler

1.3

1 year ago

In this release:

  • Support for protocol-level prepared statements in transaction pooling mode. You can enable pool_reserve_prepared_statement for a database. For client sessions issuing prepared statements Odyssey will automatically prepare those statements in database processes when necessary.
  • Standby lag polling. You can configure watchdog query for a database, and Odyssey will automatically prevent reading stale data.
  • A lot of small bug fixes and improvements.

1.3rc

2 years ago

Release candidate for a new Odyssey version with two features:

  1. Standby lag polling
  2. Protocol level prepared statements support

For more info please watch CitusCon session about planned release on April 13 9am (UTC).

1.2

2 years ago

In this release:

  • Reject extraneous data after SSL negotiation. This prevents attacks like in CVE-2021-23214 and CVE-2021-23222;
  • Support for PAM and LDAP;
  • Prometheus integration;
  • Better transaction and query quantiles computation;
  • A lot of small bug fixes and improvements.

1.1

4 years ago

In this release we introduced several settings. These settings are intended to tune compatibility with PgBouncer workload handling. Now you can control in config:

  • server lifetime - prevents bloat of caches for long lasting server connections
  • server max routing - prevents too fast server connection allocation
  • server login retry timeout - adds delay between unsuccessful server connections
  • client login timeout - prevents denial of servers due to hanging clients
  • add host to application_name - helps to diagnose various problems

Bugs fixed:

  • Incorrect handling of GSSAPI request #92
  • Incompatibility of show clients, show server, show databases with PgBouncer #97 #100 #102
  • Incorrect Cancel handling (was expecting TLS connections, which is not necessary in protocol) #111
  • Counting of free servers currently is exactly the same as in PgBouncer #121

Features added:

  • Odyssey now computes query\transaction time quantiles within stat period
  • In session pooling mode client allocates server connection only when it is required.

Breaking change: Replication storage types are now deprecated. When client asks regular storage for logical\physical replication connection, Odyssey will ask database if it is allowed and handle connection transparently.

1.0

4 years ago

This is Odyssey 1.0, a scalable multi-threaded connection pooler for PostgreSQL designed for the cloud.

We are using Odyssey in production. Currently, it handles more than 1,000,000 requests per second on many hundreds of hosts. We've come a long way trying Odyssey on many various workloads.

The main features are:

  1. Linear scaling with the number of CPU cores.
  2. Different pooling modes with the ability to configure authentication, pooling mode, limits and more per pool.
  3. Ability to automatically rollback transactions and cancel Postgres backends on client disconnections.
  4. Accurate PostgreSQL error forwarding.
  5. Support of the replication protocol.
  6. Support of PAM and SCRAM authentication.

1.0rc

4 years ago

This is version 1.0 release candidate version of Odyssey.

We have been working through the beta stage to test Odyssey in production use and fixed a good number of bugs, leaks and peculiarities.

Main features are:

  1. Linear scaling with a number of CPU cores.
  2. Different pooling modes with the ability to configure authentication, pooling mode, limits and more per pool.
  3. Ability to automatically rollback transactions and cancel postgres backends on client disconnections.
  4. Accurate PostgreSQL error forwarding.
  5. Support of the replication protocol.