Commit Graph

69 Commits

Author SHA1 Message Date
reshke bb62293e50 aplly formatting on golnag tests 2021-04-15 17:06:04 +05:00
kirill reshke d8b0cee67c
fix local database conection stuck & tests (#262)
Co-authored-by: reshke <Kirill Reshke>
2021-01-14 15:40:01 +05:00
kirill reshke f305546e9c
fix scram build & tests, also make makefile a little bit more clear && better (#259)
* fix scram build & tests, also make makefile a little bit more clear and parametrized

* fix fmt & fmt target better

* remove shell test from tests run

Co-authored-by: reshke <Kirill Reshke>
2021-01-12 12:06:27 +05:00
kirill reshke c4878697ee
fix formatting & apply fmt target in MAkefiel (#251)
Co-authored-by: reshke <Kirill Reshke>
2020-12-28 16:22:53 +05:00
kirill reshke 89ef383056
fix build (#237)
Co-authored-by: reshke <Kirill Reshke>
2020-11-27 23:03:42 +05:00
Daniil Zakhlystov e97f7e1f1c
Add compression toggle to config, cmake && Add dependencies to BuildDebian (#234)
* Add compression option to config

* Add BUILD_COMPRESSION option to cmake

* Escape identifiers

* Add preprocessing directives for OD_BUILD_COMPRESSION

* Add dependencies for BuildDebian

* apply fmt

Co-authored-by: root <root@ubuntu-build-machine.ru-central1.internal>
2020-11-23 16:55:42 +05:00
kirill reshke 785e85ab6f
Fix leaks and improve locking in cron (#229)
Also fix some warnings.
2020-11-23 14:13:28 +05:00
Daniil Zakhlystov 222da0c70a
Implement libpq compression (#230)
* Add zlib and zstd to cmake

* Add zpq_stream to machinarium

--
zpq_stream is used for streaming compression/decompression of Postgres protocol

* Add zpq_stream-related functions to machinarium

* Add compression set/free/read/write logic to machinarium

* Add startup packet compression var to kiwi

* Add compression_ack backend message support for kiwi

* Add compression setup logic for main odyssey project

* apply fmt

* fix format #2

Co-authored-by: root <root@ubuntu-build-machine.ru-central1.internal>
2020-11-23 13:22:17 +05:00
kirill reshke eaae0eff47
fix debian & cmake (#226)
Co-authored-by: reshke <Kirill Reshke>
2020-11-03 12:24:48 +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 a5f716025c
fix coveirty issues + remove legacy (#224)
* fix a couple of severity issues

* emove lagacy

* zero cost debug macros on release

* dbg macro fix

* apply fmt

Co-authored-by: reshke <Kirill Reshke>
2020-10-26 17:29:05 +05:00
kirill reshke 129ec0be83
fix scram, use postgresql 13 in build & tests (#223)
* fix scram, use postgresql 13 in build & tests

* move scram test inside docker

Co-authored-by: reshke <Kirill Reshke>
2020-10-26 10:00:17 +05:00
kirill reshke 070c2a7fe1
apply fmt && fix CI second try (#215)
Co-authored-by: reshke <Kirill Reshke>
2020-10-19 14:51:02 +05:00
reshke 57a9e84150 show errors per route 2020-09-03 14:04:28 +05:00
reshke 20e97cae09 drop steal users connections on restart 2020-09-02 11:49:14 +05:00
reshke 15adddf05a tcp connectios count per route 2020-09-01 12:38:49 +05:00
reshke 52b0abb647 fix infinte loop + add signals tests 2020-08-10 13:39:09 +05:00
reshke f030093484 use SO_REUSEPORT to graceful shutdown 2020-08-10 13:39:09 +05:00
Islamov A 6d1728aa0e fix memory leaks in tests, fixed type overflow in random 2020-06-10 18:59:53 +05:00
lowgear 1d5d1b5c21
treat buffer respecting size (1) (#160) 2020-06-09 11:51:13 +05:00
Islamov A 62bfebfc1a copy new script to build directory 2020-06-04 19:24:42 +05:00
Islamov A 324e3bde46 only stop pg on test failed but keep artifacts 2020-06-04 19:17:57 +05:00
Islamov A 0cd37f0316 call teardown if setup or any test failed 2020-06-03 19:12:25 +05:00
Islamov A b77eab297e added odyssey to odyssey_test dependencies 2020-06-02 21:47:50 +05:00
Georgy Rylov b51317b254
t-digest for latencies (#147) 2020-05-28 11:12:10 +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 6776e43134 Try to stop TLS handshakes on shutdown 2020-03-23 18:14:18 +05:00
Andrey Borodin 438e6ae1e7
Extended show pools (#135)
* Extended show pools

* Output time quantiles in SHOW POOLS EXTENDED

One important caveat is that quantiles itself will be taken from console database.
But if route does not have quantiles defined all stats will be zero.

* Change quantile refresh period
2020-03-18 10:12:53 +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 Borodin 507682fdd5
Quantiles for transactions and queries (#95) 2020-01-24 17:31:15 +05:00
Andrey Borodin 59857936cd Fix ignoring of SIGPIPE 2019-12-18 14:32:36 +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
Dima Starkov 95f1740031 Add integration tests for SCRAM Authentication (#78)
* Add integration tests for SCRAM Authentication

* Made tests independent of the postgresql version
2019-11-24 21:00:00 +05: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 c6542d7003 odyssey: post merge fixes 2019-09-27 16:47:45 +03:00
Andrey Borodin 7681160dd1 Avoid private inclusion (fix #67) 2019-08-23 09:45:35 +05:00
Dmitry Simonenko 1dc7f58c73 odyssey: fix warning and misc fixes 2019-08-08 17:39:13 +03:00
Andrey Borodin 13bd4f1998 Fix slow test 2019-07-31 14:56:45 +05:00
Andrey Borodin 4619365642 Use milliseconds for test measurements 2019-07-31 14:48:28 +05:00
Andrey Borodin 52fc083a30 Measure test time 2019-07-31 14:40:04 +05:00
Andrey Borodin 770e242e72 Add few sleeplock test 2019-07-31 14:17:46 +05:00
Dmitry Simonenko af015839b0 machinarium: fix readers race in fast_channel implementation 2019-03-12 19:39:46 +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 c4f383ccfb odyssey: introduce pool_discard configuration parameter 2018-12-11 12:57:52 +03:00
Dmitry Simonenko c61c1e81f7 machinarium: rework msg_cache/coroutine_cache per machine thread 2018-11-19 17:52:37 +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 366f9b5312 odyssey: fix machinarium stat tests 2018-09-05 16:08:29 +03:00
Dmitry Simonenko 5e1e96987c odyssey: update stat tests 2018-08-30 17:24:07 +03:00