odyssey/sources/README.md

883 B

Odissey internals

Odissey heavily depends on two libraries, which were originally been created during its development: machinarium and shapito.

Machinarium

Machinarium extensively used for organization of multi-thread processing and networking IO. All Odissey threads are run in context of machinarium machines - pthreads with coroutine schedulers placed on top of epoll(2).

Odissey does not directly use or create multi-tasking primitives such as mutexes. All synchronization is done using message passing and transparently implemented by machinarium.

Shapito

Shapito provides resizable buffers (streams) and methods for constructing, reading and validating PostgreSQL protocol requests. All PostgreSQL specific details should be provided by Shapito library.