1
0
Fork 0
mirror of https://github.com/dragonflydb/dragonfly.git synced 2024-12-15 17:51:06 +00:00
Commit graph

169 commits

Author SHA1 Message Date
Leonardo Mello
abe3b3cb91
feat: support cluster mode emulation (#492)
Signed-off-by: Leonardo Mello <lsvmello@gmail.com>
2023-03-01 08:43:40 +02:00
Vladislav
90233bfdc8
feat(tests): Script pytests (#872)
Introduce pytests for eval
2023-02-25 13:06:05 +03:00
Vladislav
afa750303e
feat(tests): Add rotating master test (#828) 2023-02-20 18:18:10 +03: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
ashotland
4b3dc87ba0
Fix(regression-tests): Sentinel test - wait for sentinel termination (#816)
* 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>

---------

Signed-off-by: ashotland <ari@dragonflydb.io>
2023-02-17 16:45:39 +02:00
Vladislav
83256bd4e1
fix(pytest): fix periodic test (#804)
Signed-off-by: Vladislav Oleshko <vlad@dragonflydb.io>
2023-02-15 11:12:41 +02:00
Vladislav
6dedb33f85
fix(pytest): SAVE to SAVE RDB (#803) 2023-02-15 11:15:38 +03:00
adiholden
50f50c8380
feat(server): write journal record with optional await based on flag… (#791)
* feat(server): write journal recorod with optional await based on flag issue #788

Signed-off-by: adi_holden <adi@dragonflydb.io>
2023-02-15 09:34:24 +02:00
ashotland
49b1ba5b6d
feat(server): Enable overriding --requirepass form env var (#792)
Signed-off-by: ashotland <ari@dragonflydb.io>
2023-02-14 13:19:33 +02:00
Vladislav
25db011afc
fix(server): Fix bugs (#797) 2023-02-14 13:42:20 +03:00
adiholden
ee2807c9bc
feat(replica): add debug command - replica offset (#786)
* feat(replica): add debug command - replica offset

Signed-off-by: adi_holden <adi@dragonflydb.io>
2023-02-13 13:00:46 +02:00
Boaz Sade
e7a5d583d0
fix(server): monitor lua at script execution (#767)
Signed-off-by: Boaz Sade <boaz@dragonflydb.io>
2023-02-12 18:22:40 +02:00
adiholden
41c1ebab18
bug(replica): execute expire within multi command only if its belong … (#766)
Signed-off-by: adi_holden <adi@dragonflydb.io>
2023-02-08 14:33:05 +02:00
adiholden
cc74594c2f
bug(replication): BLPOP fix write to shard journal of popped key (#761)
Signed-off-by: adi_holden <adi@dragonflydb.io>
2023-02-06 10:04:48 +02:00
adiholden
69bca570f0
bug(server): fix deadlock in BufferedStreamerBase notify all producers (#760)
Signed-off-by: adi_holden <adi@dragonflydb.io>
2023-02-06 10:04:22 +02:00
ashotland
aef8631ab2
fix(regression-tests): sentinel_test.py: Ditch docker whcih is complex on CI in favour of local redis binary (#755)
* 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>

---------

Signed-off-by: ashotland <ari@dragonflydb.io>
2023-02-05 11:58:09 +02:00
adiholden
d30ebc5b0d
feat(server): replication should not evict items (#743)
Signed-off-by: adi_holden <adi@dragonflydb.io>
2023-02-05 09:04:08 +02:00
Vladislav
3449ba8a7b
Exclude single threaded test now that expiry is tested (#750) 2023-02-03 23:08:29 +03:00
ashotland
622013a2d1
fix(regression-tests):Skip sentinel regression tests (#748)
Skip sentinel regression tests

Signed-off-by: ashotland <ari@dragonflydb.io>
2023-02-02 18:16:31 +03:00
adiholden
4b29dece0c
test(replication test): check data only after replica finished execution (#746)
Signed-off-by: adi_holden <adi@dragonflydb.io>
2023-02-02 15:08:44 +02:00
adiholden
69519b2c5b
feat(list family): support blocking command for replication (#740) 2023-02-02 08:58:06 +02:00
ashotland
1e548673fa
fix(sentinel_test):Remove return type which breaks regression tests (#736)
Remove return type which breaks regression tests

Signed-off-by: ashotland <ari@dragonflydb.io>
2023-01-31 18:12:00 +02:00
Vladislav
4c9b30ca43
feat(server): Auto expiry + small replica refactor (#718) 2023-01-31 12:55:52 +03:00
adiholden
5c7ca77a72
test(replication test): increase sleep time in full sync step (#733)
Signed-off-by: adi_holden <adi@dragonflydb.io>
2023-01-30 09:45:18 +02:00
ashotland
29d47cdd1a
chore(tests): Sentinel test PR code review followup (#731)
* feat(server): Allow admin commands in multi

Needed for sentinel support (#706)

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

* feat(server): Add test coverage for multi global commands

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

* code review fixes

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

* Sentinel integration test

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

* PR code reiew follow up
Have lambda return awaitable instead of defining neoff async function

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

---------

Signed-off-by: ashotland <ari@dragonflydb.io>
2023-01-30 09:27:22 +02:00
ashotland
b00e83e3cc
feat(test): Sentinel Integration Test (#728)
* feat(server): Allow admin commands in multi

Needed for sentinel support (#706)

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

* feat(server): Add test coverage for multi global commands

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

* code review fixes

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

* Sentinel integration test

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

---------

Signed-off-by: ashotland <ari@dragonflydb.io>
2023-01-29 08:42:09 +02:00
adiholden
d660787c6b
test(replica): test journal rewrite with multi shards (#720)
Signed-off-by: adi_holden <adi@dragonflydb.io>
2023-01-24 14:31:25 +02:00
Vladislav
45162b5c0a
feat(server): Journal rewrite p2 + tests (#699) 2023-01-19 13:55:50 +03:00
Vladislav
1eb227e318
feat(server): Rewrite journal commands (basic) (#651) 2023-01-16 14:52:46 +03:00
adiholden
cee7a9e67d
test(replication_test) : add replica flushall test (#669)
Signed-off-by: adi_holden <adi@dragonflydb.io>
2023-01-15 09:28:30 +02:00
Vladislav
4d97918c7b
fix(server): Fix replication on a single thread (#676)
Signed-off-by: Vladislav Oleshko <vlad@dragonflydb.io>
2023-01-15 08:02:30 +02:00
Vladislav
861d12cdf5
fix(tests): Small pytest fixes (#673) 2023-01-14 23:49:24 +03:00
Vladislav
dd218fa037
feat(server): Json rdb support (#674) 2023-01-14 14:53:43 +03:00
adiholden
50e14db6c7
bug(snapshot): on journal write entry with opcode COMMAND and MULTI_C… (#662)
Signed-off-by: adi_holden <adi@dragonflydb.io>
2023-01-12 13:38:05 +02:00
Vladislav
5ef8454aa7
Pytests overhaul (#569) 2023-01-09 23:31:15 +03:00
Vladislav
7788600c9b
feat(server): Buffered journal serializers (#619) 2022-12-30 16:18:37 +03:00
Vladislav
e6721d8160
feat(server): Improved cancellation (#599) 2022-12-27 16:01:54 +03:00
Boaz Sade
3d610ee2d7
feat(server): JSON family using JSON type (#561)
feat(server): json family using json type

Signed-off-by: Boaz Sade <boaz@dragonflydb.io>

Signed-off-by: Boaz Sade <boaz@dragonflydb.io>
2022-12-14 19:25:10 +02:00
Vladislav
f98d6f3357
feat(server): Implement robust error & cancellation on replica (#531) 2022-12-11 12:11:25 +03:00
Vladislav
2493434b23
fix(server): Fix replication bug, add gdb opt to pytest (#513)
fix(server): Fix small bugs, add gdb opt to pytest

Signed-off-by: Vladislav Oleshko <vlad@dragonflydb.io>
2022-11-28 16:28:14 +02:00
Vladislav
39a231dde8
fix(server): Increase common abstraction usage (#511)
fix(server): Small fixes everywhere

Signed-off-by: Vladislav Oleshko <vlad@dragonflydb.io>
2022-11-22 20:19:48 +02:00
Vladislav
893c741c14
feat(server): Replication errors & cancellation (#501) 2022-11-22 19:17:31 +03:00
Boaz Sade
235ff67e44
fix(server): all scan commands needs to return cursor as bulk string #503 (#504)
fix(server): scan cursor returning bulk string #503

Signed-off-by: Boaz Sade <boaz@dragonflydb.io>
2022-11-21 20:18:38 +02:00
Vladislav
96c9332297
feat(server): Switch to stable state replication (#473)
* feat(server): Switch to stable state replication

Signed-off-by: Vladislav Oleshko <vlad@dragonflydb.io>
2022-11-17 20:41:33 +02:00
Boaz Sade
6f45e80137
fix(test): skip pytest test_simple_full_sync_mutli_crash due to crash (#497)
Signed-off-by: Boaz Sade <boaz@dragonflydb.io>

Signed-off-by: Boaz Sade <boaz@dragonflydb.io>
2022-11-16 14:05:33 +02:00
adiholden
b395834060
feat(server family): add connection set name command fixes #458 (#485)
server family: add connection set name command fixes #458

Signed-off-by: adi_holden <adi@dragonflydb.io>
2022-11-13 17:54:37 +02:00
Boaz Sade
214c10f165
fix(server): reject eval inside transaction multi blocks #457 (#471)
fix(server): block running lua script inside pipeline #457

Signed-off-by: Boaz Sade <boaz@dragonflydb.io>
2022-11-09 19:18:28 +02:00
Boaz Sade
5e64ed1fe3
feat(server): simplify handling of the pub message handling (#465)
feat(server): sending message to subscriber using shared ptr to simplify code

Signed-off-by: Boaz Sade <boaz@dragonflydb.io>
2022-11-08 15:04:31 +02:00
Vladislav
8424f74bec
feat(server): Basic capped full sync (#440)
Signed-off-by: Vladislav Oleshko <vlad@dragonflydb.io>
2022-11-06 17:27:43 +03:00
Boaz Sade
2ed4d3489b
feat(tests): ioredis being able to successfully run tests, make it ready to be part of CI (#459)
Signed-off-by: Boaz Sade <boaz@dragonflydb.io>
2022-11-06 15:21:41 +02:00
Vladislav
072cb2e8d9
refactor(tests): Refactor pytest (#449)
Signed-off-by: Vladislav Oleshko <vlad@dragonflydb.io>
2022-10-31 16:39:20 +02:00
Boaz Sade
e0559afb51
feat(server): monitor command - cover by tests (#435)
feat(server): pytests for monitor, pipeline and pubsub, update readme

Signed-off-by: Boaz Sade <boaz@dragonflydb.io>
2022-10-26 14:12:49 +03:00
Vladislav
e4357e1f10
feat(server): Multi rdb load (#430)
* feat(server): Multi rdb load

Signed-off-by: Vladislav Oleshko <vlad@dragonflydb.io>
2022-10-24 21:22:43 +03:00
Guilherme Gervasio
ce964f103a
chore(tests): adds support for ioredis integration tests + instructio… (#394)
chore(tests): adds support for ioredis integration tests + instructions in docs

Signed-off-by: Guilherme <gilairmay@gmail.com>
2022-10-17 10:15:53 +03:00
Vladislav
add252c301
fix(server): Fix QUIT not shutting down connection (#280)
* fix(server): Fix QUIT not shutting down connection

Fixes #170
2022-09-13 05:25:46 +03:00
Braydn
b7f85e59a6
feat(server): Implemented periodic snapshotting (#161) (#250)
* feat(server): Implemented periodic snapshotting (#161)

* feat(test): Added the ability to specify dragonfly cli parameters on a test basis (#199)

Signed-off-by: Braydn <braydn.moore@uwaterloo.ca>

* feat(server): Implemented periodic snapshotting (#161)

Code cleanup & CONTRIBUTORS.md modifcation

Signed-off-by: Braydn <braydn.moore@uwaterloo.ca>

* feat(server): Implemented periodic snapshotting (#161)

Parsing and race condition fixes. Improved pytests

Signed-off-by: Braydn <braydn.moore@uwaterloo.ca>

* feat(test): Cleaned up pytest code & added documentation (#199)

- Moved tests into their own file
- Renamed test namespace to avoid naming conflicts with pytest
- Updated requirements.txt to make test environment reproducible
- Added documentation to write tests

feat(server): Updated helio submodule

Signed-off-by: Braydn <braydn.moore@uwaterloo.ca>

Signed-off-by: Braydn <braydn.moore@uwaterloo.ca>
Co-authored-by: Braydn <braydnmoore3@gmail.com>
2022-08-26 13:54:38 +03:00
Roman Gershman
9f935a33c0 fix(doc): add more examples on how to run node-redis test image 2022-08-15 08:37:28 +03:00
odedponcz
cf729f3fcb
feat(test): Add integration test for the jedis and node-redis clients (#233)
* docs: Improve wording in issue reporting

Signed-off-by: odedponcz <oded@poncz.com>

* docs: Change contribution doc flow

Signed-off-by: odedponcz <oded@poncz.com>

* feat(tests): Add integration test with node-redis

Signed-off-by: odedponcz <oded@poncz.com>

* Rename integration test docker files

Signed-off-by: odedponcz <oded@poncz.com>
2022-08-12 22:42:54 +03:00
Roman Gershman
f7e58f4de2 fix(pytest): Minor fixes 2022-07-26 17:31:39 +03:00
Shmulik Klein
d2b7987ac3
test: flush all records between pytest tests #199 (#205)
test: flush all records between pytest tests
2022-07-13 12:45:29 +03:00
Shmulik Klein
1f2895e991
[WIP] test: add dragonfly_db fixture to python tests #199 (#204)
* test: add dragonfly_db fixture to it tests #199

Signed-off-by: Shmulik Klein <shmulik.klein@gmail.com>

* test: lint using flake8

Signed-off-by: Shmulik Klein <shmulik.klein@gmail.com>

* test: run dragonfly debug version as fallback

Signed-off-by: Shmulik Klein <shmulik.klein@gmail.com>
2022-07-12 17:43:46 +03:00
Roman Gershman
4ec2538204
fix(transaction): Fix rare deadlock case - fixes #150. (#155)
In rare cases a scheduled transaction is not scheduled correctly and we need
to remove it from the tx-queue in order to re-schedule. When we pull it from tx-queue
and it has been located at the head, we must poll-execute the next txs in the queue.

1. Fix the bug.
2. Improve verbosity loggings to make it easier to follow up on tx flow in release mode.
3. Introduce /txz handler that shows currently pending transactions in the queue.
4. Fix a typo in xdel() function.
5. Add a py-script that reproduces the bug.

Signed-off-by: Roman Gershman <roman@dragonflydb.io>
2022-06-15 16:53:27 +03:00
Roman Gershman
114e8bec5d Fixes #41.
1. Found dangling transaction pointers that where left in the watch queue. Fix the state machine there.
2. Improved transaction code a bit, merged duplicated code into RunInShard function, got rid of RunNoop.
3. Improved BPopper::Run flow.
4. Added 'DEBUG WATCH' command. Also 'DEBUG OBJECT' now returns shard id and the lock status of the object.
2022-05-27 12:20:01 +03:00
Roman Gershman
3a38576bbb Introduce regression tests 2022-05-27 00:26:51 +03:00
Roman Gershman
2b553535b2 Upon full segment try unloading stash buckets back to regular ones 2022-05-12 13:43:03 +03:00
Roman Gershman
0c5e2a5ecd Implement CLIENT LIST and CLIENT SETNAME. 2022-05-10 06:35:37 +03:00
Roman Gershman
d3764efbca Add CONFIG RESETSTAT command. Start working on RPOPLPUSH 2022-04-27 23:50:03 +03:00
Roman Gershman
c94d109cff Use FlatSet for Redis SETS
Add FlatSet data structure.
Use FlatSet and get rid of t_set functions.
Fix Hash bug. Add memory comparison test
2022-03-05 20:20:30 +02:00
Roman Gershman
2213c1b38b Add HKEYS command. Account for listpack blobs 2022-03-04 14:06:48 +02:00