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

1663 commits

Author SHA1 Message Date
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
adiholden
b61d07d2c1
regression: skip client pause test utill we fix the bug (#2177)
Signed-off-by: adi_holden <adi@dragonflydb.io>
2023-11-15 16:31:45 +02:00
adiholden
764d542d42
fix(server): fix build after merge AwaitCurrentDispatch (#2176)
Signed-off-by: adi_holden <adi@dragonflydb.io>
2023-11-15 11:37:36 +03:00
Vladislav
89c821b438
chore(facade): Introduce AwaitCurrentDispatches (#2156)
* chore(facade): Introduce AwaitCurrentDispatches

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

---------

Signed-off-by: Vladislav Oleshko <vlad@dragonflydb.io>
2023-11-15 10:24:08 +03:00
Roy Jacobson
c3a2da559e
feat(server): Implement CLIENT PAUSE (#1875)
* feat(server): Implement CLIENT PAUSE

Signed-off-by: adi_holden <adi@dragonflydb.io>
2023-11-15 08:56:49 +02:00
Borys
1ec1b997a0
feat: add support for sticky keys in rdb #251 (#2166)
* feat: add support for sticky keys in rdb
2023-11-14 14:02:14 +02:00
Shahar Mike
87ee4f486c
fix(stats): Do not crash upon issuing mem stats (#2169)
* fix(stats): Do not crash upon issuing `mem stats`

The reason for the crash is that we can't use a mutex while iterating
connections. It uses a non-Fiber `Await()`, and it also has a fiber
atomic guard.

Instead use the common trick of allocating per-thread data and aggregate
afterward.

* Use pool size
2023-11-14 13:12:13 +02:00
Kostas Kyrimis
09415c4f57
chore(tls): add tls config test for ca_dir (#2152)
This PR introduces a test case for TLS with `ca_dir`. First, we
did not have any tests for this case. Second, using `ca_dir` requires
to call `c_rehash` on the directory before it is loaded by DF. We
did not have this use case anywhere and therefore we thought there was
a bug when we used `ca_dir` only to find out that we need to call
`c_rehash` on the directory before we load the certificates. Now,
both a test and a use case are properly documented

* add missing test for ca_dir
* use rehash to properly show how to load ca directories instead of
  files
2023-11-13 14:11:14 +02:00
Shahar Mike
5ca2be1185
feat: Memory stats (#2162) 2023-11-13 13:58:29 +02:00
Vladislav
4b685aa809
fix(connection): Clear dispatch queue before pipeline squashing (#2163) 2023-11-13 12:08:21 +03:00
Vladislav
46292968ad
fix(search): Fix replication (#2159)
* fix(search): Support replication

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

---------

Signed-off-by: Vladislav Oleshko <vlad@dragonflydb.io>
2023-11-13 11:58:54 +03:00
Nico Coetzee
cc064a2582
Incorrect link to helm chart packages (#2161)
Fixed link and added some formatting
2023-11-13 07:19:08 +00:00
Vladislav
3b458c21ee
chore: dragonfly_connection fixes (#2160)
Signed-off-by: Vladislav Oleshko <vlad@dragonflydb.io>
2023-11-12 12:48:56 +03:00
Vladislav
564e38c05c
chore: lower takeover test load, add comments (#2151)
* chore: lower takeover test load, add comments

---------

Signed-off-by: Vladislav Oleshko <vlad@dragonflydb.io>
2023-11-12 12:08:05 +03:00
Roman Gershman
4201ac416e
chore: remove Command step argument (#2150)
It will be represented via INTERLEAVED_KEYS option.

Signed-off-by: Roman Gershman <roman@dragonflydb.io>
2023-11-10 19:10:56 +02:00
Vladislav
60fb9feec8
fix(tests): Fix flaky cluster test (#2158)
Fixes flaky cluster family test
2023-11-10 15:31:57 +00:00
Borys
587660f7f5
feat: add SRANDMEMBER and ZRANDMEMBER (#2148)
* feat: add SRANDMEMBER and ZRANDMEMBER

* fix: fix SRANDMEMBER and ZRANDMEMBER commands behaviour

* fix: fix type and remove extra flag
2023-11-10 12:01:37 +02:00