Commit Graph

32 Commits

Author SHA1 Message Date
reshke 885a70ced3 Add client host to default log (#74) 2019-11-06 13:45:22 +03:00
Dmitry Simonenko 73f4f9e8ca odyssey: fix warnings 2019-02-10 14:27:28 +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 9d6dea5d92 odyssey: major parameter settings optimization 2018-12-12 16:07:25 +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 e4f0ca6d1c odyssey: fix sys/fcntl.h include warnings. #17 2018-06-13 16:51:57 +03:00
Dmitry Simonenko e833e62b7f odyssey: set correct fd for stdout logging. fix #10 2018-06-04 15:40:10 +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 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 13f428a44d odissey: implement log_debug per database-user 2017-12-05 15:44:56 +03:00
Dmitry Simonenko 0e46fffd92 odissey: add log_debug settings per route 2017-12-05 15:32:08 +03:00
Dmitry Simonenko aa82264169 odissey: check client state during logging 2017-12-05 15:22:46 +03:00
Dmitry Simonenko bba88ec17f odissey: extend query logging info 2017-11-28 17:02:19 +03:00
Dmitry Simonenko 7991ee0fb0 odissey: use copy safe od_snprintf() implementation 2017-11-27 15:54:16 +03:00
Dmitry Simonenko 9ffaf7ff66 odissey: set bootstrap logging format 2017-09-28 17:11:48 +03:00
Dmitry Simonenko 38cdb21a57 odissey: add time and host info to logger format 2017-09-21 17:17:33 +03:00
Dmitry Simonenko 7e217b3b5a odissey: major logging rework (introduce log format) 2017-09-21 16:44:19 +03:00
Dmitry Simonenko ad8809acb2 odissey: fix jenkins compilation warnings 2017-08-17 17:13:31 +03:00
Dmitry Simonenko 7d74785bbc odissey: meassure server query time 2017-08-10 15:55:12 +03:00
Dmitry Simonenko 9193f44ebb odissey: preformat message to support tskv format 2017-07-27 16:12:22 +03:00
Dmitry Simonenko 1c0bd2cbfe odissey: implement tskv log format 2017-07-27 15:44:44 +03:00
Dmitry Simonenko d6c466bbf7 odissey: rework logger using methods 2017-07-27 15:24:38 +03:00
Dmitry Simonenko 19beb8b634 odissey: add log_format configuration parameter 2017-07-27 15:06:59 +03:00
Dmitry Simonenko c9df1e0976 odissey: add log_stdout configuration parameter 2017-07-27 14:35:19 +03:00
Dmitry Simonenko 29363c6a71 odissey: refactor logger function 2017-07-26 17:18:57 +03:00
Dmitry Simonenko f28b38bc1a odissey: major logger rework 2017-07-26 17:05:29 +03:00