We're sorry but this page doesn't work properly without JavaScript enabled. Please enable it to continue.
Feedback

Formal Metadata

Title
Odyssey
Subtitle
Advanced multi-threaded PostgreSQL connection pooler and request router.
Title of Series
Number of Parts
35
Author
License
CC Attribution 3.0 Unported:
You are free to use, adapt and copy, distribute and transmit the work or content in adapted or unchanged form for any legal purpose as long as the work is attributed to the author in the manner specified by the author or licensor.
Identifiers
Publisher
Release Date
Language

Content Metadata

Subject Area
Genre
Abstract
Odyssey is new PostgreSQL connection pooler designed for the high-load environment. It can significantly scale processing performance by specifying the number of additional worker threads. This allows to increase SSL/TLS performance and provide more balanced pooling control using by sharing global server connection pools. Odyssey is PostgreSQL connection pooler designed from scratch to provide multi-threaded processing. Each worker thread is responsible for authentication and proxying client-to-server and server-to-client requests. All worker threads are sharing global server connection pools. It tracks a transaction state and in case of unexpected client disconnection can emit automatic Cancel and do Rollback of an abandoned transaction, before putting server connection back to the server pool for reuse. Odyssey allows defining connection pools as a pair of Database and User. Each defined pool can have separate authentication, pooling mode, and limits settings. Odyssey has a sophisticated asynchronous multi-threaded architecture which is driven by custom made coroutine engine. One of the main goal was to make codebase understandable for new developers and to make an architecture easily extensible for future development. Ideas behind the coroutine design and more detailed features overview will be presented during the talk.