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

993 commits

Author SHA1 Message Date
Daniel Shimon
cb80b3fd1f
feat: implement ZINTERCARD (#1197)
* fix: ZINTERSTORE bug

When a shard only contains the dest key, it returned an empty map which causes the resulting intersection to be empty

* chore(vscode): Add gdb launch setting

* feat: Implement ZINTERCARD

Initial implementation without LIMIT

* feat: Implement limit for ZINTERCARD

* feat: Handle sets in ZINTER* commands
2023-05-13 22:45:49 +03:00
Vladislav
eec09a13c7
fix: fix test connection name (#1211)
Signed-off-by: Vladislav Oleshko <vlad@dragonflydb.io>
2023-05-13 15:25:36 +02:00
Roman Gershman
c999072b15
chore: Add vlog printings every time we switch global state (#1208)
Should help debugging #1204

Signed-off-by: Roman Gershman <roman@dragonflydb.io>
2023-05-13 13:57:54 +03:00
Vladislav
396cf5f77b
fix: fix duplicated dependency (#1209)
Signed-off-by: Vladislav Oleshko <vlad@dragonflydb.io>
2023-05-13 12:07:54 +02:00
Vladislav
b0537418bc
fix: use redis.asyncio instead of aioredis (#1206)
Signed-off-by: Vladislav Oleshko <vlad@dragonflydb.io>
2023-05-13 10:44:25 +03:00
Roman Gershman
4e96c56969
feat: Implement rdb snapshot write directly into s3. (#1205)
1. Load flow reorganized - most of the logic is now in InferLoadFile function.
   S3 read is not yet supported.
2. Write path is implemented. Specifically, you can use undocumented (by design) option to save like:
   `SAVE rdb s3://bucket/path/file`.
3. When using `--dir=s3://bucket/path/` it also saves into s3 on shutdown.

Signed-off-by: Roman Gershman <roman@dragonflydb.io>
2023-05-13 06:44:16 +03:00
Roman Gershman
39aed005b5
chore: update helio (#1199) 2023-05-10 15:45:41 +03:00
adiholden
577472eb22
feat(cluster): check command keys ownership (#1194)
* feat(cluster): check command keys ownership on cluster mode

Signed-off-by: adi_holden <adi@dragonflydb.io>
2023-05-10 12:06:52 +03:00
PawelKapl
36cd15a196
feat(admin): Implement admin_nopass flag (#1193)
Signed-off-by: darkonion <pawkapl89@gmail.com>
2023-05-09 16:37:14 +03:00
Vladislav
c3dc05a571
Basic search (#1187)
Basic search (ft.create & ft.search)
2023-05-09 10:09:41 +03:00
Roy Jacobson
91c25c6d61
chore: Update helio (#1195)
Signed-off-by: Roman Gershman <roman@dragonflydb.io>
2023-05-09 07:01:29 +03:00
Roy Jacobson
912843d698
chore: Add a basic clang-tidy config (#1192)
* chore: Add .clang-tidy file

* Fix some problems and non-problems
2023-05-07 22:46:52 +03:00
Andy Dunstall
79da3e6637
fix: fix parsing nested arrays (#1189)
Signed-off-by: Andrew Dunstall <andydunstall@hotmail.co.uk>
2023-05-07 13:34:36 +03:00
Vladislav
dc853fe4bd
Support fields in search mvp (#1184)
Field support for search mvp
2023-05-07 01:02:08 +03:00
Chaka
5df0d92c44
Enable unlock for all tests. (#1185) 2023-05-06 20:38:12 +03:00
Vladislav
db5d6a0ba7
chore: pull helio (#1182)
Signed-off-by: Vladislav Oleshko <vlad@dragonflydb.io>
2023-05-05 17:38:57 +03:00
Vladislav
957fe83ee3
feat: simple AST for search (#1175)
Simple AST base for redis search parser
2023-05-04 19:39:12 +03:00
Chaka
a2f68d1b3b
feat(server): Implement PFMERGE (#1180)
* feat(server): Implement PFMERGE.

* Disable lock check on failing tests.
2023-05-04 15:12:48 +03:00
Vladislav
cb82680aca
Remove blpop FindFirst hop after wakeup (#1168)
Remove BLPOP hop after wake
2023-05-03 19:45:06 +03:00
talbii
e91cb6b153
PERSIST returns 0 when key has no expiry (#1178)
Return 0 when key has no expiry

Signed-off-by: talbii <ido@dragonflydb.io>
2023-05-03 15:12:16 +03:00
talbii
8438bab05e
XREVRANGE should expect arguments in reverse order (#1177)
`XREVRAGE` expects arguments in reverse order
2023-05-03 10:08:54 +03:00
Roman Gershman
842c1e43ff
chore: improve xadd performance and remove redundant allocations (#1160)
1. Incorporate StreamAppendItem into c++ codebase and stop using t_stream implementation.
2. Change its signature to accept CmdArgList instead of array of robj*.

Signed-off-by: Roman Gershman <roman@dragonflydb.io>
2023-05-03 09:32:38 +03:00
Abhradeep Chakraborty
fa61b63f0a
feat(xgroup): support MKSTREAM for xgroup create (#1176)
Redis supports a MKSTREAM option to dynamically create
a stream for "xgroup create" command if the stream for
the given key doesn't exist. Dragonfly, though instructs
users to use MKSTREAM if a key doesn't exist, doesn't
have the option.

Support MKSTREAM option for "xgroup create" command to
dynamically create a stream for given key, if not already
created.

Signed-off-by: Abhradeep Chakraborty <chakrabortyabhradeep79@gmail.com>
2023-05-03 09:30:46 +03:00
adiholden
b4803842bc
feat(redis): Add crc16 redis function (#1173)
* feat(redis): Add crc16 redis function

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

* fix PR

---------

Signed-off-by: adi_holden <adi@dragonflydb.io>
2023-05-02 22:25:06 +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
Vladislav
e9576d2ce2
fix: remove preliminary socket close in replica (#1172)
Signed-off-by: Vladislav Oleshko <vlad@dragonflydb.io>
2023-05-02 10:16:47 +03:00
Roy Jacobson
f62bf1d3a7
chore: Update helio (#1171) 2023-05-02 10:09:11 +03:00
Vladislav
0bfca475cd
fix: fix passing scripts (#1170)
Signed-off-by: Vladislav Oleshko <vlad@dragonflydb.io>
2023-05-01 21:14:44 +02:00
Vladislav
c2af5b0de1
fix: fix script body access (#1169)
Signed-off-by: Vladislav Oleshko <vlad@dragonflydb.io>
2023-05-01 20:05:18 +03:00
Vladislav
89072228e5
Detect possible async calls in scripts (#1122)
Automatically detect possible async calls for lua scripts based on regex
2023-05-01 15:03:51 +03:00
Vladislav
3fd4e277d3
fix: fix replica closing socket (#1167)
Fix closing replica socket
2023-05-01 12:38:20 +03:00
Roy Jacobson
300ccf3218
fix(server): Wrong replication state (#1150)
* fix(server): Read replication state better

* Add basic test for ROLE command and replication
2023-04-30 14:02:47 +03:00
Roy Jacobson
46093e33ff
chore: Fix errors/warnings in GCC13 (#1155)
* chore: Fix errors/warnings in GCC13

* OpResult: Add non const overloads to */-> so we can std::move from the result

* Run clang-format on file
2023-04-30 10:32:30 +03:00
Roy Jacobson
0cd2efebf1
fix(server): Fix typo in CompactObj::operator== (#1165) 2023-04-30 10:32:04 +03:00
Roman Gershman
418f529b0e
fix: 'xgroup help' should show help message (#1159)
Along the way, performs small cleanups in command handling code.
XGROUP HELP is special because it falls out of Dragonfly command taxonomy design,
where a command name determines where its key is located. All other XGROUP subcommands
expect to see XGROUP <subcmd> <key> and this one obviously does not need any key.
I fix it by working around the issue and introduce a dedicated dummy command for this combination.

Fixes #854.

Signed-off-by: Roman Gershman <roman@dragonflydb.io>
2023-04-30 09:53:01 +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
Chaka
fa39c1890d
feat(server): Add support for PFADD and PFCOUNT (#1152)
* feat(server): Add support for PFADD and PFCOUNT

This version does not create sparse-encoded HLLs, however it is fully compatible with such ones created by Redis as it converts them to the dense encoding.

Note that PFMERGE is not yet implemented.

* Set small string optimization to be 2^13 instead of 2^15.

This will allow dense-encoded HLL to *not* fit within the small string,
which will make it contiguous in memory, thus GetSlice() will not
allocate.

---------

Signed-off-by: chakaz <chakaz@chakaz>
Co-authored-by: chakaz <chakaz@chakaz>
2023-04-30 00:50:11 +03:00
Roman Gershman
b09a36d553
feat: ignore MULTI/EXEC if the transaction consists of EVAL commands (#1157)
feat: ignore MULTI/EXEC if the transaction consists of EVAL commands.

Together with `default_lua_config` solves #781.

Signed-off-by: Roman Gershman <roman@dragonflydb.io>
2023-04-29 13:55:32 +02:00
Rueian
688f8f51a3
feat(server): allow AUTH and SETNAME options in the HELLO command (#1156)
Signed-off-by: Rueian <rueiancsie@gmail.com>
2023-04-28 17:19:40 +02:00
Roman Gershman
494ca14e4e
feat: Extend parsing to field impressions (#1154)
feat: Extend parsing to field impressions.

Add search_parser_test to PR tests.

Signed-off-by: Roman Gershman <roman@dragonflydb.io>
2023-04-28 14:34:03 +03:00
Nick Gottlieb
0651339f79
Update README.md (#1145)
Signed-off-by: Nick Gottlieb <ngottlieb1@gmail.com>
2023-04-28 14:33:47 +03:00
Vladislav
432ece3ace
Dispatch queue backpressure and batching (#1118)
Adds backpressure to pubsub

Signed-off-by: Vladislav Oleshko <vlad@dragonflydb.io>
2023-04-28 14:02:55 +03:00
Roy Jacobson
574ae24fec
fix(server): Tweaks for replication info (#1147)
* fix(server): Return strings with underscores instead of spaces for replication states

* Add 'state' field to master info replication command
2023-04-27 15:31:31 +03:00
talbii
0b203629e2
don't listen for TCP connections when --port 0 is passed (#1113)
Disable TCP listening when `--port 0` is passed.

Instead, only unix-socket listening and Admin listening (via TCP) is
enabled.

Fixes #979 and #983.

Signed-off-by: talbii <ido@dragonflydb.io>
2023-04-27 12:41:14 +03:00
romange
e23755d51e chore(helm-chart): update to v1.2.1 2023-04-26 17:41:27 +00:00
Roman Gershman
bf6ee50920
feat: Add unicode support and replace flex with reflex. (#1143)
Also, add basic test with Parser.

Signed-off-by: Roman Gershman <roman@dragonflydb.io>
2023-04-26 17:12:00 +02:00
Roman Gershman
0b13eaa943
fix: remove redundant ToLower call from the HSET function (#1141)
fix: remove redundant ToLower call from HSET function

The call was left during big refactoring when we removed command name from the
arguments slice passed to commands.

Fixes #1140

Signed-off-by: Roman Gershman <roman@dragonflydb.io>
2023-04-26 10:43:30 +03:00
Roman Gershman
ce5db032fc
chore: support more token types in the lexer (#1134)
1. Support integers
2. Support string literals
3. Add more test coverage.

Signed-off-by: Roman Gershman <roman@dragonflydb.io>
2023-04-25 15:57:24 +03:00
Roy Jacobson
8749d736dd
chore: Update comments and logs after debugging (#1129) 2023-04-25 08:37:23 +03:00
ashotland
6a26d41e90
test(sentinel_test.py): increase timeout in failover test (#1133)
* test(sentinel_test.py): increase timeout from 10 to 15 seconds in test_failover function

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

---------

Signed-off-by: ashotland <ari@dragonflydb.io>
2023-04-24 21:55:11 +03:00