v1.20.0
Dragonfly v1.20.0
Some prominent changes include:
- Improvements around client side caching (#3136 #3158)
Specifically, rueidis is now supported (#2454) - Improvements around search and vector search APIs, FT.ALTER is now supported (#3144, #3148, #3178, #3186)
- JSON.MSET is added (#3167)
- Expiry notifications are now supported (#3154)
What's Changed
- test(cluster_mgr): Add tests for cluster_mgr.py by @chakaz in #3129
- chore: get rid of kv_args and replace it with slices to full_args by @romange in #3101
- fix: Fix live-lock in connection test by @chakaz in #3135
- chore: call breaker_cb_ on shutdown by @romange in #3128
- chore: Add option to disable aws dependency by @dranikpg in #3077
- feat(cluster): Add important logs by @chakaz in #3138
- chore: a small cleanup by @romange in #3140
- test: skip test_cluster_migration_cancel, it is broken by @BorysTheDev in #3146
- chore: update helio by @kostasrim in #3150
- fix: fix bug in cluster/slot_set by @BorysTheDev in #3143
- chore: recommit client tracking by @kostasrim in #3136
- feat(search): Tag field options (separator, case sensitivity) by @dranikpg in #3144
- feat(search): basic FT.ALTER by @dranikpg in #3148
- chore: Introduce pipeline back-pressure by @romange in #3152
- fix: lua and client tracking by @kostasrim in #3163
- feat: client tracking optout by @kostasrim in #3158
- feat: add noloop subcommand in client tracking by @kostasrim in #3164
- fix(ci): docker not using iouring by @kostasrim in #3169
- fix(ci): add missing docker option on reg tests workflow by @kostasrim in #3172
- fix: acl compatibility by @kostasrim in #3147
- chore: Streamer is rewritten with async interface by @romange in #3108
- feat(json): MSET by @dranikpg in #3167
- fix(cluster): Wait for flow creation before cancelling it by @chakaz in #3159
- chore: improve ft.create for vector search by @romange in #3178
- feat: add incoming migration error processing by @BorysTheDev in #3175
- chore: add parsing support for the rest of VECTOR parameters by @romange in #3179
- fix(cluster): Wait before all access to slot migrations by @chakaz in #3180
- fix(server): fix bug in replication on cached mode by @adiholden in #3156
- chore: small acl compat changes by @kostasrim in #3177
- chore: allow calling Context::ReportError from I/O dispatch fiber by @romange in #3182
- chore: add a lexer test covering KNN query by @romange in #3185
- chore(search): Add __vector_score alias by @dranikpg in #3186
- chore: Refactor string span management by @dranikpg in #3165
- chore(ci): run replication tests on arm by @kostasrim in #3168
- chore(search): improve parser error reporting by @romange in #3184
- fix(reply_builder): remove virtual modifier in SendError(ErrorReply) method by @BagritsevichStepan in #3191
- fix(cluster): Support
FLUSHALL
while slot migration is in progress by @chakaz in #3173 - fix: fix RegisterOnChange methods for journal and db_slice by @BorysTheDev in #3171
- fix(generic_family): fix RenameGeneric command for non-string data types by @BagritsevichStepan in #3181
- fix(server): Rename confusing flag
replica_reconnect_on_master_restart
by @chakaz in #3193 - fix(unit tests): fix generic family info test by @adiholden in #3187
- test: improve cluster_fuzzy_migration test by @BorysTheDev in #3197
- chore(core): Remove DfImpl inside ScoredMap by @dranikpg in #3199
- chore(tiering): Remove IoMgr by @dranikpg in #3198
- test(cluster): Make sure migration maintains TTL by @chakaz in #3188
- feat(cluster): Support
STICK
bit in slot migration by @chakaz in #3200 - chore: Re-enable previously flaky test by @chakaz in #3196
- feat(acl): add support of multiple passwords by @kostasrim in #3189
- chore(tiering): More advanced tiering tests by @dranikpg in #3201
- chore: add replica-priority flag by @kostasrim in #3204
- chore: fix tiering regtest test by @dranikpg in #3208
- feat(generic_family): Assemble RESTORE and STICK commands into one commmand during replication of the RENAME command by @BagritsevichStepan in #3209
- core(search): Add EF_RUNTIME parameter by @dranikpg in #3206
- fix(sanitizers): failing json test by @kostasrim in #3176
- feat(server): expiry notifications by @dranikpg in #3154
- fix: replicaof_reject_on_load flake by @kostasrim in #3203
- fix(cluster): Don't miss keys when migrating slots by @chakaz in #3218
- fix(tiering): Fix pending leak during immediate stash error by @dranikpg in #3219
- chore: provide basic logging to catch possible command errors by @romange in #3213
- chore: disable tiering test by @dranikpg in #3236
- fix(transaction): Don't transactionalize empty EVAL inside EXEC by @dranikpg in #3231
- fix: fix deadlock in DFLYCLUSTER CONFIG command and outgoing migration finaliztion by @BorysTheDev in #3239
- chore(tiered): minor fixes + expose buffer allocation type stats by @romange in #3234
- fix(pytest): timed ticker for simpler conditions by @dranikpg in #3242
- fix(server): Fix SCAN deadlock by @dranikpg in #3235
- chore: introduce back-pressure to tiered storage by @romange in #3243
- chore: improve dfly_bench by @romange in #3244
- chore(tiering): External alloc free page chaining by @dranikpg in #3237
- fix: total_stash_overflows statistic by @romange in #3248
- chore: update action versions by @romange in #3250
- chore(lua): Return which undeclared key was accessed by @chakaz in #3245
- chore: replace session wide fixtures with scope by @kostasrim in #3251
- chore: pull helio and adjust mimalloc for 32MiB segments by @kostasrim in #3174
- chore: add more logs around the duplicate value case in small_bins by @romange in #3254
- fix: fix move error during migration finalization by @BorysTheDev in #3253
- chore: upload all the logs from /tmp by @romange in #3263
- fix(tiering): Throttle snapshot load by @dranikpg in #3249
- chore: initiate grow preemptively by @romange in #3267
- chore(monitoring): add more dashboards + memcached by @romange in #3268
- fix(json_family): fix JSON.GET commmand for JSON legacy mode by @BagritsevichStepan in #3261
- chore: dfly_bench can send traffic to memcached by @romange in #3271
- chore: print effective QPS of the server. by @romange in #3274
- chore: debugging fixes by @romange in #3275
- chore: more debug checks around tiered storage by @romange in #3277
- chore(license): Fix typo in LICENSE.md text by @softmoth in #3283
- fix(test): Verify that save has not finished by @chakaz in #3278
- Create scorecard.yml by @romange in #3270
- chore: Disable cluster_mgr_test by @chakaz in #3279
- fix: Increase key count to make test more robust by @chakaz in #3286
- fix: properly clean tiered state upon flash by @romange in #3281
- fix(bug): crash on takeover and info replication by @adiholden in #3282
New Contributors
Huge thanks to all the contributors! ❤️
Full Changelog: v1.19.0...v1.20.0