Commit Graph

66 Commits

Author SHA1 Message Date
kirill reshke 41a5449969
odyssey modules (#156) 2020-06-09 14:19:11 +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 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 816d45958e Revert "Add pause/resume admin console commands (#66)"
This reverts commit b426f4f301.
2019-11-19 16:57:16 +05:00
Andrey Borodin aaa613ee41 Make some error logging better 2019-11-19 13:22:59 +05:00
Andrey Borodin f8f8db1ac5 Add logging for start, stop and client error 2019-06-17 11:35:21 +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 dc3ae5ca2e odyssey: allow to set process/workers priority 2018-11-14 16:14:13 +03:00
Dmitry Simonenko 11dce290c3 odyssey: implement config file reload. fix #38 2018-09-18 19:22:22 +03:00
Dmitry Simonenko 3079cb2636 odyssey: remove route config version id and use obsolete flag only 2018-09-18 18:26:25 +03:00
Dmitry Simonenko be65c36a37 odyssey: add storage and route config comparison logic 2018-09-18 17:36:20 +03:00
Dmitry Simonenko de824a3373 odyssey: implement msg_cache gc for oversized msgs 2018-09-05 16:04:36 +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 cf3e99ecca odyssey: implement coroutine_stack_size config param. #9 2018-06-04 14:51:13 +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 3378e60827 odyssey: remove instance_t* field out from system 2018-03-13 16:37:53 +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 5862c1762f odyssey: misc fixes 2018-03-13 15:13:42 +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 a096d258b7 odissey: rework configuration reader 2018-03-05 17:50:51 +03:00
Dmitry Simonenko 4df9f8e760 odissey: move config to config_reader 2018-03-05 17:24:30 +03:00
Dmitry Simonenko 99fca366ef odissey: rename periodic service to cron 2018-03-02 16:12:32 +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 bf79959961 odissey: handle sigterm signal 2018-02-28 17:33:38 +03:00
Dmitry Simonenko b208a77954 odissey: allow to configure coroutine cache size 2018-02-26 17:34:06 +03:00
Dmitry Simonenko db109ca7db odissey: allow to configure number of resolvers threads 2018-02-26 17:29:10 +03:00
Dmitry Simonenko a19f18cef1 odissey: rework router cancel logic 2018-02-22 16:43:52 +03:00
Dmitry Simonenko 9f505cb2c7 odissey: add cache and cache_chunk configuration options 2018-02-14 14:55:38 +03:00
Dmitry Simonenko fc78dcc409 odissey: add stream cache limits 2018-02-13 17:18:13 +03:00
Dmitry Simonenko 25ec1a27eb odissey: add stream_cache 2018-02-12 16:27:06 +03:00
Dmitry Simonenko b0635265a1 odissey: move is_shared logic to instance domain 2018-02-02 16:44:47 +03:00
Dmitry Simonenko 17673c123a odissey: rework internal services init logic 2018-02-02 15:50:23 +03:00
Dmitry Simonenko 57faa0f7c4 odissey: move relay pool start to pooler context 2018-02-02 14:54:13 +03:00
Dmitry Simonenko 7991ee0fb0 odissey: use copy safe od_snprintf() implementation 2017-11-27 15:54:16 +03:00
Dmitry Simonenko 023b931ee1 odissey: reuse client id as a forge backend key 2017-11-24 15:19:14 +03:00
Dmitry Simonenko 7e217b3b5a odissey: major logging rework (introduce log format) 2017-09-21 16:44:19 +03:00
Dmitry Simonenko 2f5b3de41e odissey: add log_ prefix to syslog config options 2017-09-18 16:14:52 +03:00
Dmitry Simonenko f2aa854450 odissey: use error object instead of logger for config parsing 2017-09-15 16:52:11 +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 cfa978d402 odissey: fix machinarium daemonization 2017-08-17 16:56:32 +03:00
Dmitry Simonenko 1f8ddf885e odissey: update file includes 2017-08-08 16:50:50 +03:00
Dmitry Simonenko 1d371edfce odissey: make scheme version 64bit 2017-08-03 17:03:37 +03:00
Dmitry Simonenko 390f1c575d odissey: move scheme version out of od_config_load() 2017-08-01 18:16:29 +03:00
Dmitry Simonenko d62f085e58 odissey: rename log_stdout to log_to_stdout 2017-07-28 16:23:05 +03:00