odissey: update documentation
@@ -5,7 +5,7 @@ Advanced multi-threaded PostgreSQL connection pooler and request router.
### Design goals and main features
-**Multi-threaded architecture**
+#### Multi-threaded architecture
Odissey can significantly scale processing performance by
specifying a number of additional worker threads. Each worker thread is
@@ -13,7 +13,7 @@ responsible for authentication and proxying client-to-server and server-to-clien
requests. All worker threads are sharing global server connection pools.
Multi-threaded design plays important role in `SSL/TLS` performance.
-**Advanced transactional pooling**
+#### Advanced transactional pooling
Odissey tracks current transaction state and in case of unexpected client
disconnection can emit automatic `Cancel` connection and do `Rollback` of
@@ -22,31 +22,31 @@ the server pool for reuse. Additionally, last server connection owner client
is remembered to reduce a need for `Discard` and `Setting` up client options
on each client-to-server assignment.
-**Better pooling control**
+#### Better pooling control
Odissey allows to define connection pools as a pair of `Database` and `User`.
Each defined pool can have separate authentication, pooling mode and limits settings.
-**Pipelining and network optimizations**
+#### Pipelining and network optimizations
Odissey allows to reduce network IO calls by logically buffer several
server replies before sending them to the client. Additionally
client-to-server and server-to-client buffers are zero-copy.
-**Authentication**
+#### Authentication
Odissey has full-featured `SSL/TLS` support and common authentication methods
like: `md5` and `clear text` both for client and server authentication.
Additionally it allows to block each pool user separately.
-**Logging**
+#### Logging
Odissey generates universally unique identifiers `uuid` for client and server connections.
Any log events and client error responces include the id, which then can be used to
uniquely identify client and track actions. Odissey can save log events into log file and
using system logger.
-**Internals**
+#### Internals
Odissey has sophisticated asynchonous multi-threaded architecture which
is driven by custom made coroutine engine: [machinarium](https://github.yandex-team.ru/pmwkaa/machinarium).
