Commit Graph

175 Commits

Author SHA1 Message Date
Roman Gershman
0e375295e8
chore: introduce back-pressure to tiered storage (#3243)
* chore: introduce back-pressure to tiered storage

Also, so clean-up with mac-os daily build.


Enabled forgotten test.
Improve CI insights

---------

Signed-off-by: Roman Gershman <roman@dragonflydb.io>
2024-06-30 15:46:11 +03:00
Kostas Kyrimis
d207789610
chore(ci): run replication tests on arm (#3168)
* combine replication tests and reg tests in one flow
* allow replication tests to run on arm
2024-06-18 16:48:35 +03:00
Kostas Kyrimis
165631a5aa
fix(ci): add missing docker option on reg tests workflow (#3172)
* add missing option for iouring and docker
2024-06-13 10:55:45 +03:00
Kostas Kyrimis
a9ffb22384
fix(ci): docker not using iouring (#3169)
* fix(ci): docker not using iouring

* fix errors
2024-06-12 16:38:02 +03:00
Roman Gershman
007d4854db
chore: Introduce pipeline back-pressure (#3152)
* chore: Introduce pipeline back-pressure

Also, improve synchronization primitives and replace them with
thread-local variations.

Before the change, on my local machine with the dragonfly running with 8 threads,
`memtier_benchmark  -c 10 --threads 8  --command="PING"  --key-maximum 100000000  --hide-histogram --distinct-client-seed --pipeline=20 --test-time=10`

reached 10M qps with 0.327ms p99.9.

After the change, the same command showed 13.8M qps with 0.2ms p99.9
---------

Signed-off-by: Roman Gershman <roman@dragonflydb.io>
2024-06-10 12:39:41 +03:00
Roman Gershman
ce2e127183
chore: call breaker_cb_ on shutdown (#3128)
* chore: call breaker_cb_ on shutdown
---------

Signed-off-by: Roman Gershman <roman@dragonflydb.io>
2024-06-06 08:09:40 +03:00
Roman Gershman
90b5ec4565
fix: upload action in version release (#3127)
Signed-off-by: Roman Gershman <roman@dragonflydb.io>
2024-06-04 15:46:17 +00:00
Roman Gershman
0394387a5f
chore: export pipeline related metrics (#3104)
* chore: export pipeline related metrics

Export in /metrics
1. Total pipeline queue length
2. Total pipeline commands
3. Total pipelined duration

Signed-off-by: Roman Gershman <roman@dragonflydb.io>

---------

Signed-off-by: Roman Gershman <roman@dragonflydb.io>
2024-05-30 19:10:35 +03:00
Roman Gershman
494ccdf2c6
chore: update deprecated actions (#3052) 2024-05-16 13:02:10 +03:00
Roman Gershman
3e0a9e16cc
chore: prevent updating gcc on macos (#3037)
Signed-off-by: Roman Gershman <roman@dragonflydb.io>
2024-05-13 10:30:42 +03:00
Roman Gershman
b3c08a3eb1
chore: update versions and remove caching code (#3030) 2024-05-09 11:39:41 +03:00
Zacharya
6b480237be
Benchmark fixes (#3005)
* fix(benchmark): depcreated node 16 github actions
2024-05-03 19:53:45 +03:00
Zacharya
5a37c47aaf
feat(benchmark-tests): run in K8s (#2965)
Signed-off-by: adi_holden <adi@dragonflydb.io>

* feat(benchmark-tests): run in K8s

---------

Signed-off-by: adi_holden <adi@dragonflydb.io>
Co-authored-by: adi_holden <adi@dragonflydb.io>
2024-05-03 15:12:15 +00:00
Roman Gershman
5c422e39ee
chore: add ipv6 support for native linux release (#2908) 2024-04-16 06:56:33 +00:00
Vladislav
468942ccbb
chore: pull helio and add ipv6 replication test (#2889)
* chore: pull helio and add ipv6 replication test

---------

Signed-off-by: Vladislav Oleshko <vlad@dragonflydb.io>
2024-04-15 15:37:22 +03:00
Roman Gershman
6d87acfc43
chore: fix daily build (#2798)
Signed-off-by: Roman Gershman <roman@dragonflydb.io>
2024-03-30 22:00:42 +03:00
adiholden
6e32139ada
Benchmark runner (#2780)
* feat(github runner): add benchmark workflow

Signed-off-by: adi_holden <adi@dragonflydb.io>
2024-03-27 07:31:19 +00:00
Roman Gershman
f7292de4e7
chore: Introduce fiber stack allocator (#2730)
1. Use clib malloc for allocating fiber stacks but reduce the fiber stack size.
   clib malloc uses default 4K OS pages when reserving memory from the OS.
   The reason for not using mi_malloc, because we use 2MB large OS pages with mimalloc.
   However, allocating stacks is one of the cases, when using smaller 4KB memory pages is actually more
   RSS efficient because memory pages become hot at better granularity.

2. Add "memory_fiberstack_vms_bytes" metric exposing fiber stack vm usage.
3. Fix macos dependencies & update ci versions.

Signed-off-by: Roman Gershman <roman@dragonflydb.io>
2024-03-18 13:51:33 +02:00
Kostas Kyrimis
d6107e55c5
chore: update sanitizers workflow (#2686)
* change timeout duration
* remove failing false positive tests
2024-03-12 14:19:12 +02:00
Roman Gershman
30ce250ab2
chore: Increase disk space in the coverage runs (#2684)
Signed-off-by: Roman Gershman <roman@dragonflydb.io>
2024-03-04 15:29:00 +02:00
Kostas Kyrimis
1b3594ba35
fix: missing manual trigger for daily sanitizers (#2682)
* add manual trigger for usan/asan workflow
2024-03-04 11:40:01 +02:00
Kostas Kyrimis
f3ba448106
chore: make usan asan optional and enable them on CI (#2631)
* add daily job to run unit tests with asan/usan
2024-03-04 11:00:46 +02:00
Roman Gershman
cf9f10e94e
chore: fuly cover json_family API with json::Path parsing (#2663)
---------

Signed-off-by: Roman Gershman <roman@dragonflydb.io>
2024-02-27 14:58:59 +02:00
Roman Gershman
2b30f69fe3
chore: JSON.GET now works with our own jsonpath (#2653) 2024-02-24 13:23:41 +02:00
Andy Dunstall
47171c4c8e
fix: fix zmalloc_size on macos (#2646)
* fix: fix zmalloc_size on macos

---------
Signed-off-by: Roman Gershman <roman@dragonflydb.io>
Co-authored-by: Roman Gershman <roman@dragonflydb.io>
2024-02-23 17:39:58 +02:00
Roman Gershman
6fce3fca9f
chore: fix build for MacOs (#2635)
Also update actions versions to Node 20.
This change allows dragonfly to be built on MacOs.
However, we still have multiple failing tests on MacOS.

Signed-off-by: Roman Gershman <roman@dragonflydb.io>
2024-02-22 12:02:20 +02:00
Kostas Kyrimis
f32156788e
feat(regTests): upload only failed test logs on ci and clean up logging (#2547)
* upload only failed test logs
* remove printing log names for passed tests
* print slow tests with --duration
* separate regression and unit logs for CI workflow
2024-02-21 10:35:07 +02:00
Shahar Mike
ebe83c820c
test: Run slow tests in regression runs (again^2) (#2623)
* test: Run slow tests in regression runs (again^2)

* better comment
2024-02-20 13:57:40 +02:00
Shahar Mike
5f3e9a88c9
test: Run slow tests in regression runs (again:) (#2616) 2024-02-19 20:44:11 +02:00
Shahar Mike
165adc8f87
fix(test): Apply pytest filter to regression tests as well (#2589) 2024-02-14 12:27:29 +02:00
Shahar Mike
8ead569b2f
test(memory): Unaccounted memory test + add DEBUG POPULATE TYPE <type> (#2561)
* test(memory): Test memory accounting for all types

* slightly faster

* WIP

* working

* Document

* Update test to use DEBUG POPULATE

* Nothing much

* Working

* fix

* yaml

* explicit capture

* fix ci?

* stub tx
2024-02-12 08:09:48 +02:00
Roman Gershman
336d6ff181
Update helio (#2538)
chore: UpdateHelio dependency

Add support for asan/ubsan checkers in our dev environment.
Remove more clang warnings.

Once we fix all the problems we will enable them in our CI as well.

Signed-off-by: Roman Gershman <roman@dragonflydb.io>
2024-02-06 11:57:26 +02:00
Kostas Kyrimis
4c0055ddf0
feat: move lint test chart to seperate action and trigger it on reg tests (#2536)
* move lint test chart to a separate action
* use it in regression tests
2024-02-06 10:27:10 +02:00
Roman Gershman
5c0029978e
chore: remove redis sorted set implementation (#2522)
Also remove unused code.

Signed-off-by: Roman Gershman <roman@dragonflydb.io>
2024-02-05 10:29:11 +02:00
Roman Gershman
3ebb32df3f
chore: lock keys when going through fast-path execution (#2491)
This is needed if we want to allow asynchronous transactional operations during the callback execution.
Also update actions versions.

Signed-off-by: Roman Gershman <roman@dragonflydb.io>
2024-01-27 19:02:53 +02:00
Roman Gershman
af23778655
fix: release pipeline (#2439)
We had a place in tools/packaging/generate_debian_package.sh that relied on the existence of build-opt,
moreover, if it did not exist the script deadlocked.

1. Added more loggings
2. Removed the loop
3. Removed unnecessary dependency in the script on the build-dir name.

Signed-off-by: Roman Gershman <roman@dragonflydb.io>
2024-01-18 16:52:19 +02:00
Roman Gershman
b3e0722d01
chore: fix our release pipeline (#2408)
* chore: fix our release pipeline

Also remove alpine prod.wip file that has not been used and unlikely will be for prod.

---------

Signed-off-by: Roman Gershman <roman@dragonflydb.io>
2024-01-14 17:31:59 +02:00
Roman Gershman
e84bc7586a
chore: reduce Makefile for release procedures only (#2397)
Also, change its build directory to build-release.
Simplify a bit its configuration steps as well. No change in functionality is expected.

Signed-off-by: Roman Gershman <roman@dragonflydb.io>
2024-01-11 06:35:57 +02:00
Shahar Mike
1f4b1e4c6c
chore: Enable unit-tests in CI (#2129)
* chore: Enable unit-tests in CI

* Update helio
2023-11-06 10:44:02 +00:00
Roy Jacobson
313501d987
fix(sock): Use the updated cancellation cb interface. (#1940)
* fix(sock): Use the updated cancellation cb interface.

---------

Signed-off-by: Vladislav Oleshko <vlad@dragonflydb.io>
Co-authored-by: Vladislav Oleshko <vlad@dragonflydb.io>
2023-10-23 13:08:06 +03:00
Roman Gershman
d9cb7453fb
wrap dragonfly_test with gdb inside a CI (#2050)
chore: run dragonfly_test with epoll under gdb

Also, update helio that provide a stacktrace under musl libc (alpine linux).
This version of helio updates absl version as well.

Signed-off-by: Roman Gershman <roman@dragonflydb.io>
2023-10-22 20:05:27 +03:00
Kostas Kyrimis
1d02e12ad1
chore: call debug stacktrace on SIGUSR1 (#2012)
* add macro to install a signal handler that prints the contents of debug stacktrace on SIGUSR1
* add this on regTests
2023-10-20 10:50:55 +03:00
Kostas Kyrimis
64841efeed
chore(regTests): print logs when regTests timeout (#2031)
* add a python script to print the most recent log
* if CI timeouts, print the most recent log
* replace global timeout with timeout command
* upload all logs on failure()
* print uid + port + the log files for each df instance
2023-10-20 10:50:19 +03:00
Kostas Kyrimis
32a0baa62c
chore(regTests): separate build and reg tests timeouts (#2006)
* remove timeout from build step
* add 45 min timeout for execution of regTests
2023-10-13 09:01:12 +03:00
Jongwoo Han
4ad2c49523
chore: Replace deprecated command with environment file (#2010)
Signed-off-by: Jongwoo Han <jongwooo.han@gmail.com>
2023-10-12 17:22:31 +03:00
adiholden
84d4ba4d69
chore(regression): test bptree on regression pytests (#1963)
* chore(regression): test bptree on regression pytests

1. stop passing the flag use_zset_tree as it is true on default
2. fix ci test to run replication tests
3. change replication tests seeder to sometimes add more than 128 values
   to zset to test the pbtree impl

Signed-off-by: adi_holden <adi@dragonflydb.io>
2023-10-02 14:07:50 +00:00
adiholden
f18b41c666
run regression tests on CI (#1874)
* run regression tests on CI

Signed-off-by: adi_holden <adi@dragonflydb.io>
2023-09-21 10:52:52 +03:00
Roy Jacobson
b55316c0e6
tests: choose open ports randomally (#1569)
* Implement changes to the testing infrastructure to use random ports
* Use psutil to find out the random ports
2023-09-18 10:23:49 +03:00
Roman Gershman
3683cdb99d
chore: build rpm package for the release (#1866)
Signed-off-by: Roman Gershman <roman@dragonflydb.io>
2023-09-16 22:47:56 +03:00
Roman Gershman
82050248b0
Run unit tests in macos build (#1859)
Signed-off-by: Roman Gershman <roman@dragonflydb.io>
2023-09-15 23:20:37 +03:00