Commit Graph

36 Commits

Author SHA1 Message Date
kirill reshke c4878697ee
fix formatting & apply fmt target in MAkefiel (#251)
Co-authored-by: reshke <Kirill Reshke>
2020-12-28 16:22:53 +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
reshke f030093484 use SO_REUSEPORT to graceful shutdown 2020-08-10 13:39:09 +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
Andrey Borodin 6776e43134 Try to stop TLS handshakes on shutdown 2020-03-23 18:14:18 +05:00
Andrey Borodin c4b7a3cc18 Use one tls cts per thread 2020-02-24 15:18:35 +05:00
Andrey Borodin b2d75b0b3c
Coverity scan results (#119)
A lot of small fixes for small bugs of various severity
2020-02-18 18:05:02 +05:00
Andrey Borodin 59857936cd Fix ignoring of SIGPIPE 2019-12-18 14:32:36 +05:00
Andrey Borodin eb7299748d Implement login timeout 2019-12-02 18:28:39 +05:00
Andrey Borodin f43ac71d26 Optimize clocks 2019-12-02 18:19:44 +05:00
Andrey Borodin e053d76b16 Use only one TLS context per machine
Previously we recreated TLS context. This could cause extre files being
read during TLS handshake.
2019-11-11 10:31:52 +03:00
Dmitry Simonenko c6542d7003 odyssey: post merge fixes 2019-09-27 16:47:45 +03:00
Andrey Borodin 7681160dd1 Avoid private inclusion (fix #67) 2019-08-23 09:45:35 +05:00
Dmitry Simonenko 1dc7f58c73 odyssey: fix warning and misc fixes 2019-08-08 17:39:13 +03:00
Andrey Borodin 13bd4f1998 Fix slow test 2019-07-31 14:56:45 +05:00
Andrey Borodin 770e242e72 Add few sleeplock test 2019-07-31 14:17:46 +05:00
Dmitry Simonenko af015839b0 machinarium: fix readers race in fast_channel implementation 2019-03-12 19:39: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 c4f383ccfb odyssey: introduce pool_discard configuration parameter 2018-12-11 12:57:52 +03:00
Dmitry Simonenko c61c1e81f7 machinarium: rework msg_cache/coroutine_cache per machine thread 2018-11-19 17:52:37 +03:00
Dmitry Simonenko 14d4a7f478 odyssey: add cache_msg_gc_size option and disable default caching 2018-09-26 18:18:17 +03:00
Dmitry Simonenko 366f9b5312 odyssey: fix machinarium stat tests 2018-09-05 16:08:29 +03:00
Dmitry Simonenko 5e1e96987c odyssey: update stat tests 2018-08-30 17:24:07 +03:00
Dmitry Simonenko c84fde8da7 odyssey: update tests 2018-08-23 15:16:21 +03:00
Dmitry Simonenko c4e06c165c odyssey: major tests upgrade for new machinarium io api 2018-08-23 12:29:19 +03:00
Dmitry Simonenko f77d7ccf02 odyssey: set nodelay for tls_read_var test 2018-08-15 14:57:32 +03:00
Dmitry Simonenko ef5fd84fb8 machinarium: implement machine_eventfd() 2018-07-17 17:22:09 +03:00
Dmitry Simonenko d614f87109 machinarium: add unix sockets tests (+ tls) 2018-06-28 15:26:36 +03:00
Dmitry Simonenko 4759630e2e odyssey: make -Wgnu-folding-constant happy 2018-06-13 18:56:59 +03:00
Dmitry Simonenko f3d5fb7327 machinarium: send chunks in test_tls_read_multithread 2018-06-07 15:17:33 +03:00
Dmitry Simonenko 838aad609d machinarium: add multi-threaded tls read/write test 2018-06-07 15:11:30 +03:00
Dmitry Simonenko 7e636b9139 machinarium: support openssl >= 1.1.*. fix #17 2018-06-07 14:43:06 +03:00
Dmitry Simonenko 675030834d odyssey: add variadic buffer size read/write test using tls 2018-05-15 15:43:42 +03:00
Dmitry Simonenko af4a2a4c80 odyssey: add variadic buffer size read/write test 2018-05-15 15:13:44 +03:00
Dmitry Simonenko 2b458a3599 odyssey: add leftover test/machinarium/test_client_server2.c 2018-04-24 17:52:32 +03:00
Dmitry Simonenko e53d90bbf0 odyssey: integrate machinarium tests into test suite 2018-04-04 17:35:50 +03:00