yandex/odyssey

Scalable PostgreSQL connection pooler

View on GitHub ↗Jump to charts ↓Open shareable report

Summary Information

Updated 9 minutes ago
Type:Server / PlatformCategory(s):Relational & SQL DatabasesDatabases & Storage
Added to GitGenius on September 19th, 2026
Created on May 28th, 2018
Open Issues & Pull Requests: 105 (+1)
GitHub issues: Enabled
Number of forks: 213
Total Stargazers: 3,628 (+0)
Total Subscribers: 53 (+0)

Repository Insights (GitGenius)

Median issue/PR response: 43.1 hours
Mean response time: 174.1 days
90th percentile: 476.9 days
Tracked items: 103

Most active contributors

Sign in to see contributor activity.

How this project is maintained

100% of open issues come from outside the core team, so the backlog reflects real-world use rather than internal planning. Three people close 92% of everything that gets resolved.

Charts & Analytics

Fetching additional details & charts...

Issue Activity (beta)

Open issues: 29
New in 7 days: 1
Closed in 7 days: 3
Avg open age: 671 days
Stale 30+ days: 27
Stale 90+ days: 24

Recent activity

Opened in 7 days: 0
Closed in 7 days: 2
Comments in 7 days: 0
Events in 7 days: 0

Top labels

  • enhancement (3)
  • bug (1)

Detailed Description

Odyssey is a scalable PostgreSQL connection pooler that handles client-to-server request routing with multi-threaded processing.

The tool addresses the challenge of efficiently managing large numbers of PostgreSQL client connections by pooling and reusing server connections. It uses a multi-threaded architecture where worker threads handle authentication and proxy requests between clients and servers, with all threads sharing global connection pools. The pooler tracks transaction state and can automatically cancel connections and roll back abandoned transactions when clients disconnect unexpectedly, allowing server connections to be safely returned to the pool for reuse.

Odyssey suits production deployments that need to handle high connection volumes and benefit from multi-threaded performance scaling, particularly where SSL/TLS overhead is a concern. The tool allows fine-grained control by defining separate connection pools per database and user combination, each with independent authentication methods, pooling modes, and limits. It supports multiple authentication approaches including SSL/TLS, md5, clear text, PAM, and LDAP, with optional per-pool user blocking. The pooler generates universally unique identifiers for all connections to enable detailed logging and request tracing. Currently the tool runs only on Linux on x86 and x86_64 platforms.

Development activity shows consistent attention to code quality and production readiness. The project maintains active engagement with users through community channels for discussing usage and development. Build requirements include standard tooling with flex and bison needed at build time for the configuration parser. The codebase is written in C and demonstrates focus on performance-critical connection handling and protocol proxying.