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