Commit Graph

18 Commits

Author SHA1 Message Date
Andrey Borodin 3706f0eb2d Fix some warnings 2021-03-05 10:45:22 +05:00
kirill reshke 3a55be6e61
change formatting (#250)
Co-authored-by: reshke <Kirill Reshke>
2020-12-28 15:43:31 +05:00
Daniil Zakhlystov e6781e8a4e
Rename OD_ escaping to MM_ && fix indentation for cmakelists (#235) 2020-11-23 18:57:56 +05:00
Daniil Zakhlystov e97f7e1f1c
Add compression toggle to config, cmake && Add dependencies to BuildDebian (#234)
* Add compression option to config

* Add BUILD_COMPRESSION option to cmake

* Escape identifiers

* Add preprocessing directives for OD_BUILD_COMPRESSION

* Add dependencies for BuildDebian

* apply fmt

Co-authored-by: root <root@ubuntu-build-machine.ru-central1.internal>
2020-11-23 16:55:42 +05:00
Daniil Zakhlystov 222da0c70a
Implement libpq compression (#230)
* Add zlib and zstd to cmake

* Add zpq_stream to machinarium

--
zpq_stream is used for streaming compression/decompression of Postgres protocol

* Add zpq_stream-related functions to machinarium

* Add compression set/free/read/write logic to machinarium

* Add startup packet compression var to kiwi

* Add compression_ack backend message support for kiwi

* Add compression setup logic for main odyssey project

* apply fmt

* fix format #2

Co-authored-by: root <root@ubuntu-build-machine.ru-central1.internal>
2020-11-23 13:22:17 +05:00
Georgy Rylov c25c5bd050
Applying clang-format with saving indentations (#140)
* applying clang-format with saving indentations

* rebase
2020-04-02 16:00:56 +05:00
Dmitry Simonenko d784c2ad19 odyssey: make restart read logic explicit in router attach 2019-06-13 11:55:01 +03:00
Dmitry Simonenko 89f3bc5c9e odyssey: fix readahead re-usage case and event for pending tls data 2019-01-24 18:25:46 +03:00
Dmitry Simonenko 6c0a1f09f8 odyssey: major rework of io architecture
This patch intend is to improve overall io performance, reduce
cpu and system usage.

Machinarium:

IO read/write logic is highly simplified and now based on conditions
instead of previously made internal readahead buffer and msg
queues. This allows to give user more control over io operations and
avoid doing undesired readahead copying.

Above that, TLS implementation reworked to use async logic instead of
separate BIO layer.

Direct pooling functions removed.

New objects machine_cond_t and machine_iov_t objects.

Odyssey:

Introduced readahead, io and relay objects.

Relay allows to connect two io handles for direct data retransmission
without double copying.

Removed configuration options no longer needed:
packet_read_size, packet_write_queue
2019-01-23 18:43:52 +03:00
Dmitry Simonenko 7807fd91f2 machinarium: implement readahead-less mode 2018-11-29 18:04:13 +03:00
Dmitry Simonenko 62deb8bddf odyssey: make packet readers per one event only 2018-09-05 15:30:53 +03:00
Dmitry Simonenko b870c0e3a1 odyssey: rework odyssey_stress for new io api 2018-08-23 17:12:28 +03:00
Dmitry Simonenko 35b1064ff0 machinarium: introduce machine_read_to() 2018-08-23 16:32:57 +03:00
Dmitry Simonenko d89bdc633c machinarium: add size arg to machine_msg_create() 2018-08-23 15:12:40 +03:00
Dmitry Simonenko 9e8261a5c1 machinarium: remove size from machine_msg_create() 2018-08-22 17:32:41 +03:00
Dmitry Simonenko 7a39407aaf machinarium: rework machine_read() using machine_msg_t* 2018-08-22 15:32:57 +03:00
Dmitry Simonenko f77d7ccf02 odyssey: set nodelay for tls_read_var test 2018-08-15 14:57:32 +03:00
Dmitry Simonenko eed0608914 machinarium: move root to third_party/machinarium 2018-03-29 14:30:14 +03:00