Andrey Borodin
c0d972e779
Fix multiple listeners
2020-02-24 15:18:35 +05:00
Andrey Borodin
79b737d1d9
Remove extroueous include
2020-02-24 15:18:35 +05:00
Andrey Borodin
553f176e99
Move contexts under mm_self
2020-02-24 15:18:35 +05:00
Andrey Borodin
c4b7a3cc18
Use one tls cts per thread
2020-02-24 15:18:35 +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
e773dbb260
Add application_name_add_host setting
2020-01-20 11:43:16 +05:00
Andrey Borodin
887e4aa2d8
Decline GSS API request
2019-12-27 17:05:19 +05:00
Andrey Borodin
59857936cd
Fix ignoring of SIGPIPE
2019-12-18 14:32:36 +05:00
Andrey Borodin
6705c040a0
Set SSL server session id
2019-12-04 15:21:50 +05:00
Andrey Borodin
eb7299748d
Implement login timeout
2019-12-02 18:28:39 +05:00
Andrey Borodin
f43ac71d26
Optimize clocks
2019-12-02 18:19:44 +05:00
Andrey Borodin
0605a81816
Silent compiler warnings in kiwi
2019-11-21 11:13:10 +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
960cba4bc9
Silent more compiler warnings
2019-11-19 15:14:51 +05:00
Dima Starkov
a8ca664a63
Implements SCRAM Authentication ( #73 )
2019-11-11 12:28:50 +03:00
Andrey Borodin
e053d76b16
Use only one TLS context per machine
...
Previously we recreated TLS context. This could cause extre files being
read during TLS handshake.
2019-11-11 10:31:52 +03:00
Dmitry Simonenko
76b64c7401
odyssey: minor fixes
2019-09-28 17:42:29 +03:00
Dmitry Simonenko
c6542d7003
odyssey: post merge fixes
2019-09-27 16:47:45 +03:00
Dmitry Simonenko
2c1e05d5d6
machinarium: fix channel/event_mgr timeout race
2019-08-11 15:08:55 +03:00
Andrey Borodin
8c6439ce4c
Make UBSan happy
2019-07-23 18:06:46 +05:00
Dmitry Simonenko
d784c2ad19
odyssey: make restart read logic explicit in router attach
2019-06-13 11:55:01 +03:00
Dmitry Simonenko
a3f55f4f21
odyssey: rework packet header validation
2019-06-03 13:12:50 +03:00
Andrey Borodin
8abed18d69
Minimal message validation
...
Prevent improperly formatted message from breaking into serious disaster
for running process.
2019-04-29 17:14:45 +05:00
Dmitry Simonenko
9cd12c9d4c
odyssey: minor fixes and refactoring
2019-04-13 13:26:47 +03:00
Andrey Borodin
c4e2cedc35
Support of replication protocol
2019-04-12 15:13:50 +05:00
Dmitry Simonenko
af015839b0
machinarium: fix readers race in fast_channel implementation
2019-03-12 19:39:46 +03:00
Dmitry Simonenko
73f4f9e8ca
odyssey: fix warnings
2019-02-10 14:27:28 +03:00
Andrey Borodin
76ec3581a1
Use pg_lrand48 for portability ( #48 )
2019-01-30 14:30:31 +05:00
Dmitry Simonenko
89f3bc5c9e
odyssey: fix readahead re-usage case and event for pending tls data
2019-01-24 18:25:46 +03:00
Dmitry Simonenko
f4c09af3df
odyssey: allocate temp buffer for tls writev support
2019-01-24 16:46:46 +03:00
Dmitry Simonenko
49795088f7
odyssey: optimize relay processing
2019-01-24 15:35:07 +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
7807fd91f2
machinarium: implement readahead-less mode
2018-11-29 18:04:13 +03:00
Dmitry Simonenko
9115d60117
machinarium: rework time update logic
2018-11-27 16:19:16 +03:00
Dmitry Simonenko
9e37d1eff8
odyssey: add support for BoringSSL
2018-11-23 17:07:39 +03:00
Dmitry Simonenko
6b91e6e609
machinarium: try PTHREAD_CANCEL_DISABLE/DEFERRED to avoid __libc calls
2018-11-22 18:44:53 +03:00
Dmitry Simonenko
dd3e984431
machinarium: reduce clock_update runs and do timer optimizations
2018-11-22 18:03:25 +03:00
Dmitry Simonenko
f92e1039fe
machinarium: avoid errno setting to reduce __errno_location() calls
2018-11-22 17:42:29 +03:00
Dmitry Simonenko
dc89a7a54b
machinarium: try to avoid ERR_clear_error() to reduce lock contention
2018-11-21 18:32:43 +03:00
Dmitry Simonenko
6c13cad1fa
machinarium: avoid caching messages from other workers
2018-11-20 19:08:27 +03:00
Dmitry Simonenko
c61c1e81f7
machinarium: rework msg_cache/coroutine_cache per machine thread
2018-11-19 17:52:37 +03:00
Dmitry Simonenko
648962ffd7
machinarium: use unsigned int for sleeplock
2018-11-15 15:25:50 +03:00
Dmitry Simonenko
7c7fdf557d
machinarium: switch to sleeplock instead of pthread_mutex_t
2018-11-15 15:22:38 +03:00
Dmitry Simonenko
2d4f61f923
odyssey: introduce packet_write_queue
2018-11-13 18:29:25 +03:00
Dmitry Simonenko
a18f2eae68
machinarium: switch to mutexes to reduce hot spots cpu usage
2018-10-26 18:41:55 +03:00
Dmitry Simonenko
fbc037aa23
odyssey: implement packet retransmission in chunks; packet_read_size
2018-10-23 16:51:30 +03:00
Dmitry Simonenko
14d4a7f478
odyssey: add cache_msg_gc_size option and disable default caching
2018-09-26 18:18:17 +03:00