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

1679 commits

Author SHA1 Message Date
Roman Gershman
1dac9362c6
chore: introduce upstream management commands.
Naively proxy set command.

Signed-off-by: Roman Gershman <roman@dragonflydb.io>
2023-12-07 09:01:08 +02:00
Yue Li
f89b65ca87
feat(Server):support Verbatim strings resp type, using it for CLIENT LIST and INFO commands (#2264)
fixes #2242 #2253

Reference:
The definition of Redis verbatim strings: https://redis.io/docs/reference/protocol-spec/#verbatim-strings

"For example, the Redis command INFO outputs a report that includes newlines. When using RESP3, redis-cli displays it correctly because it is sent as a Verbatim String reply (with its three bytes being "txt"). When using RESP2, however, the redis-cli is hard-coded to look for the INFO command to ensure its correct display to the user."

---------

Signed-off-by: Yue Li <61070669+theyueli@users.noreply.github.com>
2023-12-06 21:07:25 -08:00
Yue Li
bf0f7ec234
bug(hset): make hrandfield reply match Redis (#2266)
fixes #2249
2023-12-06 11:20:02 -08:00
Roman Gershman
1037f446a2
chore: add a test demonstrating on how to pass a dash within json path (#2267) 2023-12-06 19:24:15 +02:00
Yue Li
2e914efb52
bug(server): remove CO::READONLY for QUIT command. (#2263)
remove readonly for QUIT command.
2023-12-06 18:23:35 +02:00
Vladislav
5f58b3aafa
fix(connection): Add WeakRef to replace pubsub wait token (#2227)
Add WeakRef to connection to allow tracking it

Signed-off-by: Vladislav Oleshko <vlad@dragonflydb.io>
2023-12-06 12:07:31 +03:00
Borys
33d0879416
refactor: conn_context and reply_builder refactoring (#2251)
* refactor: conn_context and reply_builder refactoring
2023-12-06 08:23:32 +02:00
romange
1900e499ba chore(helm-chart): update to v1.13.0 2023-12-05 15:22:54 +00:00
Shahar Mike
3957370485
fix(server): Call PostUpdate from LPUSH even for new keys (#2254) 2023-12-05 14:23:56 +02:00
Vladislav
11ef6623dc
feat: DispatchTracker to replace everything (#2179)
* feat: DispatchTracker

Use a DispatchTracker to track ongoing dispatches for commands that change global state

---------

Signed-off-by: Vladislav Oleshko <vlad@dragonflydb.io>
2023-12-05 11:02:11 +03:00
Roman Gershman
f39eac5bca
chore: add benchmarks for a small cloud instance (#1264)
chore: add benchmarks showing single-threded performanc

In addition addressed some questions raised during HN discussions.

Signed-off-by: Roman Gershman <roman@dragonflydb.io>
2023-12-04 17:57:57 +02:00
Borys
24b13434cf
feat: add slot-migration-status command (#2239)
* feat: add slot-migration-status command
2023-12-04 12:47:46 +02:00
Vladislav
f17bfaf0ff
fix(search): Small improvements (#2248) 2023-12-03 20:04:47 +03:00
Roman Gershman
26512fdba4
fix: remove string copy in SendMGetResponse (#2246)
fix: eliminate the redundant string copy in SendMGetResponse

Also, allow selectively create DflyInstance in pytests that is attached to
an existing dragonfly port, created outside of tests.

Signed-off-by: Roman Gershman <roman@dragonflydb.io>
2023-12-03 18:14:19 +02:00
Shahar Mike
d45ded3b76
fix(server): Fix crash when using MEMORY STATS commands (#2240)
* fix(server): Fix crash when using MEMORY STATS commands

* Fix
2023-12-01 21:39:32 +02:00
Borys
a57c6dac1e
add new method to CmdArgParser (#2244)
* add new method to CmdArgParser

* refactor: rename method
2023-12-01 17:14:25 +02:00
Roman Gershman
2381316866
fix: assign threadlocal data structures during connection migration (#2237)
* fix: assign threadlocal data structures during connection migration

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

* fix: assign threadlocal data structures during connection migration

Co-authored-by: Shahar Mike <chakaz@users.noreply.github.com>
Signed-off-by: Roman Gershman <roman@dragonflydb.io>

---------

Signed-off-by: Roman Gershman <roman@dragonflydb.io>
Co-authored-by: Shahar Mike <chakaz@users.noreply.github.com>
2023-12-01 13:34:19 +02:00
Kostas Kyrimis
b53492ece7
feat(bitops_family): implement bitfield_ro command (#2222)
* add bitfield_ro command
* add parsing test
2023-12-01 10:49:47 +02:00
Roman Gershman
d495baba93
fix: wrong assert check in dash segment (#2238)
Fixes #2234

Signed-off-by: Roman Gershman <roman@dragonflydb.io>
2023-12-01 05:42:49 +02:00
adiholden
3acacf8f5f
fix(server): initialize replica acked lsn (#2236)
* fix(server): initialize replica acked lsn

Signed-off-by: adi_holden <adi@dragonflydb.io>
2023-11-30 22:16:55 +02:00
Kostas Kyrimis
18a2b52f4e
feat(bitops_family): implement bitfield command (#2221)
* implement bitfield command
* add tests
2023-11-30 18:05:50 +03:00
Shahar Mike
d15bcf8392
fix(server): Save element expirations for hash sets & sets (#2223)
* fix(server): Save element expirations for hash sets

* Add support for sets

* Fixes

* Fixes
2023-11-30 14:08:04 +02:00
Vladislav
fd3fcdcbb4
fix(server): Unwatch keys during connection close (#2231) 2023-11-30 11:56:59 +02:00
Borys
bfb1b3b624
Start slot migration (#2218)
* feat: add new command START-SLOT-MIGRATION
2023-11-29 13:38:13 +02:00
Vladislav
43431d1986
fix(test): Fix connection context access (#2228)
Signed-off-by: Vladislav Oleshko <vlad@dragonflydb.io>
2023-11-28 17:05:13 +03:00
Roman Gershman
0c5bb7b894
fix: regression test failures (#2226)
Signed-off-by: Roman Gershman <roman@dragonflydb.io>
2023-11-27 21:41:52 +02:00
Roman Gershman
b853b2ab00
fix: memcached VERSION is now parseable by php-memcached client (#2220)
The DF version is being unparseable by Memcached::getVersion() that expects n.n.n string.
Change the version to emulate the old memcached server.
The DF version can still be fetched via Memcached::getStats() function.

Signed-off-by: Roman Gershman <roman@dragonflydb.io>
2023-11-27 20:54:00 +02:00
zixuan zhao
3f7e42b099
Add store test case for GeoRadiusByMember (#2210)
* Add store test case for GeoRadiusByMember;Parsing code for STORE and STOREDIST

---------

Signed-off-by: azuredream <zhaozixuan67@gmail.com>
2023-11-27 13:01:22 +02:00
Roman Gershman
92614477b7
fix: fix cmd latency units in /metrics (#2217)
Also,
1. rebase helio dependency
2. get rid of varz counters that are superseded by
   commands_total/commands_duration_seconds_total metrics

Resolves #2213

Signed-off-by: Roman Gershman <roman@dragonflydb.io>
2023-11-27 11:44:16 +02:00
Shahar Mike
d6292ba6fd
feat(server): Better connection memory tracking (#2205) 2023-11-26 14:51:52 +02:00
Vladislav
d6044edbab
fix(squashing): Reset base command id (#2209)
Signed-off-by: Vladislav Oleshko <vlad@dragonflydb.io>
2023-11-26 12:40:37 +02:00
Vladislav
cc6210d077
fix(search): Fix score alias for knn wrapped in sort (#2215)
Signed-off-by: Vladislav Oleshko <vlad@dragonflydb.io>
2023-11-25 16:11:59 +03:00
Roman Gershman
7d53d196aa
chore: improve performance of mget operation (#2212)
Specifically, allocate only a single blob when returning multiple entries from a shard.
In addition, refactor and unify MGetResponse between string family code and ReplyBuilder code.

Signed-off-by: Roman Gershman <roman@dragonflydb.io>
2023-11-24 14:13:07 +02:00
Shahar Mike
dafdb9f4cf
refactor(facade): Do not include / use server from facade (#2211)
* refactor(facade): Do not include / use server from facade

* copyright
2023-11-24 12:58:24 +02:00
Vladislav
9686f69ac2
fix(connection): Fix pipelined command counter (#2201)
* fix: fix pipeline message counter

* fix: more tracing

---------

Signed-off-by: Vladislav Oleshko <vlad@dragonflydb.io>
2023-11-23 16:28:29 +03:00
Danya Smol
9bfdbca6cd
feat(helm): add priority class name for pod (#2183)
add priorityClassname to pod definition
2023-11-22 13:57:21 +02:00
Borys
cade6850bf
refactor: refactor cmd_arg_parser interface (#2200)
* refactor: refactor cmd_arg_parser interface
2023-11-22 10:50:49 +02:00
Borys
e6f3522d59
fix: forbid parallel save operations (#2172)
* fix: forbid parallel save operations

* feat: add SAVE option to takeover command
2023-11-21 13:56:27 +02:00
adiholden
c10dac4db2
fix(replication): fix cancel replication race (#2196)
The bug: One connection calls replica start and second call replica stop. In this flow stop first reset state mask state_mask_.store(0), Start sets state mask state_mask_.store(R_ENABLED) continues to greet and create main replication fiber and then stop runs cntx_.Cancel(), which will at later be reset inside the main replication fiber. In this flow main replication fiber does not cancel and the connection calling to Stop is deadlocked waiting to join the main replication fiber.

The fix: run cntx_.Cancel() and state_mask_.store(0) in replica thread.

Signed-off-by: adi_holden <adi@dragonflydb.io>
2023-11-21 12:47:53 +02:00
Kostas Kyrimis
03a6b508e8
chore: add missing doc for spill_file_prefix (#2174)
* chore: add missing doc for spill_file_prefix

* chore: add wording for experimental
2023-11-21 11:56:59 +02:00
Vladislav
604c600166
fix(pytest): Fix renamed flag (#2197)
Signed-off-by: Vladislav Oleshko <vlad@dragonflydb.io>
2023-11-20 20:54:11 +00:00
Vladislav
d21f82a5f9
chore: connection fixes (#2192)
* chore: add more states to client connections

* fix: clear pipelined messages before close

* fix: skip same thread on backpressure
---------

Signed-off-by: Vladislav Oleshko <vlad@dragonflydb.io>
Co-authored-by: Roman Gershman <roman@dragonflydb.io>
2023-11-20 17:08:12 +00:00
Roman Gershman
79dbd5ff91
fix: reduce the maxmimum running time of scan operation to ~100ms (#2195)
Fixes the case where a client library expect SCAN to return quicker
(context: ruby's Rails.cache.delete_matched("prefix_*") times out)

Signed-off-by: Roman Gershman <roman@dragonflydb.io>
2023-11-20 12:52:54 +00:00
Kostas Kyrimis
4a1cb5bfa2
fix(memcached): add length check for key values (#2153)
* fix length checks for store commands
* add test
2023-11-20 14:37:29 +02:00
s-shiraki
57b45129c3
feat(server): Implement ZINTER command (#2164)
* feat(server): Implement ZINTER command

Signed-off-by: HighPon <s.shiraki.business@gmail.com>

* fix: replace Schedule/Execute with ScheduleSingleHopT

Signed-off-by: HighPon <s.shiraki.business@gmail.com>

* fix: unit test

* fix: create HandleOpStatus function

* fix

* fix

* fix

* fix

* fix

* fix test

* fix

* fix

* fix test

* fix: replace ScheduleSingleHopT to ScheduleSingleHop

* fix: add reserve

* fix

---------

Signed-off-by: HighPon <s.shiraki.business@gmail.com>
2023-11-18 20:18:34 +02:00
Vladislav
30d02a0377
fix(search): Fix vector search bugs :( (#2188)
* fix(search): Fix vector search bugs :(

* fix: add test
2023-11-18 18:25:57 +03:00
Vladislav
6aecac491f
chore: Module list (#2187)
* chore: support MODULE LIST

* chore: Add modules to info
2023-11-18 18:25:36 +03:00
Vladislav
27dcec38ee
fix(json): fix json dot path (#2186)
* fix(json): fix json dot path

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

---------

Signed-off-by: Vladislav Oleshko <vlad@dragonflydb.io>
2023-11-17 22:32:16 +03:00
Kostas Kyrimis
c4cae58fc8
chore(server_family): add missing field used_memory_peak_human in command info (#2184)
* add missing field used_memory_peak
2023-11-16 14:52:58 +02:00
adiholden
c95f4961be
fix(server): client pause fix on pipeline squash (#2180)
* fix(server): client pause fix on pipeline squash

allow squashing commands on pause
move await on client pause inside InvokeCommand - this way all flows of command invoke will read pause state

Signed-off-by: adi_holden <adi@dragonflydb.io>
2023-11-16 13:30:02 +02:00