Commit Graph

26 Commits

Author SHA1 Message Date
kirill reshke bc568250bf
odyssey tests with asan, little test refactor (#225)
* odyssey tests with asan

* better headers, rework test

Co-authored-by: reshke <Kirill Reshke>
2020-10-27 13:47:25 +05:00
kirill reshke 129ec0be83
fix scram, use postgresql 13 in build & tests (#223)
* fix scram, use postgresql 13 in build & tests

* move scram test inside docker

Co-authored-by: reshke <Kirill Reshke>
2020-10-26 10:00:17 +05:00
reshke 52b0abb647 fix infinte loop + add signals tests 2020-08-10 13:39:09 +05:00
reshke f030093484 use SO_REUSEPORT to graceful shutdown 2020-08-10 13:39:09 +05:00
Andrey Borodin b74b817564 Allow cert files reload 2020-07-08 20:16:51 +05:00
kirill reshke 66c1c63751
odyssey erros stats (#187) 2020-07-08 11:26:17 +05:00
Georgy Rylov b51317b254
t-digest for latencies (#147) 2020-05-28 11:12:10 +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
efimkin 60d7229cdc Enhance settings for replication support (#107) 2020-01-27 18:01:53 +05:00
Andrey 8496cde80a Implement server_max_routing restriction 2020-01-23 11:35:47 +05:00
Andrey Borodin 298cdca895
Implement client_max_routing (#72) 2019-10-15 17:15:37 +03:00
Andrey Borodin d5ba841106 Limit global max_clients before doing tls handshake 2019-10-11 13:33:28 +05:00
Dmitry Simonenko 6f018e48e5 odyssey: rework connection retry logic for too many connections case 2019-08-10 21:03:41 +03:00
Andrey Borodin 6a3c1f78f7 Implement router retry timeout 2019-06-27 17:24:44 +05:00
Andrey Borodin 76ec3581a1
Use pg_lrand48 for portability (#48) 2019-01-30 14:30:31 +05: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 5ca3fa926a odyssey: update source file headers 2018-04-04 16:19:58 +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 a19f18cef1 odissey: rework router cancel logic 2018-02-22 16:43:52 +03:00
Dmitry Simonenko 17673c123a odissey: rework internal services init logic 2018-02-02 15:50:23 +03:00
Dmitry Simonenko 981a4c6626 odissey: update to latest machinarium changes 2018-02-02 14:49:10 +03:00
Dmitry Simonenko 57f6df77c7 odissey: do retry in and separate frontend attach logic 2017-12-08 16:30:42 +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