Commit Graph

40 Commits

Author SHA1 Message Date
kirill reshke 3a55be6e61
change formatting (#250)
Co-authored-by: reshke <Kirill Reshke>
2020-12-28 15:43:31 +05:00
kirill reshke dd52fbd83e
compiler hints + just make world a better place & formatting things (#236) 2020-11-25 15:17:15 +05:00
reshke 3965574b8a make headers better 2020-11-03 13:52:31 +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 c4b7a3cc18 Use one tls cts per thread 2020-02-24 15:18:35 +05:00
Andrey 8421873a79 Log tls error login time 2020-02-10 11:19:42 +05:00
Andrey Borodin 5ed39fa2df
Fix canceling query with TLS-requiring connections (#111) 2020-01-28 14:23:38 +05:00
Andrey Borodin eb7299748d Implement login timeout 2019-12-02 18:28:39 +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 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 2e03af9c88 odyssey: major router and shared logic rework
Goal is to improve overall performance during massive peaks
of connecting clients.

This patch makes router a shared structure, instead of
being run in separate system worker thread/coroutine.

Now router and each route object is protected by
separate mutex. Worker threads directly access router object
without calls to separate thread.
2018-12-06 17:23:15 +03:00
Dmitry Simonenko da7e6ea7a5 odyssey: major io rework and refactoring
This patch moves Odyssey from stream based write caching
to message driven. All write operations are delayed
and happen on a group of messages.

This removes necessity to do IO and wait for write completion during calls
from SSL_write() context. Write timings should behave more predictable now and
number of used syscalls should be also decreased.

This patch also simplifies caching management. All clients are simply
reusing cached messages without prolonged contention.

Several configuration options are no longer used:
pipeline, cache, cache_chunk
2018-08-28 17:43:46 +03:00
Dmitry Simonenko f7a4438ec1 odyssey: move stats out of server_t 2018-08-02 16:38:36 +03:00
Dmitry Simonenko 5ca3fa926a odyssey: update source file headers 2018-04-04 16:19:58 +03:00
Dmitry Simonenko 38430a9d51 odyssey: remove config versioning 2018-03-21 17:36:57 +03:00
Dmitry Simonenko 9fcf2a4a80 odyssey: remake pooler service as system 2018-03-13 16:26:04 +03:00
Dmitry Simonenko 20a092098e odyssey: remake system_t as global_t 2018-03-13 16:17:27 +03:00
Dmitry Simonenko f108dcba09 odyssey: project rename 2018-03-12 17:03:15 +03:00
Dmitry Simonenko bb826db7e8 odissey: major scheme rework, rename it to config 2018-03-06 18:23:52 +03:00
Dmitry Simonenko 4df9f8e760 odissey: move config to config_reader 2018-03-05 17:24:30 +03:00
Dmitry Simonenko d48cd092a0 odissey: relay and relay_pool is worker and worker_pool now 2018-03-02 13:00:52 +03:00
Dmitry Simonenko a19f18cef1 odissey: rework router cancel logic 2018-02-22 16:43:52 +03:00
Dmitry Simonenko f11a98432f odissey: rework server buffering using client stream 2018-02-13 16:33:40 +03:00
Dmitry Simonenko c891dc757a odissey: make client stream shared 2018-02-12 16:50:51 +03:00
Dmitry Simonenko 0cc0f949b3 odissey: make server stream shared driven by attach/detach logic 2018-02-12 16:29:40 +03:00
Dmitry Simonenko 7991ee0fb0 odissey: use copy safe od_snprintf() implementation 2017-11-27 15:54:16 +03:00
Dmitry Simonenko 7e217b3b5a odissey: major logging rework (introduce log format) 2017-09-21 16:44:19 +03:00
Dmitry Simonenko 5b29494781 odissey: implement detached error object 2017-09-15 16:08:42 +03:00
Dmitry Simonenko 610cf23c7c odissey: reorder instance.h inclusion 2017-09-15 15:58:29 +03:00
Dmitry Simonenko a663bd8897 odissey: do not close client tls connection if disable 2017-09-04 15:22:26 +03:00
Dmitry Simonenko c86726bbca odissey: allow to define serveral listen servers 2017-08-29 17:43:41 +03:00
Dmitry Simonenko 1f8ddf885e odissey: update file includes 2017-08-08 16:50:50 +03:00
Dmitry Simonenko bc44b08324 odissey: rename tls_verify to tls_mode 2017-07-28 16:19:53 +03:00
Dmitry Simonenko 4afde73e9c odissey: give better names to tls modes 2017-07-28 16:16:46 +03:00
Dmitry Simonenko f28b38bc1a odissey: major logger rework 2017-07-26 17:05:29 +03:00
Dmitry Simonenko f89c577412 odissey: add scheme manager; first attempt to make scheme versional 2017-07-14 16:40:31 +03:00
Dmitry Simonenko d02e2c20be odissey: configuration parser major rework 2017-07-12 17:09:48 +03:00
Dmitry Simonenko 717de6124d odissey: major shapito api update 2017-07-06 16:36:14 +03:00
Dmitry Simonenko 8283a2d665 odissey: update banners 2017-07-05 15:42:49 +03:00
Dmitry Simonenko 9e096b96b2 odissey: rework file naming and include path 2017-07-05 15:15:17 +03:00