Commit Graph

152 Commits

Author SHA1 Message Date
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