Commit Graph

46 Commits

Author SHA1 Message Date
Georgy Rylov e5a84825a2
Forgot to init field of a struct, fix (#295) 2021-03-17 19:33:21 +05:00
Georgy Rylov ee9eb583f1
Fix calculation of latencies (#294)
* Fix calculation of latencies

* linter fixes
2021-03-17 19:16:46 +05:00
reshke 34644bb931 do not drop client connection in transaction while reload 2021-02-18 18:36:44 +05:00
kirill reshke 3a55be6e61
change formatting (#250)
Co-authored-by: reshke <Kirill Reshke>
2020-12-28 15:43:31 +05:00
kirill reshke 89ef383056
fix build (#237)
Co-authored-by: reshke <Kirill Reshke>
2020-11-27 23:03:42 +05:00
kirill reshke dd52fbd83e
compiler hints + just make world a better place & formatting things (#236) 2020-11-25 15:17:15 +05:00
Andrey Borodin b5aa221f8c
Fix leak of allocation in server object (#231)
* Fix msg leak in server connection error forwarding

* Better fix for the leak

* Fix

* Clean cleaning
2020-11-23 13:10:00 +05:00
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 05b536c458
odyssey: fix modules API + make headers better (#168) 2020-06-15 13:26:58 +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 b7bcb86956
Implement server lifetime (#129) 2020-02-28 15:20:55 +05:00
Dima Starkov a8ca664a63 Implements SCRAM Authentication (#73) 2019-11-11 12:28:50 +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 9e0152417f odyssey: rework and optimize parameters setting logic 2018-12-13 14:18:20 +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 fbc037aa23 odyssey: implement packet retransmission in chunks; packet_read_size 2018-10-23 16:51:30 +03:00
Dmitry Simonenko cd076462eb odyssey: implement and use shared parameters state 2018-09-25 18:40:50 +03:00
Dmitry Simonenko d398dd9a07 odyssey: make client_fwd_error work again 2018-08-29 16:49:10 +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 be59c897cc odyssey: gather current stats in routes instead of server 2018-08-09 17:39:36 +03:00
Dmitry Simonenko 13cd78edfb odyssey: move server sync state out of stats 2018-08-08 16:58:39 +03:00
Dmitry Simonenko f7a4438ec1 odyssey: move stats out of server_t 2018-08-02 16:38:36 +03:00
Dmitry Simonenko e837641719 odyssey: rework query/tx stats calculation 2018-08-01 18:10:44 +03:00
Dmitry Simonenko 5ca3fa926a odyssey: update source file headers 2018-04-04 16:19:58 +03:00
Dmitry Simonenko 7cb9befec0 odyssey: add transaction counter (total_xact_count, avg_xact_count) 2018-04-03 15:03:12 +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 f11a98432f odissey: rework server buffering using client stream 2018-02-13 16:33:40 +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 87bbd19700 odissey: pipeline deploy configuration prio to user request 2018-02-05 16:39:20 +03:00
Dmitry Simonenko 15761a1186 odissey: introduce read pipelining to frontend main loop 2018-01-18 14:52:38 +03:00
Dmitry Simonenko 34412ef00d odissey: user stats for server sync state 2017-12-12 16:18:54 +03:00
Dmitry Simonenko 8d607df67d odissey: major rework of parameter status update logic 2017-10-07 15:30:00 +03:00
Dmitry Simonenko 7e217b3b5a odissey: major logging rework (introduce log format) 2017-09-21 16:44:19 +03:00
Dmitry Simonenko a08eb30987 odissey: track error stats per server 2017-09-12 16:23:59 +03:00
Dmitry Simonenko b964dbdc4f odissey: forward ParameterStatus messages during client configure 2017-09-05 17:07:50 +03:00
Dmitry Simonenko 9635be2650 odissey: rework server recv/sent stats; calculate avg 2017-08-14 17:19:54 +03:00
Dmitry Simonenko d532edd1e5 odissey: track bytes sent and recv 2017-08-14 16:20:38 +03:00
Dmitry Simonenko 536031e097 odissey: save periodic avg stats 2017-08-11 17:19:32 +03:00
Dmitry Simonenko b4c1b74fce odissey: separate sync server state and stats 2017-08-11 13:42:04 +03:00
Dmitry Simonenko 7d74785bbc odissey: meassure server query time 2017-08-10 15:55:12 +03:00
Dmitry Simonenko 625f9e8a0b odissey: use serverstat_t for server synchronization 2017-08-10 15:07:29 +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