Releases: dragonflydb/dragonfly
v1.27.1
This is a patch release.
What's Changed
- fix: wrong binary path in deb package (#4593)
Update urgency: low
Full Changelog: v1.27.0...v1.27.1
v1.27.0
Dragonfly v1.27.0 - a Valentine Edition π
This marks our first release for the year, featuring numerous stability fixes and performance enhancements.
Important features and changes:
- Fixes around JSON+SEARCH: #4232 #4314
- Support for memcached meta protocol #4362 #4398 #4366
- Fixes in tiering code #4395 #4388 #4416
- Added LMPOP #4504 and ZMPOP #4385
What's Changed
- fix: test_network_disconnect_during_migration by @BorysTheDev in #4345
- refactor(rdb_saver): Add SnapshotDataConsumer to SliceSnapshot by @BagritsevichStepan in #4287
- chore(rax_tree): Introduce raxFreeWithCallback call in RaxTreeMap destructor by @BagritsevichStepan in #4255
- refactor(search_family): Add Aggregator class by @BagritsevichStepan in #4290
- fix: avoid on stack allocation of lz4 compression context by @romange in #4322
- chore: update helio and improve our stack overflow resiliency by @romange in #4349
- fix: configure jsonconst double parser to use std::from_chars by @romange in #4360
- fix(search_family): Support boolean and nullable types in indexes by @BagritsevichStepan in #4314
- fix(search_family): Support multiple fields in SORTBY option in the FT.AGGREGATE command. SECOND PR by @BagritsevichStepan in #4232
- test: skip test_network_disconnect_during_migration by @BorysTheDev in #4359
- fix(json_family): Remove std::endl during logging in ParseJsonPath method by @BagritsevichStepan in #4363
- feat: add support for meta memcache commands by @romange in #4362
- chore(test): disable failing test untill fixed by @adiholden in #4367
- chore(deps): bump the actions group across 1 directory with 2 updates by @dependabot in #4361
- feat: support memcache meta responses by @romange in #4366
- fix(pytest): fix failing test test_replication_timeout_on_full_sync by @adiholden in #4370
- chore(json_family): Remove redundant JSON value copying by @BagritsevichStepan in #4375
- feat(rdb_saver): Support big value serialization for stream by @BagritsevichStepan in #4376
- chore(snapshot): Small cleanup in Snapshot code by @BagritsevichStepan in #4377
- fix: stream memory counting durin snapshot loading by @BorysTheDev in #4346
- fix: return value for DflyMigrateAck by @BorysTheDev in #4379
- chore(server): cleanup replication shard sync execution by @adiholden in #4374
- test: fix test_network_disconnect_during_migration by @BorysTheDev in #4378
- fix(snapshot_test): Fix test_big_value_serialization_memory_limit after adding streams support by @BagritsevichStepan in #4383
- fix: ExternalAllocator::Free with large sizes by @romange in #4388
- fix(server): debug populate consume less memory by @adiholden in #4384
- refactor: slot_set don't use stack memory anymore by @BorysTheDev in #4386
- feat:Adding support for ZMPOP command by @guyzilla in #4385
- fix(replication): do not log to journal on callback fail by @adiholden in #4392
- chore: minor refactorings around dense_set deletions by @romange in #4390
- feat(server): refactor allow preempt on journal record by @adiholden in #4393
- fix: allow cluster node load snapshot bigger than maxmemory by @BorysTheDev in #4394
- fix: properly clear tiered stashes upon expirations by @romange in #4395
- feat: support deletions with meta protocol by @romange in #4398
- fix(tests): check cluster big snapshot in unit test by @adiholden in #4403
- chore(pytest): add timeout per test by @adiholden in #4404
- fix: provide resp3 option to CapturingReplyBuilder by @BorysTheDev in #4400
- chore: deprecate unneeded runtime flags by @romange in #4405
- feat: Yield inside huge values migration serialization by @chakaz in #4197
- chore(pytest): add check for rss grow in replicaiton big values by @adiholden in #4406
- feat: allow querying of json objects stored as strings by @romange in #4399
- test: move ReplicaofRejectOnLoad test from pytest into unit tests by @BorysTheDev in #4410
- chore: Increase migration wait time in
test_cluster_migration_huge_container
by @chakaz in #4409 - chore: Introduce small buffer in redis parser by @romange in #4076
- fix: invalid iterator case in Qlist::Erase by @romange in #4414
- test: add test migration in cache mode by @BorysTheDev in #4413
- fix: ExtentTree use of invalidated iterator by @kostasrim in #4416
- chore: fix build on FreeBSD by @chakaz in #4412
- chore: reduce number of logs in cluster tests by @BorysTheDev in #4419
- fix: geosearch and georadius response format by @kostasrim in #4420
- chore: split geo and zset families by @kostasrim in #4421
- fix: switch to SHUTTING_DOWN state unconditionally by @romange in #4408
- chore: split zset and geo family tests by @kostasrim in #4425
- refactor: remove transaction lib on cluster code dependency by @BorysTheDev in #4417
- chore: Increase migration wait time in
test_cluster_migration_huge_container
by @chakaz in #4427 - chore: update jsoncons version to 0.178 by @romange in #4368
- fix: improve error propagation with RESTORE commands by @romange in #4428
- fix: show managed stuff on privileged port by @romange in #4433
- chore: dragonfly connection refactorings by @romange in #4434
- fix: reply_builder should properly serialize bulk strings endings. by @romange in #4441
- chore: pull latest helio by @romange in #4446
- chore: Remove template Callbacks by @BagritsevichStepan in #4431
- fix: resp inline parsing correctly resets itself by @romange in #4458
- fix(ci): sanitizers build by @kostasrim in #4457
- chore: Add stats print for slot migrations by @chakaz in #4456
- fix: slot calculation during transaction squashing by @BorysTheDev in #4460
- fix(sanitizers): Set stack size to 64 KB during tests for Sanitizers by @BagritsevichStepan in #4454
- Fix test hypothesis by @cunla in #4380
- feat(dev): allow monitoring a valkey server on localhost by @romange in #4467
- chore: add Dash::Prefetch function by @romange in #4476
- chore: dfly_bench now accepts data and score template names by @romange in #4477
- chore: replace deprecated HELIO_STACK_CHECK by @kostasrim in #4465
- chore: Fix all clang build warnings by @chakaz in #4475
- fix: hiredis requires df to report version >7.4 by @kostasrim in #4474
- chore: make per-thread QueueBackpressure objects global by @romange in #4482
- chore: OpManagerTest fixes by @romange in #4480
- chore: run replication reg tests with epoll by @kostasrim in #4426
- chore: remove pubsub semantics from Connection::WeakRef by @romange in https://github.com/dragonflydb/dragonf...
v1.26.4
This is a patch release.
What's Changed
- fix: huge TTL in RESTORE cmd is rounded down to kMaxExpireDeadlineMs (#4589)
- fix: fix: incorrect passing of db_index in EVAL transactions (#4586)
Update urgency: low
Full Changelog: v1.26.3...v1.26.4
v1.26.3
This is a patch release.
What's Changed
- fix(search_family): Cherry pick commit "Support boolean and nullable types in indexes" (#4560)
- fix: a rare deadlock with blmove and multi-db (#4568)
- fix server: fix deadlock blmove does not conclude on error (#4561)
- fix: Bug GEQ range query bug (#4557) - fixes the issue that mastodon users experienced with Dragonfly
Due to #4557 it is strongly advised to update your dragonfly server to v1.26.3 if you use sorted sets / ZRANGEBYSCORE queries.
Full Changelog: v1.26.2...v1.26.3
v1.25.7
This is a patch release.
What's Changed
- fix: a rare deadlock with blmove and multi-db (#4568)
- fix: Bug GEQ range query bug (#4557) - fixes the issue that mastodon users experienced with Dragonfly
Due to #4557 it is strongly advised to update your dragonfly server to either v1.25.7 or v1.26.3
if you use sorted sets and ZRANGEBYSCORE queries.
v1.26.2
This is a patch release.
What's Changed
- fix: add Lua force atomicity flag (#4523)
Fixes an issue with sidekiq-pro framework. - fix: Do not bump elements during RDB load (#4507)
- fix: crash for delconsumer during stream reading (#4513)
Full Changelog: v1.26.1...v1.26.2
v1.26.1
This is a patch release.
What's Changed
- fix: data race in LREM operation (#4414)
- fix: admin port should show all the info data (#4433)
- fix: resp3 was ignored under squashing, zrange + multi did was inconsistent (#4400)
- fix: data tiering fixes: #4395, #4388 #4416
- fix: bulk string ending were not properly rendered (#4441)
Full Changelog: v1.26.0...v1.26.1
v1.26.0
Dragonfly v1.26.0 - Chrismukkah edition π― ππ― ππ―
This marks our final release for the year, featuring numerous stability fixes and performance enhancements.
Important features and changes:
- Numerous Search and Json fixes #4070 #4012 #4205 #4228 #4231 #4311 #4343
- Account for list type memory, fixes #3800
- Native support of GCS storage! Just point your
--dir
togs::\mybucket\df_snapshots\
- Fix metrics compatibility with prometheus 3.0 scraping #4277
- Series of STREAM improvements bringing Dragonfly to be compatible with redis/valkey 7.2 streams: #4192, #4237, #4239 #4240 #4281 #4285
What's Changed
- chore: remove old io by @dranikpg in #3953
- chore: RdbSerializer::SaveListObject supports QList by @romange in #4101
- chore: Implement list Pop/Erase functionality with QList by @romange in #4099
- chore: change Namespaces to be a global pointer by @romange in #4032
- fix: update instruction how to build from the source for ubuntu by @BorysTheDev in #4103
- fix: test_noreply_pipeline flakiness by @romange in #4102
- chore: Implement LMOVE over QList by @romange in #4104
- fix(search_family): Process wrong field types in indexes for the FT.SEARCH and FT.AGGREGATE commands by @BagritsevichStepan in #4070
- chore: implement Erase for a range by @romange in #4106
- chore: decouple reply_builder from ConnectionContext by @romange in #4069
- chore: support rdb loading and container utils with QList. by @romange in #4109
- feat(server) : snapshot traverse physical buckets by @adiholden in #4084
- fix: skip Send() in SinkReplyBuilder::Flush() when vec is empty by @kostasrim in #4114
- fix: regression in squashing code when determining eval commands by @romange in #4116
- fix: slow regression tests tests by @kostasrim in #4117
- test: add test for snapshoting during migration by @BorysTheDev in #4108
- feat server: experimental_new_io flag add as deprecated by @adiholden in #4127
- chore: simplify BumpUps deduplication by @romange in #4098
- fix: Do not use
cc_
in connection if it's null by @chakaz in #4131 - fix: Use
MOVED
error type for moved replies by @chakaz in #4125 - chore(deps): bump github/codeql-action from 3.27.0 to 3.27.1 in the actions group by @dependabot in #4115
- fix server: fix stats of pipeline squashed commands by @adiholden in #4132
- chore: fix plain node insertion by @romange in #4134
- chore: improve the state machine of RedisParser by @romange in #4085
- chore: run tests with list_experimental_v2 enabled by @romange in #4112
- chore: optimize info command by @romange in #4137
- fix server: fix write to slowlog on squashing flow by @adiholden in #4138
- chore:update fakeredis, remove irrelevant tests by @cunla in #4014
- chore: fix a potential crash during client list by @romange in #4141
- fix: migration ACK response processing by @BorysTheDev in #4140
- feat: add INFO memory section for squashing replies memory consuming by @BorysTheDev in #4147
- fix: allow SELECT in multi/exec if it's a noop by @romange in #4146
- chore(deps): bump github/codeql-action from 3.27.1 to 3.27.4 in the actions group by @dependabot in #4148
- chore: tune logs and improve restrict denied error by @romange in #4145
- fix: UB during cmd squashing reply size calculation by @BorysTheDev in #4149
- fix: enforce load limits when loading snapshot by @romange in #4136
- fix: test_replication_all failure by @romange in #4155
- fix: Huge entries fail to load outside RDB / replication by @chakaz in #4154
- chore: allow slow and precise memory measurement of an object by @romange in #4160
- chore: fix a regression build break by @romange in #4162
- chore: log exit code of failing dragonfly in tests by @romange in #4166
- fix: remove DenseSet::IteratorBase::TraverseApply by @kostasrim in #4170
- adjusted grafana dashboard to be more user friendly by @applike-ss in #4165
- chore: fix shutdown sequence in Dragonfly server by @romange in #4168
- feat(server): add eval_ro and evalsha_ro by @andydunstall in #4091
- chore: Hide replicas from
CLUSTER
subcmds in managed mode by @chakaz in #4174 - fix(tools): Prevent dragonfly.logrotate from stopping logrotate service by @s0xDk in #4176
- chore: more parser improvements by @romange in #4177
- fix(release/helm): allow empty commits for rerun by @Pothulapati in #4163
- fix(search_family): Fix LOAD fields parsing in the FT.AGGREGATE and FT.SEARCH commands by @BagritsevichStepan in #4012
- feat: Huge values breakdown in cluster migration by @chakaz in #4144
- feat: cluster migrations restarts if timeout happens by @BorysTheDev in #4081
- fix: deduplicate mget response by @romange in #4175
- fix: stop using openssl for container healthchecks by @romange in #4181
- chore: produce core files in regtests by @romange in #4185
- chore: stop periodic task earlier during the shutdown process by @romange in #4187
- chore(deps): bump github/codeql-action from 3.27.4 to 3.27.5 in the actions group by @dependabot in #4186
- test: skip test_cluster_mgr because of unclosed instance by @BorysTheDev in #4191
- chore: fix false positives sanitizers by @kostasrim in #4190
- fix: debug object encoding names by @romange in #4188
- feat: add ability reading stream_listpacks_2/3 rdb types by @BorysTheDev in #4192
- chore: get back on the decision to put a hard limit on command interface by @romange in #4203
- chore: qlist improvements by @romange in #4194
- fix: stream memory tracking by @kostasrim in #4067
- chore: fully support qlist in all list_family commands by @romange in #4201
- feat(contrib/helm): evaluate the provided passwordSecretName value as a template by @oOraph in #4046
- fix(search_family): Fix crash when no SEPARATOR is specified in the FT.CREATE command by @BagritsevichStepan in #4205
- chore: update command interface for hset/set families by @romange in #4209
- fix: cluster_mgr script by @BorysTheDev in #4210
- bug(replication): snapshot cleanup fix in transition to stable sync by @adiholden in #4211
- test: fix and unskip test_migration_timeout_on_sync by @BorysTheDev in #4216
- chore: Add more qlist tests by @romange in #4217
- chore: change the interface of stream and server commands by @romange in #4219
- chore: add noop docs subcmd by @kostasrim in #4214
- chore: remove tail field from qlist by @romange in #4220
- chore: qlist code clean ups by @romange in #4223
- chore: Track QList memory by @romange in #4226
- chore: change the interface of hll, generic and list commands...
v1.25.6
This is a patch release.
What's Changed
- fix: crash during getting info about replication (#4328)
- fix: potential crash - do not check-fail in OpRestore (#4332)
Full Changelog: v1.25.5...v1.25.6
v1.25.5
This is a patch release.
What's Changed
- Fix crash when no SEPARATOR is specified in the FT.CREATE command (#4205)
- Fix crash when defragmenting
StringSet
(#4283) - Fix crash caused by destructor in RaxTreeMap (#4228 )
Full Changelog: v1.25.4...v1.25.5