Releases: yandex/odyssey
1.4.0
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
- Style fixes, cleanups, and minor adjustments #625, #572, #684, #696
- Makefile and packaging improvements #712, #782, #784
See the full changelog:
1.3...1.4.0
New Contributors
- @ilya-maltsev made their first contribution in #437
- @vadv made their first contribution in #441
- @adrienstoffel made their first contribution in #449
- @ashutosh108 made their first contribution in #461
- @jayant07-yb made their first contribution in #464
- @skilyazhnev made their first contribution in #479
- @pensnarik made their first contribution in #488
- @SunBeau made their first contribution in #495
- @Denchick made their first contribution in #516
- @Ivelok made their first contribution in #540
- @NikitaUnisikhin made their first contribution in #537
- @Adriel007 made their first contribution in #607
- @kt315 made their first contribution in #613
- @visill made their first contribution in #623
- @mNTTAliev made their first contribution in #634
- @AndrewJackson2020 made their first contribution in #669
- @mdubakin made their first contribution in #717
- @secwall made their first contribution in #724
- @evkuzin made their first contribution in #787
Full Changelog: 1.3...1.4.0
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
Release candidate for a new Odyssey version with two features:
- Standby lag polling
- Protocol level prepared statements support
For more info please watch CitusCon session about planned release on April 13 9am (UTC).
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
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
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:
- Linear scaling with the number of CPU cores.
- Different pooling modes with the ability to configure authentication, pooling mode, limits and more per pool.
- Ability to automatically rollback transactions and cancel Postgres backends on client disconnections.
- Accurate PostgreSQL error forwarding.
- Support of the replication protocol.
- Support of PAM and SCRAM authentication.
1.0rc
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:
- Linear scaling with a number of CPU cores.
- Different pooling modes with the ability to configure authentication, pooling mode, limits and more per pool.
- Ability to automatically rollback transactions and cancel postgres backends on client disconnections.
- Accurate PostgreSQL error forwarding.
- Support of the replication protocol.