Commit Graph

212 Commits

Author SHA1 Message Date
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
Roman Gershman
0ada51c42a
chore: enable search lib on Apple (#1854)
Signed-off-by: Roman Gershman <roman@dragonflydb.io>
2023-09-13 20:08:33 +03:00
Roman Gershman
02fff36e3e
Add build_rpm script and rpm spec (#1831)
Also, link stdlib++ and libgcc statically.

Signed-off-by: Roman Gershman <roman@dragonflydb.io>
2023-09-12 10:42:06 +03:00
Roy Jacobson
c18aa1c317
Revert "feat(CI): Configure sccache to work with GCS" (#1833)
Revert "feat(CI): Configure sccache to work with GCS (#1815)"

This reverts commit f3c4132ab6.
2023-09-10 08:11:26 +00:00
Roy Jacobson
f3c4132ab6
feat(CI): Configure sccache to work with GCS (#1815)
* feat(CI): Configure sccache to work with GCS

* Lower sccache log level now that it's working.
2023-09-10 10:23:51 +03:00
Vladislav
e0af5fe836
Remove ICU library (#1812)
* chore(search): Replace icu with unialgo

---------

Signed-off-by: Vladislav Oleshko <vlad@dragonflydb.io>
2023-09-06 15:06:38 +03:00
Roman Gershman
4e393cf742
fix: alpine weekly pipeline (#1811)
1. Move docker build files to separate dir from docker script files
   so that they won't be part of build context. Update dockerignore as well
2. Fix lib dependencies for alpine

Signed-off-by: Roman Gershman <roman@dragonflydb.io>
2023-09-06 08:27:40 +00:00
Roman Gershman
36be222091
chore: add macos daily build (#1795)
It compiles most of the code though some linking problems still exist.

Signed-off-by: Roman Gershman <roman@dragonflydb.io>
2023-09-06 09:35:11 +03:00
Roman Gershman
5ef8087a9c
fix: use cd instead of working-directory which does not work (#1781)
fix: use "cd" instead of woarking-directory that does not work

Also, use GITHUB_WORKSPACE due to https://github.com/actions/runner/issues/2058

Signed-off-by: Roman Gershman <roman@dragonflydb.io>
2023-08-31 23:23:48 +03:00
Roman Gershman
63eb219d88 chore: split daily build and bullmq tests (#1766)
Also add fedora linux to daily build matrix.

Signed-off-by: Roman Gershman <roman@dragonflydb.io>
2023-08-30 14:24:52 +03:00
Roman Gershman
8ebfd15166
fix: extend CI running time (#1749)
Also, add sccache debug log in hope to understand
why we get 0 hits sometimes.

Signed-off-by: Roman Gershman <roman@dragonflydb.io>
2023-08-27 10:57:29 +03:00
Roman Gershman
eaaf2c5287
chore: cover zset over bptree implementation in the CI. (#1736)
Signed-off-by: Roman Gershman <roman@dragonflydb.io>
2023-08-25 11:45:17 +03:00
Roman Gershman
7d619d2d4b
chore: integrate sccache (#1738)
Signed-off-by: Roman Gershman <roman@dragonflydb.io>
2023-08-25 10:58:11 +03:00
Roy Jacobson
b0718abdd1
chore: Split the build & test into 2 stages (#1733) 2023-08-24 16:52:24 +03:00
Kostas Kyrimis
69e24e7a43
chore(gh-workflows): add regression tests to release job (#1665)
* Run regression tests on Release build (only for x86)
* Make regression tests a composite action 
* Refactor to use regression tests action
2023-08-24 15:24:21 +02:00
Roy Jacobson
d12c6e3639
chore: Add a daily coverage run (#1437)
* Add a coverage workflow to dragonfly.

* Try and make the testing permissive

* Apply suggestions from code review

Signed-off-by: Roy Jacobson <roi.jacobson1@gmail.com>

* Remove redundant parts

---------

Signed-off-by: Roy Jacobson <roi.jacobson1@gmail.com>
2023-08-22 20:00:21 +02:00
Vladislav
5198622a15
feat: Support unicode strings in search (#1698)
Signed-off-by: Vladislav Oleshko <vlad@dragonflydb.io>
Signed-off-by: Vladislav <vlad@dragonflydb.io>
2023-08-18 15:40:37 +03:00
Abhradeep Chakraborty
0922cdb2b1
fix(daily-builds): temporarily comment out bullmq tests (#1679)
Signed-off-by: Abhradeep Chakraborty <abhradeep@dragonflydb.io>
2023-08-10 10:04:59 +03:00
adiholden
f9a3e2811c
test(server): test transaction locked keys (#1669)
* test(server): test transaction locked keys

1. add test utility class that will add suspension to transaction
   execution.
2. add test for locked keys in transaction

Signed-off-by: adi_holden <adi@dragonflydb.io>
2023-08-09 12:52:13 +00:00
Shahar Mike
3779837c5f
test(server): Run all unit tests with --force_epoll (#1672) 2023-08-09 11:00:46 +03:00
Shahar Mike
67a4c4e6cb
feat(server): Add --lock_on_hashtags mode. (#1611)
* feat(server): Add `--lock_on_hashtags` mode.

This new mode effectively locks hashtags (i.e. strings within {curly
braces}) instead of the full keys being used.
This can allow scripts to access undeclared keys if they all use a
common hashtag, like for the case of BullMQ.

To make sure this mode is tested, I added a way to specify flags via env
variables, and modified `ci.yml` to run all tests using this mode as well.
While at it, I also added `--cluster_mode=emulated` mode to CI.
2023-08-03 20:13:36 +03:00
Abhradeep Chakraborty
3bf755c44b
feat(github-actions): add bullmq tests in daily builds (#1511)
feat(daily-builds): add bullmq tests in daily builds

Signed-off-by: Abhradeep Chakraborty <abhradeep@dragonflydb.io>
2023-07-24 16:51:42 +03:00
adiholden
c411362693
bug(server): multi exec eval (#1541)
* The bug - if all commands inside multi trasaction are eval commands
	    and global scripts mode is on, we did ignored the trasaction
	    and run each eval separately.
*Fix - run all evals under multi inside the global lock
* Change multi eval run only if scripts are in global mode and multi
  mode is not non atomic
* Fix test flags setup
* Skip test ContendedList as it fails
* change default exec mode for txs to lock ahead
2023-07-23 09:09:21 +03:00
Roman Gershman
0c3dbdba1b
chore: update ci action versions (#1557)
chore: update ci versions
2023-07-17 20:02:34 +03:00
adiholden
aed01aa5e4
feat(github regression): add link to github job (#1482)
* feat(regression): add github job link

Signed-off-by: adi_holden <adi@dragonflydb.io>
2023-06-27 14:13:25 +03:00
adiholden
242d70b285
fix(regression): fix json report filename (#1465)
Signed-off-by: adi_holden <adi@dragonflydb.io>
2023-06-23 12:58:51 +03:00
adiholden
98e84f804a
feat(regression github): send failed tests names to chat (#1459)
* feat(regression) : send failed tests names

Signed-off-by: adi_holden <adi@dragonflydb.io>
2023-06-22 09:47:12 +03:00
Tarun Pothulapati
1884ea3ef6
fix(docker-release): Run Docker test only if image is built (#1430)
Currently, During docker release we don't actually build the
alpine release but the new docker run test ends up trying to
run it and fails. This adds the same toggle that we use for
build to prevent the test step.
2023-06-19 06:46:29 +03:00
Tarun Pothulapati
3aa7c0d7a8
feat(CI): Update weekly build image name to be dragonfly-weekly (#1384)
This commit updates the weekly docker build to use `dragonfly-weekly`
image tag so that we get better separation. We also now push these
images with the github sha commit tags. We also update `latest` as
these get pushed.
2023-06-18 22:59:45 +03:00
kbelokon
956b39c553
bug(helm) Fix tolerations and affinity mishandling in Helm template (#1373)
* bug(helm) Fix tolerations and affinity mishandling in Helm template

Signed-off-by: Kirill Belokon <belokon@mindbox.cloud>

* add golden test case

* increase resource requests

* add node label to test

---------

Signed-off-by: Kirill Belokon <belokon@mindbox.cloud>
Co-authored-by: Tarun Pothulapati <tarun@dragonflydb.io>
2023-06-15 20:34:45 +05:30
Vladislav
e837b3d229
Fix reply builder access issue (#1378)
* fix: Fix invalid reply builder use

---------

Signed-off-by: Vladislav Oleshko <vlad@dragonflydb.io>
2023-06-10 00:50:05 +03:00
Tarun Pothulapati
a600ba8f0b
feat(ci): Test the built docker image (#1240)
This commit adds a new testing phase that runs the container
and waits for a PONG response. This step fails if the expected
response is not received.
2023-06-07 15:27:12 +03:00
Chaka
ab3a67ced3
chore: Double regression tests timeout (10m->20m) (#1350) 2023-06-04 22:19:07 +03:00
adiholden
dcfd9262a7 fix(regression test): skip test_disconnect_replica (#1286)
Signed-off-by: adi_holden <adi@dragonflydb.io>
2023-06-01 15:13:18 +03:00
Roy Jacobson
76801fa8c3
fix: werror in ci and warning that slipped by (#1297)
* fix: werror in ci and warning that slipped by

* Ignore bison warnings

* Fix C++17 compat warning
2023-05-29 16:36:57 +03:00
Roy Jacobson
ad7b4cf368
chore: Add clang workflow to CI (#1220)
* chore: Add clang workflow to CI

* Small fixes/warnings

* Disable Werror for clang
2023-05-23 14:22:28 +03:00
Roy Jacobson
211be143f1
chore: Try to turn on Werror in the CI (#1261) 2023-05-22 05:21:01 +03:00
Roman Gershman
964eeee6f0
chore: Add bison to release build dependencies (#1215)
Signed-off-by: Roman Gershman <roman@dragonflydb.io>
2023-05-15 09:39:55 +03:00
adiholden
834b827a5d
chore(regression tests) : remove replication tests from arm host runner (#1174)
* test(regression): remove replication_test from regression arm

Signed-off-by: adi_holden <adi@dragonflydb.io>

* fix

Signed-off-by: adi_holden <adi@dragonflydb.io>

---------

Signed-off-by: adi_holden <adi@dragonflydb.io>
2023-05-02 22:24:49 +03:00
Roy Jacobson
de0b73312a
chore: Tweak debug symbols generation for releases (#1139)
* chore: Tweak debug symbols generation for releases

* Update helio (for blaze.sh changes)
2023-04-30 09:14:51 +03:00
adiholden
3b3350081c
chore: enable self hosted runner (#1116)
Signed-off-by: adi_holden <adi@dragonflydb.io>
2023-04-20 11:36:04 +02:00
Roman Gershman
0ff22c6078
chore: disable self-hosted runner (#1067) 2023-04-10 22:24:34 +03:00
Roman Gershman
71a4c6dd45
chore: change Dragonfly to use fb2 helio library. (#1049)
It's a bit more efficient than Boost.Fibers due to better integrations
of Fibers with Proactor loop.

Signed-off-by: Roman Gershman <roman@dragonflydb.io>
2023-04-09 16:41:10 +03:00
adiholden
f953946eff
feat(github): add self hosted runner to regression tests (#1016)
Signed-off-by: adi_holden <adi@dragonflydb.io>
2023-03-31 19:59:55 +03:00
Tarun Pothulapati
6ea76e9daa
fix(ci): Use stripped binaries for docker images (#1006)
This PR updates the container release workflow to delete the
unstripped packages so that we prevent the stripped packages from
being overwritten.

This should reduce the size of the container images significantly.
2023-03-29 08:00:28 +03:00
Tarun Pothulapati
94b8951f5e fix(ci): Use correct x86-64 with builds
This commits fixes the flag to use the right format
for `x86-64`
2023-03-16 08:52:48 +02:00
Tarun Pothulapati
999caa1e4f feat(ci): Add daily builds BFS verification
This commit adds a scheduled job that runs 8 AM Israel time every day,
with common build configuration flags so that we can be sure
that building from source for known configurations is possible.
2023-03-14 23:17:08 +02:00
adiholden
8e528f1fbb
fix(redis_replicaiton_test): fix compare set types (#929)
* fix(redis_replicaiton_test): fix compare set types

Signed-off-by: ashotland <ari@dragonflydb.io>
Co-authored-by: ashotland <ari@dragonflydb.io>
2023-03-13 13:37:58 +02:00
Vahagn Aharonian
1371ce9270 feat(workflow): Add Vercel Docs Hook to release workflow 2023-03-12 08:15:57 +02:00
Tarun Pothulapati
5c57e4efe2
chore(helm): Make release pipeline to update golden files (#916)
Golden files need to be updated as version is updated in the
`Chart.yaml` file. This commit adds the step to update the golden
files in the release pipeline.

To make that possible, The following additional changes are also
required:
- `Go.Work`: This adds support multi-module projects as we will
   have the tests along with the operator in sub-folders. This
   is required to run go cmds from the root directory. (like
   running tests in this case).
- `.helmignore`: This updates the Helm chart to ignore the `/ci`
    folder during helm packaging as those are not required for
    users of the chart.
2023-03-08 23:35:47 +05:30
Vladislav
7cb2232edc
fix(pytest): Add master restart delay (#909)
- Add restart delay to master in crashing master test
- Add process check after force shutdown
- Increase time limit to 45 min
2023-03-06 00:16:57 +03:00
adiholden
86948efb4d
fix(regression-tests): fix cpu print step (#910)
* fix(regression-tests): fix cpu print step


Signed-off-by: adi_holden <adi@dragonflydb.io>
2023-03-05 13:26:21 +02:00
Vladislav
95f422ab6e
fix(tests): Disable logging in replication tests (#906)
Disable debug logging in replication pytests
2023-03-04 21:42:12 +03:00
adiholden
4a5d2f2a9a
feat(regression test) : add regression test that run in optimiztion mode (#900)
* feat(regression test) : add run in opimiztion mode

Signed-off-by: adi_holden <adi@dragonflydb.io>
2023-03-02 16:33:52 +02:00
Roman Gershman
edd93a086c
fix: ci (#893)
Signed-off-by: Roman Gershman <roman@dragonflydb.io>
2023-03-01 16:22:33 +02:00
Tarun Pothulapati
5dfaa1d061
test(chart): add golden file output rendering tests (#882)
This commit adds a new `golden_test.go` file into the helm chart
which essentially renders the chart with a set of values and
compares that with the expected golden file, and errors if
they don't match.

This builds on the existing CI values files in `ci/` directory. As
this is the first time, The golden files are rendered and added. This
means for all the future changes, The golden files can be updated
by running `go test -update` and the CI will fail if the golden files
are not updated. By doing this, Both the committer and reviewer
can be sure that the changes are intentional, without having to render
the chart manually.
2023-02-28 18:02:15 +05:30
adiholden
6a2b152e8b
feat(db slice): add fiber atomic gaurd (#878)
Signed-off-by: adi_holden <adi@dragonflydb.io>
2023-02-26 13:38:37 +02:00
ashotland
1f82f9af73
fix(regression-test): Sentinel test stabilization (#826)
* Ditch docker whcih is complex on CI in favour of local redis binary

Signed-off-by: ashotland <ari@dragonflydb.io>

* Fix typo

Signed-off-by: ashotland <ari@dragonflydb.io>

* Wait for sentinel termination

Signed-off-by: ashotland <ari@dragonflydb.io>

* fix(regression-tests): sentinel test increase timeout waiting for key to
exist in replica

* debug sentinel test

Signed-off-by: ashotland <ari@dragonflydb.io>

* add pytest repeat - tmp comment out failure notficicaiton

Signed-off-by: ashotland <ari@dragonflydb.io>

* fix typo

Signed-off-by: ashotland <ari@dragonflydb.io>

* repeat 100

Signed-off-by: ashotland <ari@dragonflydb.io>

* Increase timeout for debuging

Signed-off-by: ashotland <ari@dragonflydb.io>

* Debug prints

Signed-off-by: ashotland <ari@dragonflydb.io>

* fix

Signed-off-by: ashotland <ari@dragonflydb.io>

* increase overall timeout

Signed-off-by: ashotland <ari@dragonflydb.io>

* Debug

Signed-off-by: ashotland <ari@dragonflydb.io>

* cleanup

Signed-off-by: ashotland <ari@dragonflydb.io>

---------

Signed-off-by: ashotland <ari@dragonflydb.io>
2023-02-20 14:21:27 +02:00
Vladislav
4ef06e759a
Basic multi modes for MULTI/EXEC (#796)
feat(server): Basic multi transaction modes

This commit adds the notion of multi transaction modes that allow controlling the execution and
locking behaviour of multi transactions.
In general, there are four modes:
- GLOBAL: all commands run within a global transaction. There is no need for recording locks. Lua scripts can theoretically run with undeclared keys.
- LOCK_AHEAD: the transaction locks all keys ahead likewise to a regular transaction and schedules itself.
- LOCK_INCREMENTAL: the transaction determines what shards it has keys in and schedules itself on those shards, but locks only when accessing a new key. This allows other transactions to run ooo alonside with a big multi-transaction that accesses a contended key only at its very end.
- NON_ATOMIC: all commands run separately, no atomicity is provided, likewise to a pipeline

This commit only adds support for the first 3 modes to EXEC commands.

Signed-off-by: Vladislav Oleshko <vlad@dragonflydb.io>
2023-02-18 20:18:28 +03:00
ashotland
2f89cdc6af
chore(regressions-tests): Update regression-tests.yml (#805)
* Update regression-tests.yml

Run every 3 hours
Add -s to pytest

Signed-off-by: ashotland <ari@dragonflydb.io>

* Update regression-tests.yml

Signed-off-by: ashotland <ari@dragonflydb.io>

---------

Signed-off-by: ashotland <ari@dragonflydb.io>
2023-02-16 12:16:39 +02:00
adiholden
ae6687e563
fix(regression-tests): increase timeout of regression-tests (#806)
Signed-off-by: adi_holden <adi@dragonflydb.io>
2023-02-15 12:39:23 +02:00
adiholden
72bad6c5ab
fix(replica) : replica will not sync execution multi shard commands as default (#800)
-sfix(replica) : replica will not sync execution multi shard commands as default
2023-02-14 16:30:14 +02:00
adiholden
c5e8a627b5
test(regression-tests): stop replication regression-tests schedual run (#795)
* regression replication will not run on github schedual
* allow running regression replication manually

Signed-off-by: adi_holden <adi@dragonflydb.io>
2023-02-14 14:48:39 +02:00
Roman Gershman
83837532e9
chore(server): General improvements
1. Update helio dependency
2. Add SLOWLOG command stub that returns empty data.

Signed-off-by: Roman Gershman <roman@dragonflydb.io>
2023-02-10 22:37:19 +02:00