Commit graph

3399 commits

Author SHA1 Message Date
kostas
285b16fabb
fix rpm 2025-05-09 17:43:39 +03:00
kostas
9fe5880ea6
remove test 2025-05-09 15:59:02 +03:00
kostas
63f40f4a22
add test
Signed-off-by: kostas <kostas@dragonflydb.io>
2025-05-09 15:39:55 +03:00
kostas
b415f5d8d5
chore: add arch type to dfly bench release binary 2025-05-09 15:20:40 +03:00
Abhradeep Chakraborty
561c0a4733
feat(github-workflow): upload dev binaries to artifact buckets (#5031)
* feat(github-workflow): upload dev binaries to gcs artifact bucket


Signed-off-by: Abhradeep Chakraborty <abhradeep@dragonflydb.io>
2025-05-09 11:38:26 +03:00
Abhijat Malviya
fc00f2c972
feat(memcache): Add support for GETS (#5087)
Support is added for the GETS command. A placeholder CAS token of 0 is
always returned.

Signed-off-by: Abhijat Malviya <abhijat@dragonflydb.io>
2025-05-09 13:31:07 +05:30
Borys
fe495cde3f
test: tune test_cluster_migration_while_seeding (#5088) 2025-05-09 07:07:04 +00:00
Volodymyr Yavdoshenko
705d61e793
fix: Support TLS for Memcached without password authentication (#5085)
* fix: enable to use tls with memcached protocol without require password setting
2025-05-09 00:01:19 +03:00
Roman Gershman
b8ef7cdf69
chore: allow setting huffman tables via DEBUG COMPRESSION SET (#5083)
Also, revert the impact of performance bomb from #2564

Signed-off-by: Roman Gershman <roman@dragonflydb.io>
2025-05-08 22:10:59 +03:00
Roman Gershman
9a05343b5f
feat: add huffman coding to compact object (#5080)
* feat: add huffman coding to compact object

Read path and tests will follow in the next PR.
Partially addresses #4880

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

* Update src/core/compact_object.cc

Co-authored-by: Kostas Kyrimis  <kostas@dragonflydb.io>
Signed-off-by: Roman Gershman <romange@gmail.com>

---------

Signed-off-by: Roman Gershman <roman@dragonflydb.io>
Signed-off-by: Roman Gershman <romange@gmail.com>
Co-authored-by: Kostas Kyrimis <kostas@dragonflydb.io>
2025-05-08 10:21:20 +00:00
Roman Gershman
448471932b
chore: allow skipping cluster probing (#5082) 2025-05-08 13:14:51 +03:00
Roman Gershman
1e40e3aa9b
fix: remove code duplicate in GetSlice (#5079)
* fix: remove code duplicate in GetSlice

* Update src/core/compact_object.cc

Co-authored-by: Kostas Kyrimis  <kostas@dragonflydb.io>
Signed-off-by: Roman Gershman <romange@gmail.com>

* Update src/core/compact_object.cc

Signed-off-by: Kostas Kyrimis  <kostaskyrim@gmail.com>

---------

Signed-off-by: Roman Gershman <romange@gmail.com>
Signed-off-by: Kostas Kyrimis  <kostaskyrim@gmail.com>
Co-authored-by: Kostas Kyrimis <kostas@dragonflydb.io>
2025-05-07 19:14:16 +00:00
Roman Gershman
ad5aa66350
chore: Add HuffmanDecoder class (#5078)
Signed-off-by: Roman Gershman <roman@dragonflydb.io>
2025-05-07 19:58:43 +03:00
Borys
8c125a23e3
feat: add migrated keys statistic (#5043) 2025-05-07 15:48:22 +03:00
Roman Gershman
54328fd00e
chore: reorganize compact object mask bits (#5077)
Specifically get rit of MaskEnum and replace it with explicit bits aliasing the mask.
Reorganize the encoding bits to be able to store 4 states that include huffman encoding.

Solves the first part of #4880

Signed-off-by: Roman Gershman <roman@dragonflydb.io>
2025-05-07 15:08:22 +03:00
Kostas Kyrimis
05d99769e1
chore: add password flag to dfly_bench (#5074)
* add password flag to dfly_bench

---------

Signed-off-by: kostas <kostas@dragonflydb.io>
2025-05-07 07:32:13 +00:00
Roman Gershman
3977f0f60a
chore: futher dash table clean ups (#5072)
Added types PhysicalBid and LogicalBid to help showing the meaning/context behind
a bucket id.

Signed-off-by: Roman Gershman <roman@dragonflydb.io>
2025-05-07 10:30:49 +03:00
Kostas Kyrimis
843a40dba9
chore(metrics): add rdb_bgsave_in_progress and rdb_last_bgsave_status (#5061)
* add metric rdb_bgsave_in_progress
* add metric rdb_last_bgsave_status
2025-05-07 10:15:14 +03:00
Roman Gershman
3f3d232211
chore: introduce huffman encoder class (#5076)
Move the code in debugcmd.cc into HuffmanEncoder.

One of the building blocks for #4883

Signed-off-by: Roman Gershman <roman@dragonflydb.io>
2025-05-07 10:02:40 +03:00
Stepan Bagritsevich
3d79664a19
fix(json_family): Fix memory tracking for the JSON.SET command. THIRD PR (#5069)
* fix(json_family): Fix memory tracking for the JSON.SET command

fixes dragonflydb#5054

Signed-off-by: Stepan Bagritsevich <stefan@dragonflydb.io>

* refactor: address comments

Signed-off-by: Stepan Bagritsevich <stefan@dragonflydb.io>

---------

Signed-off-by: Stepan Bagritsevich <stefan@dragonflydb.io>
2025-05-07 08:56:43 +02:00
Roman Gershman
b3e0bcfb31
chore: further extend the compression analysis (#5065)
Allow export/import of huffman tables via
`DEBUG COMPRESSION EXPORT` or `DEBUG COMPRESSION IMPORT <bintable>`

Signed-off-by: Roman Gershman <roman@dragonflydb.io>
2025-05-06 13:15:54 +03:00
Roman Gershman
4d07d7d053
chore: dash table clean ups (#5064)
Remove stash template parameter because we only use dashtable with a single configuration
of STASH_CNT=4.

Signed-off-by: Roman Gershman <roman@dragonflydb.io>
2025-05-06 09:33:00 +00:00
Stepan Bagritsevich
3da7e49712
feat(memory_cmd): Add WITHOUTKEY option for the MEMORY USAGE command. SECOND PR (#5068)
feat(memory_cmd): Add WITHOUTKEY option for the MEMORY USAGE command

Signed-off-by: Stepan Bagritsevich <stefan@dragonflydb.io>
2025-05-06 10:44:16 +02:00
Kostas Kyrimis
a8b19c9b88
chore: skip test_bug_in_json_memory_tracking (#5066)
Signed-off-by: kostas <kostas@dragonflydb.io>
2025-05-06 07:38:02 +00:00
Roman Gershman
d1e5049f64
feat(dfly_bench): introduce connect only flow (#5052)
In this flow dfly_bench only connects to the server, reproducing high connection rate scenario.
Signed-off-by: Roman Gershman <roman@dragonflydb.io>
2025-05-06 08:36:33 +03:00
adiholden
6a84ad0208
bug(server): fix lns mismatch in replication (#4967)
Signed-off-by: adi_holden <adi@dragonflydb.io>
2025-05-05 10:50:58 +00:00
Volodymyr Yavdoshenko
f7a40f66d6
fix: json.set recursive processing crash (#5040)
fixed: https://github.com/dragonflydb/dragonfly/issues/5038
2025-05-04 19:06:18 +03:00
Roman Gershman
f09df995a6
feat: introduce 'debug iostats' command (#5051)
The command shows verious io stats per thread

Signed-off-by: Roman Gershman <roman@dragonflydb.io>
2025-05-04 18:34:19 +03:00
Volodymyr Yavdoshenko
5a901b9bc7
fix: send response error for long sequence instead of command crash (#5048)
fixed: https://github.com/dragonflydb/dragonfly/issues/5047
2025-05-04 13:18:03 +00:00
Stepan Bagritsevich
0a33f28bd4
chore(json_family): Clean up code. FIRST PR (#5049)
* chore(json_family): Clean up code

Signed-off-by: Stepan Bagritsevich <stefan@dragonflydb.io>

* refactor: address comments

Signed-off-by: Stepan Bagritsevich <stefan@dragonflydb.io>

* chore(json_family): Remove const ref for mutate operations

Signed-off-by: Stepan Bagritsevich <stefan@dragonflydb.io>

* refactor: address comments 2

Signed-off-by: Stepan Bagritsevich <stefan@dragonflydb.io>

* chore(json_family): Remove GetJson method

Signed-off-by: Stepan Bagritsevich <stefan@dragonflydb.io>

* refactor: revert const modifiers removing

Signed-off-by: Stepan Bagritsevich <stefan@dragonflydb.io>

---------

Signed-off-by: Stepan Bagritsevich <stefan@dragonflydb.io>
2025-05-04 13:09:59 +00:00
Borys
9f7b11628a
refactor: reduce number of cluster logs (#5044) 2025-05-04 13:51:49 +03:00
Borys
d623304c39
refactor: add WARNING regarding max_client_iobuf_len flag usage (#5029) 2025-05-04 11:06:37 +03:00
Kostas Kyrimis
ad946d8e06
chore: add dfly_bench to release workflow (#5045)
* upload dfly_bench binaries on every release
* fix macos failing build

Signed-off-by: kostas <kostas@dragonflydb.io>
2025-05-02 22:34:37 +03:00
Kostas Kyrimis
65f94e5d82
chore: skip failing test_migration_rebalance_node (#5042)
Signed-off-by: kostas <kostas@dragonflydb.io>
2025-05-02 12:08:05 +00:00
Stepan Bagritsevich
74524415c3
fix(stream_family): Fix stream memory tracking issues (#5024) 2025-05-02 11:29:52 +02:00
Kostas Kyrimis
291b2622c6
fix: make FreeMemWithEvictionStep atomic (#4885)
Signed-off-by: kostas <kostas@dragonflydb.io>
2025-05-02 10:31:55 +03:00
Roman Gershman
f4f4668c7a
chore: bump up max_busy_read_usec in tests (#5039)
cycle clock like most clocks is affected by thread context switching, and maybe this is what causes
test failures. Try to increase the parameter to even further.

Also, add benchmarks for the clock as well as fix some compiler warnings around parser.cc

Signed-off-by: Roman Gershman <roman@dragonflydb.io>
2025-05-01 00:17:29 +03:00
Harshit Gupta
1082724500
fix: Support for additional flags in expireat, pexpire and pexpireat commands (#5007)
* fix: Support for additional flags in expireat, pexpire and pexpireat commands.

* Replaced actual clock with Test clock in generic family tests.
2025-04-30 18:19:07 +03:00
Roman Gershman
befb36d477
chore: get rid of possible recursion when unwinding structured reply (#5012) 2025-04-30 18:17:38 +03:00
Roman Gershman
dced0371d3
chore: show moving P99 latency in dfly_bench (#5027)
As opposted to the cumulatative one that is shown at the end.
The reason for this: if P99 went up temporarily - it does not go back easily and stays up.

Signed-off-by: Roman Gershman <roman@dragonflydb.io>
2025-04-30 18:13:36 +03:00
Volodymyr Yavdoshenko
ae4615b470
fix: json depth limit has been changed to 64 (#5036)
fixed: https://github.com/dragonflydb/dragonfly/issues/5028
2025-04-30 17:40:03 +03:00
Borys
2661fe16b4
feat: add copy cmd (#5032)
* add copy command
* add tests
2025-04-30 16:25:21 +03:00
Roman Gershman
10cd22375e
chore: more performance improvements around MGET and pipelining (#5022)
1. Remove one vector (affects allocation and data locality) in squashing.
2. stop deduplicating MGET keys by default, but keep it as a run-time flag.

Also, finally fix TieredStorageTest.FlushAll test.

Signed-off-by: Roman Gershman <roman@dragonflydb.io>
2025-04-30 08:15:55 +03:00
Volodymyr Yavdoshenko
84456a2442
fix: JSON.ARRPOP command crash fixed (#5026)
fixed: https://github.com/dragonflydb/dragonfly/issues/5025
2025-04-30 08:00:01 +03:00
mkaruza
13d8062bb9
feat(pytest): Generate command with huge value strings in seeder (#4957)
Generate command with long strings. We will first create number of
random samples that will be used to match keys for which we are generating huge 
strings. Total length of huge value string will be divided equally between elements in
generated command.  

Closes #4430

Signed-off-by: mkaruza <mario@dragonflydb.io>
2025-04-29 21:07:13 +02:00
adiholden
880cd8d1a5
feat(server): support partial sync from last master (#5015)
Signed-off-by: adiholden <adi@dragonflydb.io>
2025-04-29 12:12:23 +03:00
Volodymyr Yavdoshenko
23d310b607
chore: polishing. put basic usage info to stdout using one call to a void messing lines (#5019)
chore: polishing. put basic usage info to stdout using one call to avoid messing with lines
2025-04-28 17:45:20 +03:00
Borys
70be62c6a1
chore: add DCHECK to easier tests debugging (#5018) 2025-04-28 11:15:05 +00:00
Volodymyr Yavdoshenko
2128eb31c9
fix: HNSW schema deleting document crash (#4987)
fixed: https://github.com/dragonflydb/dragonfly/issues/4979
2025-04-28 11:01:04 +00:00
Borys
5ea3070abf
refactor: update contributing doc (#5016) 2025-04-28 13:20:44 +03:00