Commit graph

992 commits

Author SHA1 Message Date
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
ashotland
20a309ebd0
chore(ci):Reduce --gtest_repeat to 10 (#730)
Reduce --gtest_repeat to 10

Signed-off-by: ashotland <ari@dragonflydb.io>
2023-01-28 20:38:26 +02:00
Roman Gershman
5144e6e034
Stop ping dev version (#727)
fix(server): stop checking version for dev version
2023-01-25 11:21:09 +02:00
Roman Gershman
90eb1d81b7
fix(lua): Fix a deadlock happenning when calling a lua script (#726)
The scenario is described in a unit test that reproduces the issue with high chance.
Also added dragonfly_test in repeat=100 mode to CI.

Signed-off-by: Roman Gershman <roman@dragonflydb.io>
2023-01-25 10:16:52 +02:00
ashotland
59bfecad69
feat(server): Allow admin commands in multi (#722)
Needed for sentinel support (#706)

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

Signed-off-by: ashotland <ari@dragonflydb.io>
2023-01-24 15:55:47 +02:00
Roman Gershman
cdafaa78c0
fix: a small warning fix. (#724)
on my machine it gave me:
inlined from ‘void dfly::SetCmd::RecordJournal(const dfly::SetCmd::SetParams&, std::string_view, std::string_view)’ at /home/roman/projects/dragonfly/src/server/string_family.cc:494:14:
/home/roman/projects/dragonfly/build-opt/_deps/abseil_cpp-src/absl/container/inlined_vector.h:627:29: warning: ‘cmds’ may be used uninitialized [-Wmaybe-uninitialized]

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

Signed-off-by: Roman Gershman <roman@dragonflydb.io>
2023-01-24 15:51:31 +02:00
Daria Sukhonina
b1b25d0557
feat(string family): implement cl.throttle (#714)
* feat(string family): implement cl.throttle
2023-01-24 14:45:03 +02:00
Boaz Sade
3360ff1704
feat(action): build debian package for arm64 arch (#719)
Signed-off-by: Boaz Sade <boaz@dragonflydb.io>
2023-01-24 14:43:47 +02:00
Vladislav
2df1c6636c
fix(server): Fix multi tx cleanup (#723) 2023-01-24 15:33:43 +03: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
fannyfan414
b0741b40ad
docs(readme): Add ulimit to docker-compose example (#721)
Add ulimit to docker-compose example

Signed-off-by: fannyfan414 <32100589+fannyfan414@users.noreply.github.com>
2023-01-23 16:05:57 +02:00
Roman Gershman
ac44a1f7e9
fix(server): zunion now supports variadic arguments (#717)
1. Before that we did no support a real syntax with <numkey> argument,
now we do.

2. Fix warnings.

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

Signed-off-by: Roman Gershman <roman@dragonflydb.io>
2023-01-23 14:06:17 +02:00
Vladislav
7662e03d1f
fix(server): Fix Lua & Zset issue (#716)
* fix(server): Fix Lua & Zset issue

Signed-off-by: Vladislav Oleshko <vlad@dragonflydb.io>
2023-01-22 17:56:19 +02:00
ashotland
bdfdc7d255
feat(server): report slaves ip and listening port in INFO REPLICATION (#715)
See #706 for more context

Signed-off-by: ashotland <ashotland@gmail.com>

Signed-off-by: ashotland <ashotland@gmail.com>
2023-01-22 11:58:58 +02:00
romange
da40540a3f chore(helm-chart): update to v0.14.0 2023-01-20 05:39:13 +00:00
Boaz Sade
49e53d550e
feat(server): admin port and interface (#709)
* feat(server): admin port and interface

Signed-off-by: Boaz Sade <boaz@dragonflydb.io>
2023-01-19 19:59:07 +02:00
Boaz Sade
5af6ee9b27
fix(server): fix getex command with persist can get time overflow (#707)
Signed-off-by: Boaz Sade <boaz@dragonflydb.io>

Signed-off-by: Boaz Sade <boaz@dragonflydb.io>
2023-01-19 18:41:32 +02:00
adiholden
086edd9707
feat(list family): impl rename journal commands (#704)
Signed-off-by: adi_holden <adi@dragonflydb.io>
2023-01-19 14:34:25 +02:00
adiholden
160aeaa2d8
(generic family): journal support move command (#708)
Signed-off-by: adi_holden <adi@dragonflydb.io>
2023-01-19 13:19:27 +02:00
Vladislav
45162b5c0a
feat(server): Journal rewrite p2 + tests (#699) 2023-01-19 13:55:50 +03:00
Boaz Sade
ae017dbfdb
feat(build): debian package building fix dependency bug (#702)
Signed-off-by: Boaz Sade <boaz@dragonflydb.io>
2023-01-18 17:53:06 +02:00
adiholden
dc4306890c
feat(transaction): simplify calc multi trans unique shard count (#672)
Signed-off-by: adi_holden <adi@dragonflydb.io>
2023-01-18 14:37:29 +02:00
Boaz Sade
a130b71cd9
feat(actions): add support for Debian packaging - add missing dependency (#701)
feat(actions): add support for debian packaging - add missing dependency

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

Signed-off-by: Boaz Sade <boaz@dragonflydb.io>
2023-01-18 13:28:13 +02:00
adiholden
f175127837
(generic family): journal support rename command (#698)
Signed-off-by: adi_holden <adi@dragonflydb.io>
2023-01-18 12:14:18 +02:00
Boaz Sade
be74fa0a5b
feat(actions): add support for debian packaging (#696)
Signed-off-by: Boaz Sade <boaz@dragonflydb.io>

Signed-off-by: Boaz Sade <boaz@dragonflydb.io>
2023-01-18 09:29:28 +02:00
Vladislav
9536c0a645
Refactor transaction (#697)
* refactor(server): Transaction naming

Signed-off-by: Vladislav <vlad@dragonflydb.io>
2023-01-17 14:53:12 +02:00
adiholden
b2edf9c848
feat(zset family): implement a variant of ZUNION command issue #356 (#686)
Signed-off-by: ATM SALEH <saleh.cse08@gmail.com>
Signed-off-by: adi_holden <adi@dragonflydb.io>
Co-authored-by: ATM SALEH <saleh.cse08@gmail.com>
2023-01-17 12:20:22 +02:00
adiholden
1f5811fb78
feat(set family): rewrite set store commands to journal (#691) 2023-01-17 00:27:11 +03:00
Vladislav
daf5473ce1
fix(server): Fix connection bug (#695) 2023-01-16 19:53:48 +03:00
Boaz Sade
57e3ec9a81
feat(build): debian package building (#689)
Signed-off-by: Boaz Sade <boaz@dragonflydb.io>
2023-01-16 17:44:53 +02:00
ashotland
01b9cbe64d
fix(server): Convert Heartbeat from a periodic task to a fiber (#690)
* feat(server): Add metrics

Signed-off-by: ashotland <ashotland@gmail.com>

Fixes #637

* fix(server): Convert Heartbeat from a periodic task to a fiber

Fixes #685

Signed-off-by: ashotland <ashotland@gmail.com>

Signed-off-by: ashotland <ashotland@gmail.com>
2023-01-16 15:26:14 +02:00
Vladislav
1eb227e318
feat(server): Rewrite journal commands (basic) (#651) 2023-01-16 14:52:46 +03:00
Roman Gershman
96100382b9
fix(server): fix the bug where DF went over maxmemory limit (#683)
fix(server): fix the bug where we went over maxmemory limit significantly

Reproducible scenario: `zipfantest -c 20000000 -d 2000 -a 0.95 -p 10 -upper_bound 2000000` when
dragonfly runs with: `--maxmemory=1G --cache_mode --proactor_threads=2`

1. Inside CanGrow() check we did not account for the additional segment when doing the test against
   the memory budget.
2. Our soft budget limit was too low, preventing more detailed checks to stop the allocation.

Signed-off-by: Roman Gershman <roman@dragonflydb.io>
2023-01-16 12:00:14 +02:00
Roman Gershman
86a4e94ec7
chore(facade): speed up request allocation in pipeline mode (#682)
chore(facade): speed up request allocation in pipeline mode.

Use an array to cache already allocated requests and reuse them.
Reduces cpu usage for requests that require more than 256 bytes.

Signed-off-by: Roman Gershman <roman@dragonflydb.io>
2023-01-16 11:59:50 +02:00
Roman Gershman
5e5d211b03
fix(test): reduce flakiness of tiered_storage_test (#684)
Signed-off-by: Roman Gershman <roman@dragonflydb.io>
2023-01-16 09:42:56 +02:00
Vladislav
a0d3b216c7
fix(core): Fix compact object bug (#680) 2023-01-15 22:50:34 +03:00
Vladislav
7eff61c9ab
feat(server): Buffered streamer + use on stable state (#639) 2023-01-15 12:17:04 +03:00
Vladislav
7b7e3ea9d4
test(rdb): Add json dump & restore test (#678) 2023-01-15 12:00:47 +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
Roman Gershman
77550e1774
feat(server): disable EvictObjects that is too agressive
EvictObjects is trigerred when Dragonfly uses more memory than it is supposed to.
However, it decreases the quality of the original eviction policy, and since
Dragonfly does not use much memory than required, I decided to disable it.

A regular eviction policy (DashCache) was not changed.

Signed-off-by: Roman Gershman <roman@dragonflydb.io>
2023-01-14 21:10:02 +02:00
Roman Gershman
613e3b8741
fix(server): Fix a bug with brpoplpush (#677)
fix(server): Fix a bug when an expired transaction stays in watched queue.

Now we remove the transaction from the watched queues in a consistent manner based on the
keys it was assigned to watch.

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

Signed-off-by: Roman Gershman <roman@dragonflydb.io>
2023-01-14 20:18:28 +02:00
Vladislav
dd218fa037
feat(server): Json rdb support (#674) 2023-01-14 14:53:43 +03:00
Vladislav
9de347b66c
fix(server): Fix shutdown order (#675) 2023-01-14 10:01:35 +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
Roman Gershman
16a3e557ae feat(server): Support brpoplpush for two shard case.
Signed-off-by: Roman Gershman <roman@dragonflydb.io>
2023-01-12 12:00:10 +02:00
Roman Gershman
9ca636e49d feat(server): Implement brpoplpush for single shard case.
A simple case where both src and dest keys are located in the same shard.

Signed-off-by: Roman Gershman <roman@dragonflydb.io>
2023-01-12 12:00:10 +02:00
Roman Gershman
fe2a491824 chore(server): list_family refactoring.
Move Op functions into cc file. Register BRPopLPush.

Signed-off-by: Roman Gershman <roman@dragonflydb.io>
2023-01-12 12:00:10 +02:00
adiholden
ec1b118b80
feat(server family): impl ROLE command (#660)
Signed-off-by: adi_holden <adi@dragonflydb.io>
2023-01-12 11:05:44 +02:00