Commit Graph

51 Commits

Author SHA1 Message Date
reshke f030093484 use SO_REUSEPORT to graceful shutdown 2020-08-10 13:39:09 +05:00
reshke bde82dec9b tcp keepalive settings 2020-07-22 13:05:16 +05:00
kirill reshke a1be256a08
fix memory leaks (#191) 2020-07-09 10:19:34 +05:00
kirill reshke bfd5e07ed2
PAM PI modifications (#176)
Co-authored-by: reshke <Kirill Reshke>
2020-06-16 10:27:33 +05:00
kirill reshke 05b536c458
odyssey: fix modules API + make headers better (#168) 2020-06-15 13:26:58 +05:00
lowgear 4e39d48eee
fixed typo bug in for loop (#166)
* fixed typo in for loop

* trigger CI recheck
2020-06-14 22:01:17 +05:00
kirill reshke 41a5449969
odyssey modules (#156) 2020-06-09 14:19:11 +05:00
lowgear ea79d800d2
added style check to travis (#158)
* added style check to travis

* fixed style

* missing change

* check style first

* no excludes, use certain clang-format version

* install clang-format-9

* added submodule

* fix exclude
2020-06-04 22:35:44 +05:00
Andrey Borodin 67c1b9fd5c Allow dbname=default and user=default 2020-04-09 23:01:35 +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
Andrey Borodin 785a434acb
Fix percentile read (#122) 2020-02-19 11:01:29 +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 f74abbf6ca Fix mesmerged 'break;' loss 2020-01-27 17:48:04 +05:00
Andrey Borodin 507682fdd5
Quantiles for transactions and queries (#95) 2020-01-24 17:31:15 +05:00
Andrey 3732c8b8b7 Refactor server_max_routing setting, use it for expiration too 2020-01-24 12:02:35 +05:00
Andrey 8496cde80a Implement server_max_routing restriction 2020-01-23 11:35:47 +05:00
Andrey 0bf792c4af Add server_login_retry timeout 2020-01-23 11:35:47 +05:00
Andrey e773dbb260 Add application_name_add_host setting 2020-01-20 11:43:16 +05:00
Andrey Borodin b98d34d489 Increase default client_max_routing 2019-12-04 15:21:50 +05:00
Andrey Borodin eb7299748d Implement login timeout 2019-12-02 18:28:39 +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 aaa613ee41 Make some error logging better 2019-11-19 13:22:59 +05:00
lowgear b426f4f301 Add pause/resume admin console commands[fork of tomlikestorock's PR] (#66) 2019-11-11 11:37:09 +03:00
Andrey Borodin 298cdca895
Implement client_max_routing (#72) 2019-10-15 17:15:37 +03:00
Dmitry Simonenko c6542d7003 odyssey: post merge fixes 2019-09-27 16:47:45 +03:00
reshke debfd09d8e Add PAM auth support 2019-09-26 13:54:53 +05: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 c4f383ccfb odyssey: introduce pool_discard configuration parameter 2018-12-11 12:57:52 +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 dc3ae5ca2e odyssey: allow to set process/workers priority 2018-11-14 16:14:13 +03:00
Dmitry Simonenko 2d4f61f923 odyssey: introduce packet_write_queue 2018-11-13 18:29:25 +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
Dmitry Simonenko 3079cb2636 odyssey: remove route config version id and use obsolete flag only 2018-09-18 18:26:25 +03:00
Dmitry Simonenko be65c36a37 odyssey: add storage and route config comparison logic 2018-09-18 17:36:20 +03:00
Dmitry Simonenko 75a2d44093 odyssey: fix #41: fix include crash and allow empty include files 2018-09-11 17:18:28 +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 c495b9ea8a odyssey: add unix_socket_mode configuration param 2018-07-03 16:02:46 +03:00
Dmitry Simonenko fb023d42cb odyssey: add unix socket support. fix #31 2018-07-02 18:41:17 +03:00
Dmitry Simonenko 15a958e0e4
Merge pull request #20 from quanzl/master
log prepared statement
2018-06-08 19:10:32 +03:00
Dmitry Simonenko ae0aed8a55 odyssey: do not force to have default database and user. #19 2018-06-08 18:28:07 +03:00
Quan Zongliang ddf0d140a4 suppress compiler warning
gcc version 4.4.7 20120313 (Red Hat 4.4.7-16) (GCC)

sources/config_reader.c: In function ‘od_configreader_database’:
sources/config_reader.c:234: warning: ‘token.line’ may be used uninitialized in this function
sources/config_reader.c:234: note: ‘token.line’ was declared here
2018-06-08 12:34:21 +08:00
Dmitry Simonenko cf3e99ecca odyssey: implement coroutine_stack_size config param. #9 2018-06-04 14:51:13 +03:00
Dmitry Simonenko f5a4bd9a35 odyssey: support configurable list of common names to check 2018-05-10 15:49:31 +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 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 a096d258b7 odissey: rework configuration reader 2018-03-05 17:50:51 +03:00