1
0
Fork 0
mirror of https://github.com/dragonflydb/dragonfly.git synced 2024-12-14 11:58:02 +00:00
Commit graph

796 commits

Author SHA1 Message Date
Tarun Pothulapati
1fc7ef5eaa
chore(helm): update golden files to latest version (#915)
As Version is encoded into the rendered Helm manifests,
They need to be updated with each release so that these
files are in sync with the latest release version.
2023-03-06 19:53:12 +05:30
romange
6e743d43ba chore(helm-chart): update to v0.17.0 2023-03-06 11:48:53 +00:00
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
talbii
0196589786
fix: logging in sentinel_test (#869)
Signed-off-by: talbii <ido@dragonflydb.io>
2023-03-05 16:15:13 +02: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
Vladislav
a3b5f0b54a
fix(server): Add deprecated/removed lua table functions (#901)
* fix(server): Add deprecated/removed lua table functions

Signed-off-by: Vladislav Oleshko <vlad@dragonflydb.io>

* fix(server): Add table.foreachi type check

Signed-off-by: Vladislav Oleshko <vlad@dragonflydb.io>

---------

Signed-off-by: Vladislav Oleshko <vlad@dragonflydb.io>
2023-03-03 18:32:45 +02:00
Roman Gershman
8cf8115116
chore(server): pass coordinator thread to a transaction object (#905)
This should help with some of the optimizations we may do in the future.

Signed-off-by: Roman Gershman <roman@dragonflydb.io>
2023-03-03 14:40:29 +02:00
Tarun Pothulapati
c9e9311c8e
chore(deps): Update outdated golang test dependencies (#904)
This PR updates the golang dependencies in the render test
to remove the security alerts. The security alerts should
not be a worry as its just unit test code.
2023-03-03 13:17:18 +05:30
iko1
04f4362c72
fix(server): fix JSON.MGET implementation (#849) (#876)
fix(server): fix json.mget implementation (#849)

Signed-off-by: iko1 <me@remotecpp.dev>
2023-03-03 00:16:35 +02:00
Chaka
bcc3d3ec4f
fix(server):Return an error, instead of crashing, for requests trying to rename a key to the same key. (#897)
fix:Return an error, instead of crashing, for requests trying to rename a key to the same key.

Fixes #850

---------

Co-authored-by: Shahar Mike <shmike@google.com>
2023-03-02 21:46:27 +02: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
adiholden
7ae316a85d
bug(list_family): fix BPopPusher command replication (#899)
* bug(list_family): fix BPopPusher command replication

Signed-off-by: adi_holden <adi@dragonflydb.io>
2023-03-02 15:48:08 +02:00
adiholden
d6b588d1bf
bug(replica): call add entry outside DCHECK (#896)
Signed-off-by: adi_holden <adi@dragonflydb.io>
2023-03-02 11:01:49 +02:00
adiholden
15ee7224a1
bug(snapshot) : enforce order when pushing to channel when needed issue #879 (#886)
* bug(rdb_save): snapshotting records pushed to channel can be OOO 
fixes #879

Signed-off-by: adi_holden <adi@dragonflydb.io>
2023-03-02 09:15:02 +02:00
ashotland
ccc784d9c4
Add basic replicaiton from redis test (#895)
Signed-off-by: ashotland <ari@dragonflydb.io>
2023-03-01 21:50:51 +02:00
Roman Gershman
ac280529cb
fix: resize buffer correctly when checking for http header line (#894)
* fix: resize buffer correctly when checking for http header line

Fixes #779

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

* fix(tests): Add big command test

Signed-off-by: Vladislav Oleshko <vlad@dragonflydb.io>

---------

Signed-off-by: Roman Gershman <roman@dragonflydb.io>
Signed-off-by: Vladislav Oleshko <vlad@dragonflydb.io>
Co-authored-by: Vladislav Oleshko <vlad@dragonflydb.io>
2023-03-01 21:46:45 +02:00
Vladislav
edbd43a3b3
Support script configuration (#889)
Store script parameters for each script that allow configuring it's transactions multi mode. They can be configured either for a specific scripts with `SCRIPT CONIFG <sha> [params...]` or changed globally as defaults with `default_lua_config`.
The current supported options are `allow-undeclared-keys` and `disable-atomicity`.  Based on those flags, we determine the correct multi mode. `disable-atomicity` allow running in non-atomic mode, whereas being atomic and enabling `allow-undeclared-keys` requires the global mode.
2023-03-01 19:17:41 +03:00
adiholden
eb5fd2867f
feat(zset_family): support zscan match and count optional params issue (#891)
* feat(zset_family): support zscan match and count optional params

---------

Signed-off-by: adi_holden <adi@dragonflydb.io>
2023-03-01 16:59:49 +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
2d3496dd40
test(helm): Add command to update golden files (#890)
While we have docs in `Contributing.md`, It seems better to
have that command emitted in the error message. It is much
more straightforward this way.
2023-03-01 12:19:32 +05:30
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
Tarun Pothulapati
60d22eba47
fix(charts): Use Release.Namespace everywhere (#884)
This updates all the namespace fields in the Helm chart to use the
`Release.Namespace` template variable. This is the recommended way to
do it in Helm 3, and allows the chart to be installed in a namespace
as set by the user, without having to modify the chart or use
`--namespace` in `kubectl`.
2023-02-28 18:36:20 +05:30
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
Vladislav
fab0d9e4a6
fix(server): Fix replication logs (#883)
* fix(server): Fix replication logs

Signed-off-by: Vladislav Oleshko <vlad@dragonflydb.io>
---------

Signed-off-by: Vladislav Oleshko <vlad@dragonflydb.io>
2023-02-28 07:44:21 +02:00
adiholden
74617c2799
feat(Docker) : add redis tools to docker (#877)
Signed-off-by: adi_holden <adi@dragonflydb.io>
2023-02-27 20:31:53 +02:00
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
adiholden
4b44fb6baf
bug(snapshot) : Do not preempt inside OnDbChange issue #829 (#868)
* bug(snapshot) : Do not preempt inside OnDbChange

Signed-off-by: adi_holden <adi@dragonflydb.io>
2023-02-26 11:52:13 +02:00
Vladislav
90233bfdc8
feat(tests): Script pytests (#872)
Introduce pytests for eval
2023-02-25 13:06:05 +03:00
iko1
08b068b75f
fix(server): fix JSON.ARRTRIM implementation (#844) (#864)
fix(server): fix json.arrtrim implementation (#844)

Signed-off-by: iko1 <me@remotecpp.dev>
2023-02-24 21:56:21 +02:00
Vladislav
be4ef01975
fix(server): Reorder ExecuteAsync callback seqlock check (#873)
fix(server): Reoder cb check

Signed-off-by: Vladislav Oleshko <vlad@dragonflydb.io>
2023-02-24 21:55:56 +02:00
adiholden
e54f44a0f5
fix(helio): get helio fix in uring_socket (#827)
* fix(helio): get helio fix in uring_socket

---------

Signed-off-by: adi_holden <adi@dragonflydb.io>
2023-02-24 21:55:38 +02:00
Vladislav
9ee2834725
fix(server): Fix lua reply builder (#871)
Fix bug in lua reply builder
2023-02-23 10:56:19 +03:00
iko1
b5a8eef3e5
fix(server): JSON.RESP path arg should be optional (#852) (#865)
Signed-off-by: iko1 <me@remotecpp.dev>
2023-02-23 09:38:25 +02:00
Tarun Pothulapati
e8ca27971c
docs(dashtable): Fix image URL for expiration (#870)
docs(dashtable): Fix image URL for expiration

Replaces the `expiration.svg` image with a working URL.

Signed-off-by: Tarun Pothulapati <tarunpothulapati@outlook.com>
2023-02-23 09:35:14 +02:00
Roman Gershman
d165994b88
feat(server): Add HSETEX command (#817)
The format as follows: `HSETEX key seconds field value [field value ...]`
This allows adding hset members with expiration time in seconds.

Fixes #687

Signed-off-by: Roman Gershman <roman@dragonflydb.io>
2023-02-22 14:01:56 +02:00
Vladislav
7e08a42314
Update transaction.md (#808)
Update transaction docs to include new multi modes
2023-02-22 10:43:11 +03:00
Roman Gershman
e52b0f42c3
feat(server): add lru data structure (#831)
Part of the heavy keeper algo, required for #257.
Also see #446 for the initial (abandoned) PR.

Signed-off-by: Roman Gershman <roman@dragonflydb.io>
2023-02-21 14:56:18 +02:00
ashotland
7ba8fb0950
fix(docs):attos -> dragonflydb (#830)
* Update CLA.txt

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

* Update LICENSE.md

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

---------

Signed-off-by: ashotland <ari@dragonflydb.io>
2023-02-20 17:52:08 +02:00
Vladislav
afa750303e
feat(tests): Add rotating master test (#828) 2023-02-20 18:18:10 +03:00
Roman Gershman
8f1a2a49b5
docs: Add how to build dragonfly on Fedora (#822)
Signed-off-by: Roman Gershman <roman@dragonflydb.io>
2023-02-20 17:16:52 +02:00
adiholden
d738d8d976
bug(snapshot): Fix unwriten entries in multiple snapshotting
* bug(snapshot): Multiple snapshots at the same time skips serializing some entries
---------

Signed-off-by: adi_holden <adi@dragonflydb.io>
2023-02-20 14:46:43 +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
03e99a5d96
EVAL multi modes + non atomic modes (#818)
- Implement multi modes for eval
- Implement non atomic mode
- Enhance tests
2023-02-20 09:43:31 +03:00
Roman Gershman
dd952c3c52
feat(server): add debug information about running transactions (#820)
Specifically, provide a total length over all shards of pending txs.
Also, provide number of "free" transactions pending in the queue -
those that could progress immediately but do not because
they are not first in the queue.

Signed-off-by: Roman Gershman <roman@dragonflydb.io>
2023-02-19 21:20:14 +02:00
Ali-Akber Saifee
914dd23cdb
fix(zset): Make count optional for ZPOP{MIN,MAX} (#821)
fix(zset): Make count optional for zpop{min,max}

The commands should allow count to be optional and
default to 1 as per the official redis command documentation.

Additionally update command flags to write + fast

Signed-off-by: Ali-Akber Saifee <ali@indydevs.org>
2023-02-19 21:19:45 +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
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
ashotland
d6043c7d6d
feat(charts): Update helm chart to support password from secret (#799)
* feat(server): Enable overriding --requirepass form env var

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

* Change precednce order
Elaborate test

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

* Update helm chart to support passowrd from secret

Using recently added capability of setting dragonfly passowrd with the
DFLY_PASSWORD environment variable

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

* rename to existingSecret* + CI file

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

* fix typo in comment

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

---------

Signed-off-by: ashotland <ari@dragonflydb.io>
2023-02-17 16:19:02 +02:00
Vladislav
2b40a7f324
feat(server): Check locks in heartbeat, allow multiple tx in replica (#815) 2023-02-17 16:50:44 +03:00