Skip to content

Releases: yandex/odyssey

1.4.0

14 Jul 10:39
ac95c5f
Compare
Choose a tag to compare

We are excited to announce a new release of Odyssey!

Thank you so much for your patience while waiting for this version. Over the past months, we’ve been hard at work fixing numerous issues and making Odyssey more stable and reliable. Many long-standing problems have now been resolved, and we’ve also introduced several new features.

But this is just the beginning, more important fixes and awesome features are coming soon. Stay tuned for future updates!

Thank you for your support and feedback!

P.S.
Also we created a сhat in Telegram for support of any kind. Feel free to share your problems of Odyssey usage and developing here :)

What’s Changed

Features and Major Changes

  • Add HBA config file support and HBA reload logic #442
  • Channel binding for SCRAM auth method #490
  • pool_discard_query option #488
  • Auto-generate default internal pool (for auth-query etc) if none specified #519
  • Show SHOW HELP; command #669
  • option for strict sequential route matching #605
  • Add address pool in rule #550
  • Add server internal type logging #656
  • coroutine naming support #778
  • Support for aarch64 in machinarium context switch function #446
  • Show version number in initial message #670

Improvements & Refactoring

  • Target session attribute for storage #456
  • Refactor prepared statements with tx pool frontend routines #587
  • Backend connect timeout #750
  • Async logging #722
  • Configure mandatory startup parameters for backend connections #491
  • Various optimizations for tx pool prepared statement feature #581
  • Properly count copy-proto related messages #503

Bug Fixes

  • Fix auth query password caching segfault #536
  • Fix SSL error status handling #687
  • Prevent SIGSEGV on usage printing #498
  • Fix UNIX socket connection to server #499
  • Fix undefined behavior in od_worker_pool_feed function #457
  • Fix bug with reload HBA #600
  • Fix groups implementation #623
  • Many more minor and major bug fixes (see the full changelog for details)

Documentation Updates

  • Added LDAP notes to docs #479
  • LDAP-related docs and small text fixes #466, #516
  • Configuration and README.md improvements #494, #717, #754
  • Add dependabot configuration #730

CI, Dependency, and Testing Updates

  • CI workflow and test suite improvements #504, #743, #745, #748
  • Multiple dependency version updates via dependabot and others
  • Run all tests with address sanitizer enabled

Code Cleanup & Minor Improvements

See the full changelog:
1.3...1.4.0

New Contributors

Full Changelog: 1.3...1.4.0

1.3

21 Jun 07:32
@x4m x4m
136dcca
Compare
Choose a tag to compare
1.3

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

11 Apr 10:39
@x4m x4m
42663bb
Compare
Choose a tag to compare
1.3rc Pre-release
Pre-release

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

12 Nov 13:27
@x4m x4m
4e00bf7
Compare
Choose a tag to compare
1.2

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

04 Mar 08:50
@x4m x4m
b7bcb86
Compare
Choose a tag to compare
1.1

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

09 Dec 18:18
@x4m x4m
3974c0d
Compare
Choose a tag to compare
1.0

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

29 May 01:57
@x4m x4m
Compare
Choose a tag to compare

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.