-
Notifications
You must be signed in to change notification settings - Fork 968
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
chore(tiering): External alloc free page chaining #3237
Conversation
Signed-off-by: Vladislav Oleshko <[email protected]>
294627e
to
0be2fad
Compare
src/server/tiering/external_alloc.cc
Outdated
@@ -478,12 +496,23 @@ void ExternalAllocator::FreePage(Page* page, SegmentDescr* owner, size_t block_s | |||
BinIdx bidx = ToBinIdx(block_size); | |||
|
|||
// Remove fast allocation reference. | |||
if (free_pages_[bidx] == page) { | |||
free_pages_[bidx] = &empty_page; | |||
if (page->free_chained) { |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
According to your change any page at this point must be part of free_pages_
list. Moreover, seems reasonable to add this invariant to class Page description:
Page can be exactly in either these 3 states:
1. unitialized - with no blocks being allocated - segment_inuse will be 0 in that case, 1 otherwise.
2. Partly utilized by 1 or more blocks, with available > 0 in that case. It must be present in free_pages_ list then.
3. Fully utilized, with available==0, in that case it's not part of free_pages_ list.
If what I wrote is correct, you do not need free_chained
variable.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Looks like it, I just made sure it's versatile and won't break. However worst we do with this is just do a pointless search, so nothing critical
src/server/tiering/external_alloc.cc
Outdated
if (free_pages_[bidx] == page) { | ||
free_pages_[bidx] = &empty_page; | ||
} else { | ||
for (auto* cur = free_pages_[bidx]; cur != nullptr; cur = cur->next_free) { |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
i do not mind. just a suggestion - another way to do it - is lazily, so when you actually pull a full page from the free_pages_
list, you pop all the "empty" ones, though one can argue it's a premature optimisation :)
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Also a very fragile approach, we return the page to the segment and might decide to use with a different bin index. We can't keep the pointer
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
in general looks good, added a few comments.
if (page->available == blocks_num) { | ||
FreePage(page, seg, block_size); | ||
} else if (page->available == 1) { | ||
page->next_free = free_pages_[page->bin_idx]; |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
note, this may introduce a jerking behaviour where a page with a single block will be restored,removed and so on (no action items).
@@ -479,11 +496,19 @@ void ExternalAllocator::FreePage(Page* page, SegmentDescr* owner, size_t block_s | |||
|
|||
// Remove fast allocation reference. | |||
if (free_pages_[bidx] == page) { | |||
free_pages_[bidx] = &empty_page; | |||
free_pages_[bidx] = page->next_free ? page->next_free : &empty_page; |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I am not sure if page->next_free
can ever be null in this case.
I thought free_pages_ list always terminates with &empty_page
.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
no, empty_page ends with nullptr. I don't see a reason to fight with it because it allows us easily to place empty_page into the free_pages_ slot without additional checks
free_pages_[bidx] = &empty_page; | ||
free_pages_[bidx] = page->next_free ? page->next_free : &empty_page; | ||
} else { | ||
for (auto* cur = free_pages_[bidx]; cur != nullptr; cur = cur->next_free) { |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
cur != &empty_page
?
Seems like not, it doesn't break because of &empty_page, but because we get a circle in the list 😱 UPD: because we delete lazily |
…nfly ( v1.19.2 → v1.20.0 ) (#3956) This PR contains the following updates: | Package | Update | Change | |---|---|---| | [docker.dragonflydb.io/dragonflydb/dragonfly](https://togithub.com/dragonflydb/dragonfly) | minor | `v1.19.2` -> `v1.20.0` | --- ### Release Notes <details> <summary>dragonflydb/dragonfly (docker.dragonflydb.io/dragonflydb/dragonfly)</summary> ### [`v1.20.0`](https://togithub.com/dragonflydb/dragonfly/releases/tag/v1.20.0) [Compare Source](https://togithub.com/dragonflydb/dragonfly/compare/v1.19.2...v1.20.0) ##### Dragonfly v1.20.0 Some prominent changes include: - Improvements around client side caching ([#​3136](https://togithub.com/dragonflydb/dragonfly/issues/3136) [#​3158](https://togithub.com/dragonflydb/dragonfly/issues/3158)) Specifically, rueidis is now supported ([#​2454](https://togithub.com/dragonflydb/dragonfly/issues/2454)) - Improvements around search and vector search APIs, FT.ALTER is now supported ([#​3144](https://togithub.com/dragonflydb/dragonfly/issues/3144), [#​3148](https://togithub.com/dragonflydb/dragonfly/issues/3148), [#​3178](https://togithub.com/dragonflydb/dragonfly/issues/3178), [#​3186](https://togithub.com/dragonflydb/dragonfly/issues/3186)) - JSON.MSET is added ([#​3167](https://togithub.com/dragonflydb/dragonfly/issues/3167)) - Expiry notifications are now supported ([#​3154](https://togithub.com/dragonflydb/dragonfly/issues/3154)) ##### What's Changed - test(cluster_mgr): Add tests for cluster_mgr.py by [@​chakaz](https://togithub.com/chakaz) in [https://github.com/dragonflydb/dragonfly/pull/3129](https://togithub.com/dragonflydb/dragonfly/pull/3129) - chore: get rid of kv_args and replace it with slices to full_args by [@​romange](https://togithub.com/romange) in [https://github.com/dragonflydb/dragonfly/pull/3101](https://togithub.com/dragonflydb/dragonfly/pull/3101) - fix: Fix live-lock in connection test by [@​chakaz](https://togithub.com/chakaz) in [https://github.com/dragonflydb/dragonfly/pull/3135](https://togithub.com/dragonflydb/dragonfly/pull/3135) - chore: call breaker_cb\_ on shutdown by [@​romange](https://togithub.com/romange) in [https://github.com/dragonflydb/dragonfly/pull/3128](https://togithub.com/dragonflydb/dragonfly/pull/3128) - chore: Add option to disable aws dependency by [@​dranikpg](https://togithub.com/dranikpg) in [https://github.com/dragonflydb/dragonfly/pull/3077](https://togithub.com/dragonflydb/dragonfly/pull/3077) - feat(cluster): Add important logs by [@​chakaz](https://togithub.com/chakaz) in [https://github.com/dragonflydb/dragonfly/pull/3138](https://togithub.com/dragonflydb/dragonfly/pull/3138) - chore: a small cleanup by [@​romange](https://togithub.com/romange) in [https://github.com/dragonflydb/dragonfly/pull/3140](https://togithub.com/dragonflydb/dragonfly/pull/3140) - test: skip test_cluster_migration_cancel, it is broken by [@​BorysTheDev](https://togithub.com/BorysTheDev) in [https://github.com/dragonflydb/dragonfly/pull/3146](https://togithub.com/dragonflydb/dragonfly/pull/3146) - chore: update helio by [@​kostasrim](https://togithub.com/kostasrim) in [https://github.com/dragonflydb/dragonfly/pull/3150](https://togithub.com/dragonflydb/dragonfly/pull/3150) - fix: fix bug in cluster/slot_set by [@​BorysTheDev](https://togithub.com/BorysTheDev) in [https://github.com/dragonflydb/dragonfly/pull/3143](https://togithub.com/dragonflydb/dragonfly/pull/3143) - chore: recommit client tracking by [@​kostasrim](https://togithub.com/kostasrim) in [https://github.com/dragonflydb/dragonfly/pull/3136](https://togithub.com/dragonflydb/dragonfly/pull/3136) - feat(search): Tag field options (separator, case sensitivity) by [@​dranikpg](https://togithub.com/dranikpg) in [https://github.com/dragonflydb/dragonfly/pull/3144](https://togithub.com/dragonflydb/dragonfly/pull/3144) - feat(search): basic FT.ALTER by [@​dranikpg](https://togithub.com/dranikpg) in [https://github.com/dragonflydb/dragonfly/pull/3148](https://togithub.com/dragonflydb/dragonfly/pull/3148) - chore: Introduce pipeline back-pressure by [@​romange](https://togithub.com/romange) in [https://github.com/dragonflydb/dragonfly/pull/3152](https://togithub.com/dragonflydb/dragonfly/pull/3152) - fix: lua and client tracking by [@​kostasrim](https://togithub.com/kostasrim) in [https://github.com/dragonflydb/dragonfly/pull/3163](https://togithub.com/dragonflydb/dragonfly/pull/3163) - feat: client tracking optout by [@​kostasrim](https://togithub.com/kostasrim) in [https://github.com/dragonflydb/dragonfly/pull/3158](https://togithub.com/dragonflydb/dragonfly/pull/3158) - feat: add noloop subcommand in client tracking by [@​kostasrim](https://togithub.com/kostasrim) in [https://github.com/dragonflydb/dragonfly/pull/3164](https://togithub.com/dragonflydb/dragonfly/pull/3164) - fix(ci): docker not using iouring by [@​kostasrim](https://togithub.com/kostasrim) in [https://github.com/dragonflydb/dragonfly/pull/3169](https://togithub.com/dragonflydb/dragonfly/pull/3169) - fix(ci): add missing docker option on reg tests workflow by [@​kostasrim](https://togithub.com/kostasrim) in [https://github.com/dragonflydb/dragonfly/pull/3172](https://togithub.com/dragonflydb/dragonfly/pull/3172) - fix: acl compatibility by [@​kostasrim](https://togithub.com/kostasrim) in [https://github.com/dragonflydb/dragonfly/pull/3147](https://togithub.com/dragonflydb/dragonfly/pull/3147) - chore: Streamer is rewritten with async interface by [@​romange](https://togithub.com/romange) in [https://github.com/dragonflydb/dragonfly/pull/3108](https://togithub.com/dragonflydb/dragonfly/pull/3108) - feat(json): MSET by [@​dranikpg](https://togithub.com/dranikpg) in [https://github.com/dragonflydb/dragonfly/pull/3167](https://togithub.com/dragonflydb/dragonfly/pull/3167) - fix(cluster): Wait for flow creation before cancelling it by [@​chakaz](https://togithub.com/chakaz) in [https://github.com/dragonflydb/dragonfly/pull/3159](https://togithub.com/dragonflydb/dragonfly/pull/3159) - chore: improve ft.create for vector search by [@​romange](https://togithub.com/romange) in [https://github.com/dragonflydb/dragonfly/pull/3178](https://togithub.com/dragonflydb/dragonfly/pull/3178) - feat: add incoming migration error processing by [@​BorysTheDev](https://togithub.com/BorysTheDev) in [https://github.com/dragonflydb/dragonfly/pull/3175](https://togithub.com/dragonflydb/dragonfly/pull/3175) - chore: add parsing support for the rest of VECTOR parameters by [@​romange](https://togithub.com/romange) in [https://github.com/dragonflydb/dragonfly/pull/3179](https://togithub.com/dragonflydb/dragonfly/pull/3179) - fix(cluster): Wait before all access to slot migrations by [@​chakaz](https://togithub.com/chakaz) in [https://github.com/dragonflydb/dragonfly/pull/3180](https://togithub.com/dragonflydb/dragonfly/pull/3180) - fix(server): fix bug in replication on cached mode by [@​adiholden](https://togithub.com/adiholden) in [https://github.com/dragonflydb/dragonfly/pull/3156](https://togithub.com/dragonflydb/dragonfly/pull/3156) - chore: small acl compat changes by [@​kostasrim](https://togithub.com/kostasrim) in [https://github.com/dragonflydb/dragonfly/pull/3177](https://togithub.com/dragonflydb/dragonfly/pull/3177) - chore: allow calling Context::ReportError from I/O dispatch fiber by [@​romange](https://togithub.com/romange) in [https://github.com/dragonflydb/dragonfly/pull/3182](https://togithub.com/dragonflydb/dragonfly/pull/3182) - chore: add a lexer test covering KNN query by [@​romange](https://togithub.com/romange) in [https://github.com/dragonflydb/dragonfly/pull/3185](https://togithub.com/dragonflydb/dragonfly/pull/3185) - chore(search): Add \__vector_score alias by [@​dranikpg](https://togithub.com/dranikpg) in [https://github.com/dragonflydb/dragonfly/pull/3186](https://togithub.com/dragonflydb/dragonfly/pull/3186) - chore: Refactor string span management by [@​dranikpg](https://togithub.com/dranikpg) in [https://github.com/dragonflydb/dragonfly/pull/3165](https://togithub.com/dragonflydb/dragonfly/pull/3165) - chore(ci): run replication tests on arm by [@​kostasrim](https://togithub.com/kostasrim) in [https://github.com/dragonflydb/dragonfly/pull/3168](https://togithub.com/dragonflydb/dragonfly/pull/3168) - chore(search): improve parser error reporting by [@​romange](https://togithub.com/romange) in [https://github.com/dragonflydb/dragonfly/pull/3184](https://togithub.com/dragonflydb/dragonfly/pull/3184) - fix(reply_builder): remove virtual modifier in SendError(ErrorReply) method by [@​BagritsevichStepan](https://togithub.com/BagritsevichStepan) in [https://github.com/dragonflydb/dragonfly/pull/3191](https://togithub.com/dragonflydb/dragonfly/pull/3191) - fix(cluster): Support `FLUSHALL` while slot migration is in progress by [@​chakaz](https://togithub.com/chakaz) in [https://github.com/dragonflydb/dragonfly/pull/3173](https://togithub.com/dragonflydb/dragonfly/pull/3173) - fix: fix RegisterOnChange methods for journal and db_slice by [@​BorysTheDev](https://togithub.com/BorysTheDev) in [https://github.com/dragonflydb/dragonfly/pull/3171](https://togithub.com/dragonflydb/dragonfly/pull/3171) - fix(generic_family): fix RenameGeneric command for non-string data types by [@​BagritsevichStepan](https://togithub.com/BagritsevichStepan) in [https://github.com/dragonflydb/dragonfly/pull/3181](https://togithub.com/dragonflydb/dragonfly/pull/3181) - fix(server): Rename confusing flag `replica_reconnect_on_master_restart` by [@​chakaz](https://togithub.com/chakaz) in [https://github.com/dragonflydb/dragonfly/pull/3193](https://togithub.com/dragonflydb/dragonfly/pull/3193) - fix(unit tests): fix generic family info test by [@​adiholden](https://togithub.com/adiholden) in [https://github.com/dragonflydb/dragonfly/pull/3187](https://togithub.com/dragonflydb/dragonfly/pull/3187) - test: improve cluster_fuzzy_migration test by [@​BorysTheDev](https://togithub.com/BorysTheDev) in [https://github.com/dragonflydb/dragonfly/pull/3197](https://togithub.com/dragonflydb/dragonfly/pull/3197) - chore(core): Remove DfImpl inside ScoredMap by [@​dranikpg](https://togithub.com/dranikpg) in [https://github.com/dragonflydb/dragonfly/pull/3199](https://togithub.com/dragonflydb/dragonfly/pull/3199) - chore(tiering): Remove IoMgr by [@​dranikpg](https://togithub.com/dranikpg) in [https://github.com/dragonflydb/dragonfly/pull/3198](https://togithub.com/dragonflydb/dragonfly/pull/3198) - test(cluster): Make sure migration maintains TTL by [@​chakaz](https://togithub.com/chakaz) in [https://github.com/dragonflydb/dragonfly/pull/3188](https://togithub.com/dragonflydb/dragonfly/pull/3188) - feat(cluster): Support `STICK` bit in slot migration by [@​chakaz](https://togithub.com/chakaz) in [https://github.com/dragonflydb/dragonfly/pull/3200](https://togithub.com/dragonflydb/dragonfly/pull/3200) - chore: Re-enable previously flaky test by [@​chakaz](https://togithub.com/chakaz) in [https://github.com/dragonflydb/dragonfly/pull/3196](https://togithub.com/dragonflydb/dragonfly/pull/3196) - feat(acl): add support of multiple passwords by [@​kostasrim](https://togithub.com/kostasrim) in [https://github.com/dragonflydb/dragonfly/pull/3189](https://togithub.com/dragonflydb/dragonfly/pull/3189) - chore(tiering): More advanced tiering tests by [@​dranikpg](https://togithub.com/dranikpg) in [https://github.com/dragonflydb/dragonfly/pull/3201](https://togithub.com/dragonflydb/dragonfly/pull/3201) - chore: add replica-priority flag by [@​kostasrim](https://togithub.com/kostasrim) in [https://github.com/dragonflydb/dragonfly/pull/3204](https://togithub.com/dragonflydb/dragonfly/pull/3204) - chore: fix tiering regtest test by [@​dranikpg](https://togithub.com/dranikpg) in [https://github.com/dragonflydb/dragonfly/pull/3208](https://togithub.com/dragonflydb/dragonfly/pull/3208) - feat(generic_family): Assemble RESTORE and STICK commands into one commmand during replication of the RENAME command by [@​BagritsevichStepan](https://togithub.com/BagritsevichStepan) in [https://github.com/dragonflydb/dragonfly/pull/3209](https://togithub.com/dragonflydb/dragonfly/pull/3209) - core(search): Add EF_RUNTIME parameter by [@​dranikpg](https://togithub.com/dranikpg) in [https://github.com/dragonflydb/dragonfly/pull/3206](https://togithub.com/dragonflydb/dragonfly/pull/3206) - fix(sanitizers): failing json test by [@​kostasrim](https://togithub.com/kostasrim) in [https://github.com/dragonflydb/dragonfly/pull/3176](https://togithub.com/dragonflydb/dragonfly/pull/3176) - feat(server): expiry notifications by [@​dranikpg](https://togithub.com/dranikpg) in [https://github.com/dragonflydb/dragonfly/pull/3154](https://togithub.com/dragonflydb/dragonfly/pull/3154) - fix: replicaof_reject_on_load flake by [@​kostasrim](https://togithub.com/kostasrim) in [https://github.com/dragonflydb/dragonfly/pull/3203](https://togithub.com/dragonflydb/dragonfly/pull/3203) - fix(cluster): Don't miss keys when migrating slots by [@​chakaz](https://togithub.com/chakaz) in [https://github.com/dragonflydb/dragonfly/pull/3218](https://togithub.com/dragonflydb/dragonfly/pull/3218) - fix(tiering): Fix pending leak during immediate stash error by [@​dranikpg](https://togithub.com/dranikpg) in [https://github.com/dragonflydb/dragonfly/pull/3219](https://togithub.com/dragonflydb/dragonfly/pull/3219) - chore: provide basic logging to catch possible command errors by [@​romange](https://togithub.com/romange) in [https://github.com/dragonflydb/dragonfly/pull/3213](https://togithub.com/dragonflydb/dragonfly/pull/3213) - chore: disable tiering test by [@​dranikpg](https://togithub.com/dranikpg) in [https://github.com/dragonflydb/dragonfly/pull/3236](https://togithub.com/dragonflydb/dragonfly/pull/3236) - fix(transaction): Don't transactionalize empty EVAL inside EXEC by [@​dranikpg](https://togithub.com/dranikpg) in [https://github.com/dragonflydb/dragonfly/pull/3231](https://togithub.com/dragonflydb/dragonfly/pull/3231) - fix: fix deadlock in DFLYCLUSTER CONFIG command and outgoing migration finaliztion by [@​BorysTheDev](https://togithub.com/BorysTheDev) in [https://github.com/dragonflydb/dragonfly/pull/3239](https://togithub.com/dragonflydb/dragonfly/pull/3239) - chore(tiered): minor fixes + expose buffer allocation type stats by [@​romange](https://togithub.com/romange) in [https://github.com/dragonflydb/dragonfly/pull/3234](https://togithub.com/dragonflydb/dragonfly/pull/3234) - fix(pytest): timed ticker for simpler conditions by [@​dranikpg](https://togithub.com/dranikpg) in [https://github.com/dragonflydb/dragonfly/pull/3242](https://togithub.com/dragonflydb/dragonfly/pull/3242) - fix(server): Fix SCAN deadlock by [@​dranikpg](https://togithub.com/dranikpg) in [https://github.com/dragonflydb/dragonfly/pull/3235](https://togithub.com/dragonflydb/dragonfly/pull/3235) - chore: introduce back-pressure to tiered storage by [@​romange](https://togithub.com/romange) in [https://github.com/dragonflydb/dragonfly/pull/3243](https://togithub.com/dragonflydb/dragonfly/pull/3243) - chore: improve dfly_bench by [@​romange](https://togithub.com/romange) in [https://github.com/dragonflydb/dragonfly/pull/3244](https://togithub.com/dragonflydb/dragonfly/pull/3244) - chore(tiering): External alloc free page chaining by [@​dranikpg](https://togithub.com/dranikpg) in [https://github.com/dragonflydb/dragonfly/pull/3237](https://togithub.com/dragonflydb/dragonfly/pull/3237) - fix: total_stash_overflows statistic by [@​romange](https://togithub.com/romange) in [https://github.com/dragonflydb/dragonfly/pull/3248](https://togithub.com/dragonflydb/dragonfly/pull/3248) - chore: update action versions by [@​romange](https://togithub.com/romange) in [https://github.com/dragonflydb/dragonfly/pull/3250](https://togithub.com/dragonflydb/dragonfly/pull/3250) - chore(lua): Return which undeclared key was accessed by [@​chakaz](https://togithub.com/chakaz) in [https://github.com/dragonflydb/dragonfly/pull/3245](https://togithub.com/dragonflydb/dragonfly/pull/3245) - chore: replace session wide fixtures with scope by [@​kostasrim](https://togithub.com/kostasrim) in [https://github.com/dragonflydb/dragonfly/pull/3251](https://togithub.com/dragonflydb/dragonfly/pull/3251) - chore: pull helio and adjust mimalloc for 32MiB segments by [@​kostasrim](https://togithub.com/kostasrim) in [https://github.com/dragonflydb/dragonfly/pull/3174](https://togithub.com/dragonflydb/dragonfly/pull/3174) - chore: add more logs around the duplicate value case in small_bins by [@​romange](https://togithub.com/romange) in [https://github.com/dragonflydb/dragonfly/pull/3254](https://togithub.com/dragonflydb/dragonfly/pull/3254) - fix: fix move error during migration finalization by [@​BorysTheDev](https://togithub.com/BorysTheDev) in [https://github.com/dragonflydb/dragonfly/pull/3253](https://togithub.com/dragonflydb/dragonfly/pull/3253) - chore: upload all the logs from /tmp by [@​romange](https://togithub.com/romange) in [https://github.com/dragonflydb/dragonfly/pull/3263](https://togithub.com/dragonflydb/dragonfly/pull/3263) - fix(tiering): Throttle snapshot load by [@​dranikpg](https://togithub.com/dranikpg) in [https://github.com/dragonflydb/dragonfly/pull/3249](https://togithub.com/dragonflydb/dragonfly/pull/3249) - chore: initiate grow preemptively by [@​romange](https://togithub.com/romange) in [https://github.com/dragonflydb/dragonfly/pull/3267](https://togithub.com/dragonflydb/dragonfly/pull/3267) - chore(monitoring): add more dashboards + memcached by [@​romange](https://togithub.com/romange) in [https://github.com/dragonflydb/dragonfly/pull/3268](https://togithub.com/dragonflydb/dragonfly/pull/3268) - fix(json_family): fix JSON.GET commmand for JSON legacy mode by [@​BagritsevichStepan](https://togithub.com/BagritsevichStepan) in [https://github.com/dragonflydb/dragonfly/pull/3261](https://togithub.com/dragonflydb/dragonfly/pull/3261) - chore: dfly_bench can send traffic to memcached by [@​romange](https://togithub.com/romange) in [https://github.com/dragonflydb/dragonfly/pull/3271](https://togithub.com/dragonflydb/dragonfly/pull/3271) - chore: print effective QPS of the server. by [@​romange](https://togithub.com/romange) in [https://github.com/dragonflydb/dragonfly/pull/3274](https://togithub.com/dragonflydb/dragonfly/pull/3274) - chore: debugging fixes by [@​romange](https://togithub.com/romange) in [https://github.com/dragonflydb/dragonfly/pull/3275](https://togithub.com/dragonflydb/dragonfly/pull/3275) - chore: more debug checks around tiered storage by [@​romange](https://togithub.com/romange) in [https://github.com/dragonflydb/dragonfly/pull/3277](https://togithub.com/dragonflydb/dragonfly/pull/3277) - chore(license): Fix typo in LICENSE.md text by [@​softmoth](https://togithub.com/softmoth) in [https://github.com/dragonflydb/dragonfly/pull/3283](https://togithub.com/dragonflydb/dragonfly/pull/3283) - fix(test): Verify that save has not finished by [@​chakaz](https://togithub.com/chakaz) in [https://github.com/dragonflydb/dragonfly/pull/3278](https://togithub.com/dragonflydb/dragonfly/pull/3278) - Create scorecard.yml by [@​romange](https://togithub.com/romange) in [https://github.com/dragonflydb/dragonfly/pull/3270](https://togithub.com/dragonflydb/dragonfly/pull/3270) - chore: Disable cluster_mgr_test by [@​chakaz](https://togithub.com/chakaz) in [https://github.com/dragonflydb/dragonfly/pull/3279](https://togithub.com/dragonflydb/dragonfly/pull/3279) - fix: Increase key count to make test more robust by [@​chakaz](https://togithub.com/chakaz) in [https://github.com/dragonflydb/dragonfly/pull/3286](https://togithub.com/dragonflydb/dragonfly/pull/3286) - fix: properly clean tiered state upon flash by [@​romange](https://togithub.com/romange) in [https://github.com/dragonflydb/dragonfly/pull/3281](https://togithub.com/dragonflydb/dragonfly/pull/3281) - fix(bug): crash on takeover and info replication by [@​adiholden](https://togithub.com/adiholden) in [https://github.com/dragonflydb/dragonfly/pull/3282](https://togithub.com/dragonflydb/dragonfly/pull/3282) ##### New Contributors - [@​softmoth](https://togithub.com/softmoth) made their first contribution in [https://github.com/dragonflydb/dragonfly/pull/3283](https://togithub.com/dragonflydb/dragonfly/pull/3283) ##### Huge thanks to all the contributors! ❤️ **Full Changelog**: dragonflydb/dragonfly@v1.19.0...v1.20.0 </details> <!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNy40MjYuMiIsInVwZGF0ZWRJblZlciI6IjM3LjQyNi4yIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6WyJyZW5vdmF0ZS9jb250YWluZXIiLCJ0eXBlL21pbm9yIl19--> Co-authored-by: repo-jeeves[bot] <106431701+repo-jeeves[bot]@users.noreply.github.com>
#845) This PR contains the following updates: | Package | Update | Change | |---|---|---| | [ghcr.io/dragonflydb/dragonfly](https://togithub.com/dragonflydb/dragonfly) | minor | `v1.19.2` -> `v1.20.0` | --- > [!WARNING] > Some dependencies could not be looked up. Check the Dependency Dashboard for more information. --- ### Release Notes <details> <summary>dragonflydb/dragonfly (ghcr.io/dragonflydb/dragonfly)</summary> ### [`v1.20.0`](https://togithub.com/dragonflydb/dragonfly/releases/tag/v1.20.0) [Compare Source](https://togithub.com/dragonflydb/dragonfly/compare/v1.19.2...v1.20.0) ##### Dragonfly v1.20.0 Some prominent changes include: - Improvements around client side caching ([#​3136](https://togithub.com/dragonflydb/dragonfly/issues/3136) [#​3158](https://togithub.com/dragonflydb/dragonfly/issues/3158)) Specifically, rueidis is now supported ([#​2454](https://togithub.com/dragonflydb/dragonfly/issues/2454)) - Improvements around search and vector search APIs, FT.ALTER is now supported ([#​3144](https://togithub.com/dragonflydb/dragonfly/issues/3144), [#​3148](https://togithub.com/dragonflydb/dragonfly/issues/3148), [#​3178](https://togithub.com/dragonflydb/dragonfly/issues/3178), [#​3186](https://togithub.com/dragonflydb/dragonfly/issues/3186)) - JSON.MSET is added ([#​3167](https://togithub.com/dragonflydb/dragonfly/issues/3167)) - Expiry notifications are now supported ([#​3154](https://togithub.com/dragonflydb/dragonfly/issues/3154)) ##### What's Changed - test(cluster_mgr): Add tests for cluster_mgr.py by [@​chakaz](https://togithub.com/chakaz) in [https://github.com/dragonflydb/dragonfly/pull/3129](https://togithub.com/dragonflydb/dragonfly/pull/3129) - chore: get rid of kv_args and replace it with slices to full_args by [@​romange](https://togithub.com/romange) in [https://github.com/dragonflydb/dragonfly/pull/3101](https://togithub.com/dragonflydb/dragonfly/pull/3101) - fix: Fix live-lock in connection test by [@​chakaz](https://togithub.com/chakaz) in [https://github.com/dragonflydb/dragonfly/pull/3135](https://togithub.com/dragonflydb/dragonfly/pull/3135) - chore: call breaker_cb\_ on shutdown by [@​romange](https://togithub.com/romange) in [https://github.com/dragonflydb/dragonfly/pull/3128](https://togithub.com/dragonflydb/dragonfly/pull/3128) - chore: Add option to disable aws dependency by [@​dranikpg](https://togithub.com/dranikpg) in [https://github.com/dragonflydb/dragonfly/pull/3077](https://togithub.com/dragonflydb/dragonfly/pull/3077) - feat(cluster): Add important logs by [@​chakaz](https://togithub.com/chakaz) in [https://github.com/dragonflydb/dragonfly/pull/3138](https://togithub.com/dragonflydb/dragonfly/pull/3138) - chore: a small cleanup by [@​romange](https://togithub.com/romange) in [https://github.com/dragonflydb/dragonfly/pull/3140](https://togithub.com/dragonflydb/dragonfly/pull/3140) - test: skip test_cluster_migration_cancel, it is broken by [@​BorysTheDev](https://togithub.com/BorysTheDev) in [https://github.com/dragonflydb/dragonfly/pull/3146](https://togithub.com/dragonflydb/dragonfly/pull/3146) - chore: update helio by [@​kostasrim](https://togithub.com/kostasrim) in [https://github.com/dragonflydb/dragonfly/pull/3150](https://togithub.com/dragonflydb/dragonfly/pull/3150) - fix: fix bug in cluster/slot_set by [@​BorysTheDev](https://togithub.com/BorysTheDev) in [https://github.com/dragonflydb/dragonfly/pull/3143](https://togithub.com/dragonflydb/dragonfly/pull/3143) - chore: recommit client tracking by [@​kostasrim](https://togithub.com/kostasrim) in [https://github.com/dragonflydb/dragonfly/pull/3136](https://togithub.com/dragonflydb/dragonfly/pull/3136) - feat(search): Tag field options (separator, case sensitivity) by [@​dranikpg](https://togithub.com/dranikpg) in [https://github.com/dragonflydb/dragonfly/pull/3144](https://togithub.com/dragonflydb/dragonfly/pull/3144) - feat(search): basic FT.ALTER by [@​dranikpg](https://togithub.com/dranikpg) in [https://github.com/dragonflydb/dragonfly/pull/3148](https://togithub.com/dragonflydb/dragonfly/pull/3148) - chore: Introduce pipeline back-pressure by [@​romange](https://togithub.com/romange) in [https://github.com/dragonflydb/dragonfly/pull/3152](https://togithub.com/dragonflydb/dragonfly/pull/3152) - fix: lua and client tracking by [@​kostasrim](https://togithub.com/kostasrim) in [https://github.com/dragonflydb/dragonfly/pull/3163](https://togithub.com/dragonflydb/dragonfly/pull/3163) - feat: client tracking optout by [@​kostasrim](https://togithub.com/kostasrim) in [https://github.com/dragonflydb/dragonfly/pull/3158](https://togithub.com/dragonflydb/dragonfly/pull/3158) - feat: add noloop subcommand in client tracking by [@​kostasrim](https://togithub.com/kostasrim) in [https://github.com/dragonflydb/dragonfly/pull/3164](https://togithub.com/dragonflydb/dragonfly/pull/3164) - fix(ci): docker not using iouring by [@​kostasrim](https://togithub.com/kostasrim) in [https://github.com/dragonflydb/dragonfly/pull/3169](https://togithub.com/dragonflydb/dragonfly/pull/3169) - fix(ci): add missing docker option on reg tests workflow by [@​kostasrim](https://togithub.com/kostasrim) in [https://github.com/dragonflydb/dragonfly/pull/3172](https://togithub.com/dragonflydb/dragonfly/pull/3172) - fix: acl compatibility by [@​kostasrim](https://togithub.com/kostasrim) in [https://github.com/dragonflydb/dragonfly/pull/3147](https://togithub.com/dragonflydb/dragonfly/pull/3147) - chore: Streamer is rewritten with async interface by [@​romange](https://togithub.com/romange) in [https://github.com/dragonflydb/dragonfly/pull/3108](https://togithub.com/dragonflydb/dragonfly/pull/3108) - feat(json): MSET by [@​dranikpg](https://togithub.com/dranikpg) in [https://github.com/dragonflydb/dragonfly/pull/3167](https://togithub.com/dragonflydb/dragonfly/pull/3167) - fix(cluster): Wait for flow creation before cancelling it by [@​chakaz](https://togithub.com/chakaz) in [https://github.com/dragonflydb/dragonfly/pull/3159](https://togithub.com/dragonflydb/dragonfly/pull/3159) - chore: improve ft.create for vector search by [@​romange](https://togithub.com/romange) in [https://github.com/dragonflydb/dragonfly/pull/3178](https://togithub.com/dragonflydb/dragonfly/pull/3178) - feat: add incoming migration error processing by [@​BorysTheDev](https://togithub.com/BorysTheDev) in [https://github.com/dragonflydb/dragonfly/pull/3175](https://togithub.com/dragonflydb/dragonfly/pull/3175) - chore: add parsing support for the rest of VECTOR parameters by [@​romange](https://togithub.com/romange) in [https://github.com/dragonflydb/dragonfly/pull/3179](https://togithub.com/dragonflydb/dragonfly/pull/3179) - fix(cluster): Wait before all access to slot migrations by [@​chakaz](https://togithub.com/chakaz) in [https://github.com/dragonflydb/dragonfly/pull/3180](https://togithub.com/dragonflydb/dragonfly/pull/3180) - fix(server): fix bug in replication on cached mode by [@​adiholden](https://togithub.com/adiholden) in [https://github.com/dragonflydb/dragonfly/pull/3156](https://togithub.com/dragonflydb/dragonfly/pull/3156) - chore: small acl compat changes by [@​kostasrim](https://togithub.com/kostasrim) in [https://github.com/dragonflydb/dragonfly/pull/3177](https://togithub.com/dragonflydb/dragonfly/pull/3177) - chore: allow calling Context::ReportError from I/O dispatch fiber by [@​romange](https://togithub.com/romange) in [https://github.com/dragonflydb/dragonfly/pull/3182](https://togithub.com/dragonflydb/dragonfly/pull/3182) - chore: add a lexer test covering KNN query by [@​romange](https://togithub.com/romange) in [https://github.com/dragonflydb/dragonfly/pull/3185](https://togithub.com/dragonflydb/dragonfly/pull/3185) - chore(search): Add \__vector_score alias by [@​dranikpg](https://togithub.com/dranikpg) in [https://github.com/dragonflydb/dragonfly/pull/3186](https://togithub.com/dragonflydb/dragonfly/pull/3186) - chore: Refactor string span management by [@​dranikpg](https://togithub.com/dranikpg) in [https://github.com/dragonflydb/dragonfly/pull/3165](https://togithub.com/dragonflydb/dragonfly/pull/3165) - chore(ci): run replication tests on arm by [@​kostasrim](https://togithub.com/kostasrim) in [https://github.com/dragonflydb/dragonfly/pull/3168](https://togithub.com/dragonflydb/dragonfly/pull/3168) - chore(search): improve parser error reporting by [@​romange](https://togithub.com/romange) in [https://github.com/dragonflydb/dragonfly/pull/3184](https://togithub.com/dragonflydb/dragonfly/pull/3184) - fix(reply_builder): remove virtual modifier in SendError(ErrorReply) method by [@​BagritsevichStepan](https://togithub.com/BagritsevichStepan) in [https://github.com/dragonflydb/dragonfly/pull/3191](https://togithub.com/dragonflydb/dragonfly/pull/3191) - fix(cluster): Support `FLUSHALL` while slot migration is in progress by [@​chakaz](https://togithub.com/chakaz) in [https://github.com/dragonflydb/dragonfly/pull/3173](https://togithub.com/dragonflydb/dragonfly/pull/3173) - fix: fix RegisterOnChange methods for journal and db_slice by [@​BorysTheDev](https://togithub.com/BorysTheDev) in [https://github.com/dragonflydb/dragonfly/pull/3171](https://togithub.com/dragonflydb/dragonfly/pull/3171) - fix(generic_family): fix RenameGeneric command for non-string data types by [@​BagritsevichStepan](https://togithub.com/BagritsevichStepan) in [https://github.com/dragonflydb/dragonfly/pull/3181](https://togithub.com/dragonflydb/dragonfly/pull/3181) - fix(server): Rename confusing flag `replica_reconnect_on_master_restart` by [@​chakaz](https://togithub.com/chakaz) in [https://github.com/dragonflydb/dragonfly/pull/3193](https://togithub.com/dragonflydb/dragonfly/pull/3193) - fix(unit tests): fix generic family info test by [@​adiholden](https://togithub.com/adiholden) in [https://github.com/dragonflydb/dragonfly/pull/3187](https://togithub.com/dragonflydb/dragonfly/pull/3187) - test: improve cluster_fuzzy_migration test by [@​BorysTheDev](https://togithub.com/BorysTheDev) in [https://github.com/dragonflydb/dragonfly/pull/3197](https://togithub.com/dragonflydb/dragonfly/pull/3197) - chore(core): Remove DfImpl inside ScoredMap by [@​dranikpg](https://togithub.com/dranikpg) in [https://github.com/dragonflydb/dragonfly/pull/3199](https://togithub.com/dragonflydb/dragonfly/pull/3199) - chore(tiering): Remove IoMgr by [@​dranikpg](https://togithub.com/dranikpg) in [https://github.com/dragonflydb/dragonfly/pull/3198](https://togithub.com/dragonflydb/dragonfly/pull/3198) - test(cluster): Make sure migration maintains TTL by [@​chakaz](https://togithub.com/chakaz) in [https://github.com/dragonflydb/dragonfly/pull/3188](https://togithub.com/dragonflydb/dragonfly/pull/3188) - feat(cluster): Support `STICK` bit in slot migration by [@​chakaz](https://togithub.com/chakaz) in [https://github.com/dragonflydb/dragonfly/pull/3200](https://togithub.com/dragonflydb/dragonfly/pull/3200) - chore: Re-enable previously flaky test by [@​chakaz](https://togithub.com/chakaz) in [https://github.com/dragonflydb/dragonfly/pull/3196](https://togithub.com/dragonflydb/dragonfly/pull/3196) - feat(acl): add support of multiple passwords by [@​kostasrim](https://togithub.com/kostasrim) in [https://github.com/dragonflydb/dragonfly/pull/3189](https://togithub.com/dragonflydb/dragonfly/pull/3189) - chore(tiering): More advanced tiering tests by [@​dranikpg](https://togithub.com/dranikpg) in [https://github.com/dragonflydb/dragonfly/pull/3201](https://togithub.com/dragonflydb/dragonfly/pull/3201) - chore: add replica-priority flag by [@​kostasrim](https://togithub.com/kostasrim) in [https://github.com/dragonflydb/dragonfly/pull/3204](https://togithub.com/dragonflydb/dragonfly/pull/3204) - chore: fix tiering regtest test by [@​dranikpg](https://togithub.com/dranikpg) in [https://github.com/dragonflydb/dragonfly/pull/3208](https://togithub.com/dragonflydb/dragonfly/pull/3208) - feat(generic_family): Assemble RESTORE and STICK commands into one commmand during replication of the RENAME command by [@​BagritsevichStepan](https://togithub.com/BagritsevichStepan) in [https://github.com/dragonflydb/dragonfly/pull/3209](https://togithub.com/dragonflydb/dragonfly/pull/3209) - core(search): Add EF_RUNTIME parameter by [@​dranikpg](https://togithub.com/dranikpg) in [https://github.com/dragonflydb/dragonfly/pull/3206](https://togithub.com/dragonflydb/dragonfly/pull/3206) - fix(sanitizers): failing json test by [@​kostasrim](https://togithub.com/kostasrim) in [https://github.com/dragonflydb/dragonfly/pull/3176](https://togithub.com/dragonflydb/dragonfly/pull/3176) - feat(server): expiry notifications by [@​dranikpg](https://togithub.com/dranikpg) in [https://github.com/dragonflydb/dragonfly/pull/3154](https://togithub.com/dragonflydb/dragonfly/pull/3154) - fix: replicaof_reject_on_load flake by [@​kostasrim](https://togithub.com/kostasrim) in [https://github.com/dragonflydb/dragonfly/pull/3203](https://togithub.com/dragonflydb/dragonfly/pull/3203) - fix(cluster): Don't miss keys when migrating slots by [@​chakaz](https://togithub.com/chakaz) in [https://github.com/dragonflydb/dragonfly/pull/3218](https://togithub.com/dragonflydb/dragonfly/pull/3218) - fix(tiering): Fix pending leak during immediate stash error by [@​dranikpg](https://togithub.com/dranikpg) in [https://github.com/dragonflydb/dragonfly/pull/3219](https://togithub.com/dragonflydb/dragonfly/pull/3219) - chore: provide basic logging to catch possible command errors by [@​romange](https://togithub.com/romange) in [https://github.com/dragonflydb/dragonfly/pull/3213](https://togithub.com/dragonflydb/dragonfly/pull/3213) - chore: disable tiering test by [@​dranikpg](https://togithub.com/dranikpg) in [https://github.com/dragonflydb/dragonfly/pull/3236](https://togithub.com/dragonflydb/dragonfly/pull/3236) - fix(transaction): Don't transactionalize empty EVAL inside EXEC by [@​dranikpg](https://togithub.com/dranikpg) in [https://github.com/dragonflydb/dragonfly/pull/3231](https://togithub.com/dragonflydb/dragonfly/pull/3231) - fix: fix deadlock in DFLYCLUSTER CONFIG command and outgoing migration finaliztion by [@​BorysTheDev](https://togithub.com/BorysTheDev) in [https://github.com/dragonflydb/dragonfly/pull/3239](https://togithub.com/dragonflydb/dragonfly/pull/3239) - chore(tiered): minor fixes + expose buffer allocation type stats by [@​romange](https://togithub.com/romange) in [https://github.com/dragonflydb/dragonfly/pull/3234](https://togithub.com/dragonflydb/dragonfly/pull/3234) - fix(pytest): timed ticker for simpler conditions by [@​dranikpg](https://togithub.com/dranikpg) in [https://github.com/dragonflydb/dragonfly/pull/3242](https://togithub.com/dragonflydb/dragonfly/pull/3242) - fix(server): Fix SCAN deadlock by [@​dranikpg](https://togithub.com/dranikpg) in [https://github.com/dragonflydb/dragonfly/pull/3235](https://togithub.com/dragonflydb/dragonfly/pull/3235) - chore: introduce back-pressure to tiered storage by [@​romange](https://togithub.com/romange) in [https://github.com/dragonflydb/dragonfly/pull/3243](https://togithub.com/dragonflydb/dragonfly/pull/3243) - chore: improve dfly_bench by [@​romange](https://togithub.com/romange) in [https://github.com/dragonflydb/dragonfly/pull/3244](https://togithub.com/dragonflydb/dragonfly/pull/3244) - chore(tiering): External alloc free page chaining by [@​dranikpg](https://togithub.com/dranikpg) in [https://github.com/dragonflydb/dragonfly/pull/3237](https://togithub.com/dragonflydb/dragonfly/pull/3237) - fix: total_stash_overflows statistic by [@​romange](https://togithub.com/romange) in [https://github.com/dragonflydb/dragonfly/pull/3248](https://togithub.com/dragonflydb/dragonfly/pull/3248) - chore: update action versions by [@​romange](https://togithub.com/romange) in [https://github.com/dragonflydb/dragonfly/pull/3250](https://togithub.com/dragonflydb/dragonfly/pull/3250) - chore(lua): Return which undeclared key was accessed by [@​chakaz](https://togithub.com/chakaz) in [https://github.com/dragonflydb/dragonfly/pull/3245](https://togithub.com/dragonflydb/dragonfly/pull/3245) - chore: replace session wide fixtures with scope by [@​kostasrim](https://togithub.com/kostasrim) in [https://github.com/dragonflydb/dragonfly/pull/3251](https://togithub.com/dragonflydb/dragonfly/pull/3251) - chore: pull helio and adjust mimalloc for 32MiB segments by [@​kostasrim](https://togithub.com/kostasrim) in [https://github.com/dragonflydb/dragonfly/pull/3174](https://togithub.com/dragonflydb/dragonfly/pull/3174) - chore: add more logs around the duplicate value case in small_bins by [@​romange](https://togithub.com/romange) in [https://github.com/dragonflydb/dragonfly/pull/3254](https://togithub.com/dragonflydb/dragonfly/pull/3254) - fix: fix move error during migration finalization by [@​BorysTheDev](https://togithub.com/BorysTheDev) in [https://github.com/dragonflydb/dragonfly/pull/3253](https://togithub.com/dragonflydb/dragonfly/pull/3253) - chore: upload all the logs from /tmp by [@​romange](https://togithub.com/romange) in [https://github.com/dragonflydb/dragonfly/pull/3263](https://togithub.com/dragonflydb/dragonfly/pull/3263) - fix(tiering): Throttle snapshot load by [@​dranikpg](https://togithub.com/dranikpg) in [https://github.com/dragonflydb/dragonfly/pull/3249](https://togithub.com/dragonflydb/dragonfly/pull/3249) - chore: initiate grow preemptively by [@​romange](https://togithub.com/romange) in [https://github.com/dragonflydb/dragonfly/pull/3267](https://togithub.com/dragonflydb/dragonfly/pull/3267) - chore(monitoring): add more dashboards + memcached by [@​romange](https://togithub.com/romange) in [https://github.com/dragonflydb/dragonfly/pull/3268](https://togithub.com/dragonflydb/dragonfly/pull/3268) - fix(json_family): fix JSON.GET commmand for JSON legacy mode by [@​BagritsevichStepan](https://togithub.com/BagritsevichStepan) in [https://github.com/dragonflydb/dragonfly/pull/3261](https://togithub.com/dragonflydb/dragonfly/pull/3261) - chore: dfly_bench can send traffic to memcached by [@​romange](https://togithub.com/romange) in [https://github.com/dragonflydb/dragonfly/pull/3271](https://togithub.com/dragonflydb/dragonfly/pull/3271) - chore: print effective QPS of the server. by [@​romange](https://togithub.com/romange) in [https://github.com/dragonflydb/dragonfly/pull/3274](https://togithub.com/dragonflydb/dragonfly/pull/3274) - chore: debugging fixes by [@​romange](https://togithub.com/romange) in [https://github.com/dragonflydb/dragonfly/pull/3275](https://togithub.com/dragonflydb/dragonfly/pull/3275) - chore: more debug checks around tiered storage by [@​romange](https://togithub.com/romange) in [https://github.com/dragonflydb/dragonfly/pull/3277](https://togithub.com/dragonflydb/dragonfly/pull/3277) - chore(license): Fix typo in LICENSE.md text by [@​softmoth](https://togithub.com/softmoth) in [https://github.com/dragonflydb/dragonfly/pull/3283](https://togithub.com/dragonflydb/dragonfly/pull/3283) - fix(test): Verify that save has not finished by [@​chakaz](https://togithub.com/chakaz) in [https://github.com/dragonflydb/dragonfly/pull/3278](https://togithub.com/dragonflydb/dragonfly/pull/3278) - Create scorecard.yml by [@​romange](https://togithub.com/romange) in [https://github.com/dragonflydb/dragonfly/pull/3270](https://togithub.com/dragonflydb/dragonfly/pull/3270) - chore: Disable cluster_mgr_test by [@​chakaz](https://togithub.com/chakaz) in [https://github.com/dragonflydb/dragonfly/pull/3279](https://togithub.com/dragonflydb/dragonfly/pull/3279) - fix: Increase key count to make test more robust by [@​chakaz](https://togithub.com/chakaz) in [https://github.com/dragonflydb/dragonfly/pull/3286](https://togithub.com/dragonflydb/dragonfly/pull/3286) - fix: properly clean tiered state upon flash by [@​romange](https://togithub.com/romange) in [https://github.com/dragonflydb/dragonfly/pull/3281](https://togithub.com/dragonflydb/dragonfly/pull/3281) - fix(bug): crash on takeover and info replication by [@​adiholden](https://togithub.com/adiholden) in [https://github.com/dragonflydb/dragonfly/pull/3282](https://togithub.com/dragonflydb/dragonfly/pull/3282) ##### New Contributors - [@​softmoth](https://togithub.com/softmoth) made their first contribution in [https://github.com/dragonflydb/dragonfly/pull/3283](https://togithub.com/dragonflydb/dragonfly/pull/3283) ##### Huge thanks to all the contributors! ❤️ **Full Changelog**: dragonflydb/dragonfly@v1.19.0...v1.20.0 </details> --- ### Configuration 📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined). 🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied. ♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox. 🔕 **Ignore**: Close this PR and you won't be reminded about these updates again. --- - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box --- This PR has been generated by [Renovate Bot](https://togithub.com/renovatebot/renovate). <!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNy40MjYuMiIsInVwZGF0ZWRJblZlciI6IjM3LjQyNi4yIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6WyJyZW5vdmF0ZS9jb250YWluZXIiLCJ0eXBlL21pbm9yIl19-->
…nfly ( v1.19.2 → v1.20.1 ) (#762) This PR contains the following updates: | Package | Update | Change | |---|---|---| | [docker.dragonflydb.io/dragonflydb/dragonfly](https://togithub.com/dragonflydb/dragonfly) | minor | `v1.19.2` -> `v1.20.1` | --- ### Release Notes <details> <summary>dragonflydb/dragonfly (docker.dragonflydb.io/dragonflydb/dragonfly)</summary> ### [`v1.20.1`](https://togithub.com/dragonflydb/dragonfly/releases/tag/v1.20.1) [Compare Source](https://togithub.com/dragonflydb/dragonfly/compare/v1.20.0...v1.20.1) ##### Dragonfly v1.20.1 This is a patch release. fix: S3 access for loading/saving snapshots ([#​3296](https://togithub.com/dragonflydb/dragonfly/issues/3296)) Signed-off-by: kostas <[email protected]> ### [`v1.20.0`](https://togithub.com/dragonflydb/dragonfly/releases/tag/v1.20.0) [Compare Source](https://togithub.com/dragonflydb/dragonfly/compare/v1.19.2...v1.20.0) ##### Dragonfly v1.20.0 Some prominent changes include: - Improvements around client side caching ([#​3136](https://togithub.com/dragonflydb/dragonfly/issues/3136) [#​3158](https://togithub.com/dragonflydb/dragonfly/issues/3158)) Specifically, rueidis is now supported ([#​2454](https://togithub.com/dragonflydb/dragonfly/issues/2454)) - Improvements around search and vector search APIs, FT.ALTER is now supported ([#​3144](https://togithub.com/dragonflydb/dragonfly/issues/3144), [#​3148](https://togithub.com/dragonflydb/dragonfly/issues/3148), [#​3178](https://togithub.com/dragonflydb/dragonfly/issues/3178), [#​3186](https://togithub.com/dragonflydb/dragonfly/issues/3186)) - JSON.MSET is added ([#​3167](https://togithub.com/dragonflydb/dragonfly/issues/3167)) - Expiry notifications are now supported ([#​3154](https://togithub.com/dragonflydb/dragonfly/issues/3154)) ##### What's Changed - test(cluster_mgr): Add tests for cluster_mgr.py by [@​chakaz](https://togithub.com/chakaz) in [https://github.com/dragonflydb/dragonfly/pull/3129](https://togithub.com/dragonflydb/dragonfly/pull/3129) - chore: get rid of kv_args and replace it with slices to full_args by [@​romange](https://togithub.com/romange) in [https://github.com/dragonflydb/dragonfly/pull/3101](https://togithub.com/dragonflydb/dragonfly/pull/3101) - fix: Fix live-lock in connection test by [@​chakaz](https://togithub.com/chakaz) in [https://github.com/dragonflydb/dragonfly/pull/3135](https://togithub.com/dragonflydb/dragonfly/pull/3135) - chore: call breaker_cb\_ on shutdown by [@​romange](https://togithub.com/romange) in [https://github.com/dragonflydb/dragonfly/pull/3128](https://togithub.com/dragonflydb/dragonfly/pull/3128) - chore: Add option to disable aws dependency by [@​dranikpg](https://togithub.com/dranikpg) in [https://github.com/dragonflydb/dragonfly/pull/3077](https://togithub.com/dragonflydb/dragonfly/pull/3077) - feat(cluster): Add important logs by [@​chakaz](https://togithub.com/chakaz) in [https://github.com/dragonflydb/dragonfly/pull/3138](https://togithub.com/dragonflydb/dragonfly/pull/3138) - chore: a small cleanup by [@​romange](https://togithub.com/romange) in [https://github.com/dragonflydb/dragonfly/pull/3140](https://togithub.com/dragonflydb/dragonfly/pull/3140) - test: skip test_cluster_migration_cancel, it is broken by [@​BorysTheDev](https://togithub.com/BorysTheDev) in [https://github.com/dragonflydb/dragonfly/pull/3146](https://togithub.com/dragonflydb/dragonfly/pull/3146) - chore: update helio by [@​kostasrim](https://togithub.com/kostasrim) in [https://github.com/dragonflydb/dragonfly/pull/3150](https://togithub.com/dragonflydb/dragonfly/pull/3150) - fix: fix bug in cluster/slot_set by [@​BorysTheDev](https://togithub.com/BorysTheDev) in [https://github.com/dragonflydb/dragonfly/pull/3143](https://togithub.com/dragonflydb/dragonfly/pull/3143) - chore: recommit client tracking by [@​kostasrim](https://togithub.com/kostasrim) in [https://github.com/dragonflydb/dragonfly/pull/3136](https://togithub.com/dragonflydb/dragonfly/pull/3136) - feat(search): Tag field options (separator, case sensitivity) by [@​dranikpg](https://togithub.com/dranikpg) in [https://github.com/dragonflydb/dragonfly/pull/3144](https://togithub.com/dragonflydb/dragonfly/pull/3144) - feat(search): basic FT.ALTER by [@​dranikpg](https://togithub.com/dranikpg) in [https://github.com/dragonflydb/dragonfly/pull/3148](https://togithub.com/dragonflydb/dragonfly/pull/3148) - chore: Introduce pipeline back-pressure by [@​romange](https://togithub.com/romange) in [https://github.com/dragonflydb/dragonfly/pull/3152](https://togithub.com/dragonflydb/dragonfly/pull/3152) - fix: lua and client tracking by [@​kostasrim](https://togithub.com/kostasrim) in [https://github.com/dragonflydb/dragonfly/pull/3163](https://togithub.com/dragonflydb/dragonfly/pull/3163) - feat: client tracking optout by [@​kostasrim](https://togithub.com/kostasrim) in [https://github.com/dragonflydb/dragonfly/pull/3158](https://togithub.com/dragonflydb/dragonfly/pull/3158) - feat: add noloop subcommand in client tracking by [@​kostasrim](https://togithub.com/kostasrim) in [https://github.com/dragonflydb/dragonfly/pull/3164](https://togithub.com/dragonflydb/dragonfly/pull/3164) - fix(ci): docker not using iouring by [@​kostasrim](https://togithub.com/kostasrim) in [https://github.com/dragonflydb/dragonfly/pull/3169](https://togithub.com/dragonflydb/dragonfly/pull/3169) - fix(ci): add missing docker option on reg tests workflow by [@​kostasrim](https://togithub.com/kostasrim) in [https://github.com/dragonflydb/dragonfly/pull/3172](https://togithub.com/dragonflydb/dragonfly/pull/3172) - fix: acl compatibility by [@​kostasrim](https://togithub.com/kostasrim) in [https://github.com/dragonflydb/dragonfly/pull/3147](https://togithub.com/dragonflydb/dragonfly/pull/3147) - chore: Streamer is rewritten with async interface by [@​romange](https://togithub.com/romange) in [https://github.com/dragonflydb/dragonfly/pull/3108](https://togithub.com/dragonflydb/dragonfly/pull/3108) - feat(json): MSET by [@​dranikpg](https://togithub.com/dranikpg) in [https://github.com/dragonflydb/dragonfly/pull/3167](https://togithub.com/dragonflydb/dragonfly/pull/3167) - fix(cluster): Wait for flow creation before cancelling it by [@​chakaz](https://togithub.com/chakaz) in [https://github.com/dragonflydb/dragonfly/pull/3159](https://togithub.com/dragonflydb/dragonfly/pull/3159) - chore: improve ft.create for vector search by [@​romange](https://togithub.com/romange) in [https://github.com/dragonflydb/dragonfly/pull/3178](https://togithub.com/dragonflydb/dragonfly/pull/3178) - feat: add incoming migration error processing by [@​BorysTheDev](https://togithub.com/BorysTheDev) in [https://github.com/dragonflydb/dragonfly/pull/3175](https://togithub.com/dragonflydb/dragonfly/pull/3175) - chore: add parsing support for the rest of VECTOR parameters by [@​romange](https://togithub.com/romange) in [https://github.com/dragonflydb/dragonfly/pull/3179](https://togithub.com/dragonflydb/dragonfly/pull/3179) - fix(cluster): Wait before all access to slot migrations by [@​chakaz](https://togithub.com/chakaz) in [https://github.com/dragonflydb/dragonfly/pull/3180](https://togithub.com/dragonflydb/dragonfly/pull/3180) - fix(server): fix bug in replication on cached mode by [@​adiholden](https://togithub.com/adiholden) in [https://github.com/dragonflydb/dragonfly/pull/3156](https://togithub.com/dragonflydb/dragonfly/pull/3156) - chore: small acl compat changes by [@​kostasrim](https://togithub.com/kostasrim) in [https://github.com/dragonflydb/dragonfly/pull/3177](https://togithub.com/dragonflydb/dragonfly/pull/3177) - chore: allow calling Context::ReportError from I/O dispatch fiber by [@​romange](https://togithub.com/romange) in [https://github.com/dragonflydb/dragonfly/pull/3182](https://togithub.com/dragonflydb/dragonfly/pull/3182) - chore: add a lexer test covering KNN query by [@​romange](https://togithub.com/romange) in [https://github.com/dragonflydb/dragonfly/pull/3185](https://togithub.com/dragonflydb/dragonfly/pull/3185) - chore(search): Add \__vector_score alias by [@​dranikpg](https://togithub.com/dranikpg) in [https://github.com/dragonflydb/dragonfly/pull/3186](https://togithub.com/dragonflydb/dragonfly/pull/3186) - chore: Refactor string span management by [@​dranikpg](https://togithub.com/dranikpg) in [https://github.com/dragonflydb/dragonfly/pull/3165](https://togithub.com/dragonflydb/dragonfly/pull/3165) - chore(ci): run replication tests on arm by [@​kostasrim](https://togithub.com/kostasrim) in [https://github.com/dragonflydb/dragonfly/pull/3168](https://togithub.com/dragonflydb/dragonfly/pull/3168) - chore(search): improve parser error reporting by [@​romange](https://togithub.com/romange) in [https://github.com/dragonflydb/dragonfly/pull/3184](https://togithub.com/dragonflydb/dragonfly/pull/3184) - fix(reply_builder): remove virtual modifier in SendError(ErrorReply) method by [@​BagritsevichStepan](https://togithub.com/BagritsevichStepan) in [https://github.com/dragonflydb/dragonfly/pull/3191](https://togithub.com/dragonflydb/dragonfly/pull/3191) - fix(cluster): Support `FLUSHALL` while slot migration is in progress by [@​chakaz](https://togithub.com/chakaz) in [https://github.com/dragonflydb/dragonfly/pull/3173](https://togithub.com/dragonflydb/dragonfly/pull/3173) - fix: fix RegisterOnChange methods for journal and db_slice by [@​BorysTheDev](https://togithub.com/BorysTheDev) in [https://github.com/dragonflydb/dragonfly/pull/3171](https://togithub.com/dragonflydb/dragonfly/pull/3171) - fix(generic_family): fix RenameGeneric command for non-string data types by [@​BagritsevichStepan](https://togithub.com/BagritsevichStepan) in [https://github.com/dragonflydb/dragonfly/pull/3181](https://togithub.com/dragonflydb/dragonfly/pull/3181) - fix(server): Rename confusing flag `replica_reconnect_on_master_restart` by [@​chakaz](https://togithub.com/chakaz) in [https://github.com/dragonflydb/dragonfly/pull/3193](https://togithub.com/dragonflydb/dragonfly/pull/3193) - fix(unit tests): fix generic family info test by [@​adiholden](https://togithub.com/adiholden) in [https://github.com/dragonflydb/dragonfly/pull/3187](https://togithub.com/dragonflydb/dragonfly/pull/3187) - test: improve cluster_fuzzy_migration test by [@​BorysTheDev](https://togithub.com/BorysTheDev) in [https://github.com/dragonflydb/dragonfly/pull/3197](https://togithub.com/dragonflydb/dragonfly/pull/3197) - chore(core): Remove DfImpl inside ScoredMap by [@​dranikpg](https://togithub.com/dranikpg) in [https://github.com/dragonflydb/dragonfly/pull/3199](https://togithub.com/dragonflydb/dragonfly/pull/3199) - chore(tiering): Remove IoMgr by [@​dranikpg](https://togithub.com/dranikpg) in [https://github.com/dragonflydb/dragonfly/pull/3198](https://togithub.com/dragonflydb/dragonfly/pull/3198) - test(cluster): Make sure migration maintains TTL by [@​chakaz](https://togithub.com/chakaz) in [https://github.com/dragonflydb/dragonfly/pull/3188](https://togithub.com/dragonflydb/dragonfly/pull/3188) - feat(cluster): Support `STICK` bit in slot migration by [@​chakaz](https://togithub.com/chakaz) in [https://github.com/dragonflydb/dragonfly/pull/3200](https://togithub.com/dragonflydb/dragonfly/pull/3200) - chore: Re-enable previously flaky test by [@​chakaz](https://togithub.com/chakaz) in [https://github.com/dragonflydb/dragonfly/pull/3196](https://togithub.com/dragonflydb/dragonfly/pull/3196) - feat(acl): add support of multiple passwords by [@​kostasrim](https://togithub.com/kostasrim) in [https://github.com/dragonflydb/dragonfly/pull/3189](https://togithub.com/dragonflydb/dragonfly/pull/3189) - chore(tiering): More advanced tiering tests by [@​dranikpg](https://togithub.com/dranikpg) in [https://github.com/dragonflydb/dragonfly/pull/3201](https://togithub.com/dragonflydb/dragonfly/pull/3201) - chore: add replica-priority flag by [@​kostasrim](https://togithub.com/kostasrim) in [https://github.com/dragonflydb/dragonfly/pull/3204](https://togithub.com/dragonflydb/dragonfly/pull/3204) - chore: fix tiering regtest test by [@​dranikpg](https://togithub.com/dranikpg) in [https://github.com/dragonflydb/dragonfly/pull/3208](https://togithub.com/dragonflydb/dragonfly/pull/3208) - feat(generic_family): Assemble RESTORE and STICK commands into one commmand during replication of the RENAME command by [@​BagritsevichStepan](https://togithub.com/BagritsevichStepan) in [https://github.com/dragonflydb/dragonfly/pull/3209](https://togithub.com/dragonflydb/dragonfly/pull/3209) - core(search): Add EF_RUNTIME parameter by [@​dranikpg](https://togithub.com/dranikpg) in [https://github.com/dragonflydb/dragonfly/pull/3206](https://togithub.com/dragonflydb/dragonfly/pull/3206) - fix(sanitizers): failing json test by [@​kostasrim](https://togithub.com/kostasrim) in [https://github.com/dragonflydb/dragonfly/pull/3176](https://togithub.com/dragonflydb/dragonfly/pull/3176) - feat(server): expiry notifications by [@​dranikpg](https://togithub.com/dranikpg) in [https://github.com/dragonflydb/dragonfly/pull/3154](https://togithub.com/dragonflydb/dragonfly/pull/3154) - fix: replicaof_reject_on_load flake by [@​kostasrim](https://togithub.com/kostasrim) in [https://github.com/dragonflydb/dragonfly/pull/3203](https://togithub.com/dragonflydb/dragonfly/pull/3203) - fix(cluster): Don't miss keys when migrating slots by [@​chakaz](https://togithub.com/chakaz) in [https://github.com/dragonflydb/dragonfly/pull/3218](https://togithub.com/dragonflydb/dragonfly/pull/3218) - fix(tiering): Fix pending leak during immediate stash error by [@​dranikpg](https://togithub.com/dranikpg) in [https://github.com/dragonflydb/dragonfly/pull/3219](https://togithub.com/dragonflydb/dragonfly/pull/3219) - chore: provide basic logging to catch possible command errors by [@​romange](https://togithub.com/romange) in [https://github.com/dragonflydb/dragonfly/pull/3213](https://togithub.com/dragonflydb/dragonfly/pull/3213) - chore: disable tiering test by [@​dranikpg](https://togithub.com/dranikpg) in [https://github.com/dragonflydb/dragonfly/pull/3236](https://togithub.com/dragonflydb/dragonfly/pull/3236) - fix(transaction): Don't transactionalize empty EVAL inside EXEC by [@​dranikpg](https://togithub.com/dranikpg) in [https://github.com/dragonflydb/dragonfly/pull/3231](https://togithub.com/dragonflydb/dragonfly/pull/3231) - fix: fix deadlock in DFLYCLUSTER CONFIG command and outgoing migration finaliztion by [@​BorysTheDev](https://togithub.com/BorysTheDev) in [https://github.com/dragonflydb/dragonfly/pull/3239](https://togithub.com/dragonflydb/dragonfly/pull/3239) - chore(tiered): minor fixes + expose buffer allocation type stats by [@​romange](https://togithub.com/romange) in [https://github.com/dragonflydb/dragonfly/pull/3234](https://togithub.com/dragonflydb/dragonfly/pull/3234) - fix(pytest): timed ticker for simpler conditions by [@​dranikpg](https://togithub.com/dranikpg) in [https://github.com/dragonflydb/dragonfly/pull/3242](https://togithub.com/dragonflydb/dragonfly/pull/3242) - fix(server): Fix SCAN deadlock by [@​dranikpg](https://togithub.com/dranikpg) in [https://github.com/dragonflydb/dragonfly/pull/3235](https://togithub.com/dragonflydb/dragonfly/pull/3235) - chore: introduce back-pressure to tiered storage by [@​romange](https://togithub.com/romange) in [https://github.com/dragonflydb/dragonfly/pull/3243](https://togithub.com/dragonflydb/dragonfly/pull/3243) - chore: improve dfly_bench by [@​romange](https://togithub.com/romange) in [https://github.com/dragonflydb/dragonfly/pull/3244](https://togithub.com/dragonflydb/dragonfly/pull/3244) - chore(tiering): External alloc free page chaining by [@​dranikpg](https://togithub.com/dranikpg) in [https://github.com/dragonflydb/dragonfly/pull/3237](https://togithub.com/dragonflydb/dragonfly/pull/3237) - fix: total_stash_overflows statistic by [@​romange](https://togithub.com/romange) in [https://github.com/dragonflydb/dragonfly/pull/3248](https://togithub.com/dragonflydb/dragonfly/pull/3248) - chore: update action versions by [@​romange](https://togithub.com/romange) in [https://github.com/dragonflydb/dragonfly/pull/3250](https://togithub.com/dragonflydb/dragonfly/pull/3250) - chore(lua): Return which undeclared key was accessed by [@​chakaz](https://togithub.com/chakaz) in [https://github.com/dragonflydb/dragonfly/pull/3245](https://togithub.com/dragonflydb/dragonfly/pull/3245) - chore: replace session wide fixtures with scope by [@​kostasrim](https://togithub.com/kostasrim) in [https://github.com/dragonflydb/dragonfly/pull/3251](https://togithub.com/dragonflydb/dragonfly/pull/3251) - chore: pull helio and adjust mimalloc for 32MiB segments by [@​kostasrim](https://togithub.com/kostasrim) in [https://github.com/dragonflydb/dragonfly/pull/3174](https://togithub.com/dragonflydb/dragonfly/pull/3174) - chore: add more logs around the duplicate value case in small_bins by [@​romange](https://togithub.com/romange) in [https://github.com/dragonflydb/dragonfly/pull/3254](https://togithub.com/dragonflydb/dragonfly/pull/3254) - fix: fix move error during migration finalization by [@​BorysTheDev](https://togithub.com/BorysTheDev) in [https://github.com/dragonflydb/dragonfly/pull/3253](https://togithub.com/dragonflydb/dragonfly/pull/3253) - chore: upload all the logs from /tmp by [@​romange](https://togithub.com/romange) in [https://github.com/dragonflydb/dragonfly/pull/3263](https://togithub.com/dragonflydb/dragonfly/pull/3263) - fix(tiering): Throttle snapshot load by [@​dranikpg](https://togithub.com/dranikpg) in [https://github.com/dragonflydb/dragonfly/pull/3249](https://togithub.com/dragonflydb/dragonfly/pull/3249) - chore: initiate grow preemptively by [@​romange](https://togithub.com/romange) in [https://github.com/dragonflydb/dragonfly/pull/3267](https://togithub.com/dragonflydb/dragonfly/pull/3267) - chore(monitoring): add more dashboards + memcached by [@​romange](https://togithub.com/romange) in [https://github.com/dragonflydb/dragonfly/pull/3268](https://togithub.com/dragonflydb/dragonfly/pull/3268) - fix(json_family): fix JSON.GET commmand for JSON legacy mode by [@​BagritsevichStepan](https://togithub.com/BagritsevichStepan) in [https://github.com/dragonflydb/dragonfly/pull/3261](https://togithub.com/dragonflydb/dragonfly/pull/3261) - chore: dfly_bench can send traffic to memcached by [@​romange](https://togithub.com/romange) in [https://github.com/dragonflydb/dragonfly/pull/3271](https://togithub.com/dragonflydb/dragonfly/pull/3271) - chore: print effective QPS of the server. by [@​romange](https://togithub.com/romange) in [https://github.com/dragonflydb/dragonfly/pull/3274](https://togithub.com/dragonflydb/dragonfly/pull/3274) - chore: debugging fixes by [@​romange](https://togithub.com/romange) in [https://github.com/dragonflydb/dragonfly/pull/3275](https://togithub.com/dragonflydb/dragonfly/pull/3275) - chore: more debug checks around tiered storage by [@​romange](https://togithub.com/romange) in [https://github.com/dragonflydb/dragonfly/pull/3277](https://togithub.com/dragonflydb/dragonfly/pull/3277) - chore(license): Fix typo in LICENSE.md text by [@​softmoth](https://togithub.com/softmoth) in [https://github.com/dragonflydb/dragonfly/pull/3283](https://togithub.com/dragonflydb/dragonfly/pull/3283) - fix(test): Verify that save has not finished by [@​chakaz](https://togithub.com/chakaz) in [https://github.com/dragonflydb/dragonfly/pull/3278](https://togithub.com/dragonflydb/dragonfly/pull/3278) - Create scorecard.yml by [@​romange](https://togithub.com/romange) in [https://github.com/dragonflydb/dragonfly/pull/3270](https://togithub.com/dragonflydb/dragonfly/pull/3270) - chore: Disable cluster_mgr_test by [@​chakaz](https://togithub.com/chakaz) in [https://github.com/dragonflydb/dragonfly/pull/3279](https://togithub.com/dragonflydb/dragonfly/pull/3279) - fix: Increase key count to make test more robust by [@​chakaz](https://togithub.com/chakaz) in [https://github.com/dragonflydb/dragonfly/pull/3286](https://togithub.com/dragonflydb/dragonfly/pull/3286) - fix: properly clean tiered state upon flash by [@​romange](https://togithub.com/romange) in [https://github.com/dragonflydb/dragonfly/pull/3281](https://togithub.com/dragonflydb/dragonfly/pull/3281) - fix(bug): crash on takeover and info replication by [@​adiholden](https://togithub.com/adiholden) in [https://github.com/dragonflydb/dragonfly/pull/3282](https://togithub.com/dragonflydb/dragonfly/pull/3282) ##### New Contributors - [@​softmoth](https://togithub.com/softmoth) made their first contribution in [https://github.com/dragonflydb/dragonfly/pull/3283](https://togithub.com/dragonflydb/dragonfly/pull/3283) ##### Huge thanks to all the contributors! ❤️ **Full Changelog**: dragonflydb/dragonfly@v1.19.0...v1.20.0 </details> --- ### Configuration 📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined). 🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied. ♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox. 🔕 **Ignore**: Close this PR and you won't be reminded about these updates again. --- - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box --- This PR has been generated by [Renovate Bot](https://togithub.com/renovatebot/renovate). <!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNy40MjYuMiIsInVwZGF0ZWRJblZlciI6IjM3LjQyNi40IiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6WyJyZW5vdmF0ZS9jb250YWluZXIiLCJ0eXBlL21pbm9yIl19--> Co-authored-by: kireque-bot[bot] <143391978+kireque-bot[bot]@users.noreply.github.com>
…20.1 ) (#5021) This PR contains the following updates: | Package | Update | Change | |---|---|---| | [ghcr.io/dragonflydb/dragonfly](https://togithub.com/dragonflydb/dragonfly) | minor | `v1.19.2` -> `v1.20.1` | --- ### Release Notes <details> <summary>dragonflydb/dragonfly (ghcr.io/dragonflydb/dragonfly)</summary> ### [`v1.20.1`](https://togithub.com/dragonflydb/dragonfly/releases/tag/v1.20.1) [Compare Source](https://togithub.com/dragonflydb/dragonfly/compare/v1.20.0...v1.20.1) ##### Dragonfly v1.20.1 This is a patch release. fix: S3 access for loading/saving snapshots ([#​3296](https://togithub.com/dragonflydb/dragonfly/issues/3296)) Signed-off-by: kostas <[email protected]> ### [`v1.20.0`](https://togithub.com/dragonflydb/dragonfly/releases/tag/v1.20.0) [Compare Source](https://togithub.com/dragonflydb/dragonfly/compare/v1.19.2...v1.20.0) ##### Dragonfly v1.20.0 Some prominent changes include: - Improvements around client side caching ([#​3136](https://togithub.com/dragonflydb/dragonfly/issues/3136) [#​3158](https://togithub.com/dragonflydb/dragonfly/issues/3158)) Specifically, rueidis is now supported ([#​2454](https://togithub.com/dragonflydb/dragonfly/issues/2454)) - Improvements around search and vector search APIs, FT.ALTER is now supported ([#​3144](https://togithub.com/dragonflydb/dragonfly/issues/3144), [#​3148](https://togithub.com/dragonflydb/dragonfly/issues/3148), [#​3178](https://togithub.com/dragonflydb/dragonfly/issues/3178), [#​3186](https://togithub.com/dragonflydb/dragonfly/issues/3186)) - JSON.MSET is added ([#​3167](https://togithub.com/dragonflydb/dragonfly/issues/3167)) - Expiry notifications are now supported ([#​3154](https://togithub.com/dragonflydb/dragonfly/issues/3154)) ##### What's Changed - test(cluster_mgr): Add tests for cluster_mgr.py by [@​chakaz](https://togithub.com/chakaz) in [https://github.com/dragonflydb/dragonfly/pull/3129](https://togithub.com/dragonflydb/dragonfly/pull/3129) - chore: get rid of kv_args and replace it with slices to full_args by [@​romange](https://togithub.com/romange) in [https://github.com/dragonflydb/dragonfly/pull/3101](https://togithub.com/dragonflydb/dragonfly/pull/3101) - fix: Fix live-lock in connection test by [@​chakaz](https://togithub.com/chakaz) in [https://github.com/dragonflydb/dragonfly/pull/3135](https://togithub.com/dragonflydb/dragonfly/pull/3135) - chore: call breaker_cb\_ on shutdown by [@​romange](https://togithub.com/romange) in [https://github.com/dragonflydb/dragonfly/pull/3128](https://togithub.com/dragonflydb/dragonfly/pull/3128) - chore: Add option to disable aws dependency by [@​dranikpg](https://togithub.com/dranikpg) in [https://github.com/dragonflydb/dragonfly/pull/3077](https://togithub.com/dragonflydb/dragonfly/pull/3077) - feat(cluster): Add important logs by [@​chakaz](https://togithub.com/chakaz) in [https://github.com/dragonflydb/dragonfly/pull/3138](https://togithub.com/dragonflydb/dragonfly/pull/3138) - chore: a small cleanup by [@​romange](https://togithub.com/romange) in [https://github.com/dragonflydb/dragonfly/pull/3140](https://togithub.com/dragonflydb/dragonfly/pull/3140) - test: skip test_cluster_migration_cancel, it is broken by [@​BorysTheDev](https://togithub.com/BorysTheDev) in [https://github.com/dragonflydb/dragonfly/pull/3146](https://togithub.com/dragonflydb/dragonfly/pull/3146) - chore: update helio by [@​kostasrim](https://togithub.com/kostasrim) in [https://github.com/dragonflydb/dragonfly/pull/3150](https://togithub.com/dragonflydb/dragonfly/pull/3150) - fix: fix bug in cluster/slot_set by [@​BorysTheDev](https://togithub.com/BorysTheDev) in [https://github.com/dragonflydb/dragonfly/pull/3143](https://togithub.com/dragonflydb/dragonfly/pull/3143) - chore: recommit client tracking by [@​kostasrim](https://togithub.com/kostasrim) in [https://github.com/dragonflydb/dragonfly/pull/3136](https://togithub.com/dragonflydb/dragonfly/pull/3136) - feat(search): Tag field options (separator, case sensitivity) by [@​dranikpg](https://togithub.com/dranikpg) in [https://github.com/dragonflydb/dragonfly/pull/3144](https://togithub.com/dragonflydb/dragonfly/pull/3144) - feat(search): basic FT.ALTER by [@​dranikpg](https://togithub.com/dranikpg) in [https://github.com/dragonflydb/dragonfly/pull/3148](https://togithub.com/dragonflydb/dragonfly/pull/3148) - chore: Introduce pipeline back-pressure by [@​romange](https://togithub.com/romange) in [https://github.com/dragonflydb/dragonfly/pull/3152](https://togithub.com/dragonflydb/dragonfly/pull/3152) - fix: lua and client tracking by [@​kostasrim](https://togithub.com/kostasrim) in [https://github.com/dragonflydb/dragonfly/pull/3163](https://togithub.com/dragonflydb/dragonfly/pull/3163) - feat: client tracking optout by [@​kostasrim](https://togithub.com/kostasrim) in [https://github.com/dragonflydb/dragonfly/pull/3158](https://togithub.com/dragonflydb/dragonfly/pull/3158) - feat: add noloop subcommand in client tracking by [@​kostasrim](https://togithub.com/kostasrim) in [https://github.com/dragonflydb/dragonfly/pull/3164](https://togithub.com/dragonflydb/dragonfly/pull/3164) - fix(ci): docker not using iouring by [@​kostasrim](https://togithub.com/kostasrim) in [https://github.com/dragonflydb/dragonfly/pull/3169](https://togithub.com/dragonflydb/dragonfly/pull/3169) - fix(ci): add missing docker option on reg tests workflow by [@​kostasrim](https://togithub.com/kostasrim) in [https://github.com/dragonflydb/dragonfly/pull/3172](https://togithub.com/dragonflydb/dragonfly/pull/3172) - fix: acl compatibility by [@​kostasrim](https://togithub.com/kostasrim) in [https://github.com/dragonflydb/dragonfly/pull/3147](https://togithub.com/dragonflydb/dragonfly/pull/3147) - chore: Streamer is rewritten with async interface by [@​romange](https://togithub.com/romange) in [https://github.com/dragonflydb/dragonfly/pull/3108](https://togithub.com/dragonflydb/dragonfly/pull/3108) - feat(json): MSET by [@​dranikpg](https://togithub.com/dranikpg) in [https://github.com/dragonflydb/dragonfly/pull/3167](https://togithub.com/dragonflydb/dragonfly/pull/3167) - fix(cluster): Wait for flow creation before cancelling it by [@​chakaz](https://togithub.com/chakaz) in [https://github.com/dragonflydb/dragonfly/pull/3159](https://togithub.com/dragonflydb/dragonfly/pull/3159) - chore: improve ft.create for vector search by [@​romange](https://togithub.com/romange) in [https://github.com/dragonflydb/dragonfly/pull/3178](https://togithub.com/dragonflydb/dragonfly/pull/3178) - feat: add incoming migration error processing by [@​BorysTheDev](https://togithub.com/BorysTheDev) in [https://github.com/dragonflydb/dragonfly/pull/3175](https://togithub.com/dragonflydb/dragonfly/pull/3175) - chore: add parsing support for the rest of VECTOR parameters by [@​romange](https://togithub.com/romange) in [https://github.com/dragonflydb/dragonfly/pull/3179](https://togithub.com/dragonflydb/dragonfly/pull/3179) - fix(cluster): Wait before all access to slot migrations by [@​chakaz](https://togithub.com/chakaz) in [https://github.com/dragonflydb/dragonfly/pull/3180](https://togithub.com/dragonflydb/dragonfly/pull/3180) - fix(server): fix bug in replication on cached mode by [@​adiholden](https://togithub.com/adiholden) in [https://github.com/dragonflydb/dragonfly/pull/3156](https://togithub.com/dragonflydb/dragonfly/pull/3156) - chore: small acl compat changes by [@​kostasrim](https://togithub.com/kostasrim) in [https://github.com/dragonflydb/dragonfly/pull/3177](https://togithub.com/dragonflydb/dragonfly/pull/3177) - chore: allow calling Context::ReportError from I/O dispatch fiber by [@​romange](https://togithub.com/romange) in [https://github.com/dragonflydb/dragonfly/pull/3182](https://togithub.com/dragonflydb/dragonfly/pull/3182) - chore: add a lexer test covering KNN query by [@​romange](https://togithub.com/romange) in [https://github.com/dragonflydb/dragonfly/pull/3185](https://togithub.com/dragonflydb/dragonfly/pull/3185) - chore(search): Add \__vector_score alias by [@​dranikpg](https://togithub.com/dranikpg) in [https://github.com/dragonflydb/dragonfly/pull/3186](https://togithub.com/dragonflydb/dragonfly/pull/3186) - chore: Refactor string span management by [@​dranikpg](https://togithub.com/dranikpg) in [https://github.com/dragonflydb/dragonfly/pull/3165](https://togithub.com/dragonflydb/dragonfly/pull/3165) - chore(ci): run replication tests on arm by [@​kostasrim](https://togithub.com/kostasrim) in [https://github.com/dragonflydb/dragonfly/pull/3168](https://togithub.com/dragonflydb/dragonfly/pull/3168) - chore(search): improve parser error reporting by [@​romange](https://togithub.com/romange) in [https://github.com/dragonflydb/dragonfly/pull/3184](https://togithub.com/dragonflydb/dragonfly/pull/3184) - fix(reply_builder): remove virtual modifier in SendError(ErrorReply) method by [@​BagritsevichStepan](https://togithub.com/BagritsevichStepan) in [https://github.com/dragonflydb/dragonfly/pull/3191](https://togithub.com/dragonflydb/dragonfly/pull/3191) - fix(cluster): Support `FLUSHALL` while slot migration is in progress by [@​chakaz](https://togithub.com/chakaz) in [https://github.com/dragonflydb/dragonfly/pull/3173](https://togithub.com/dragonflydb/dragonfly/pull/3173) - fix: fix RegisterOnChange methods for journal and db_slice by [@​BorysTheDev](https://togithub.com/BorysTheDev) in [https://github.com/dragonflydb/dragonfly/pull/3171](https://togithub.com/dragonflydb/dragonfly/pull/3171) - fix(generic_family): fix RenameGeneric command for non-string data types by [@​BagritsevichStepan](https://togithub.com/BagritsevichStepan) in [https://github.com/dragonflydb/dragonfly/pull/3181](https://togithub.com/dragonflydb/dragonfly/pull/3181) - fix(server): Rename confusing flag `replica_reconnect_on_master_restart` by [@​chakaz](https://togithub.com/chakaz) in [https://github.com/dragonflydb/dragonfly/pull/3193](https://togithub.com/dragonflydb/dragonfly/pull/3193) - fix(unit tests): fix generic family info test by [@​adiholden](https://togithub.com/adiholden) in [https://github.com/dragonflydb/dragonfly/pull/3187](https://togithub.com/dragonflydb/dragonfly/pull/3187) - test: improve cluster_fuzzy_migration test by [@​BorysTheDev](https://togithub.com/BorysTheDev) in [https://github.com/dragonflydb/dragonfly/pull/3197](https://togithub.com/dragonflydb/dragonfly/pull/3197) - chore(core): Remove DfImpl inside ScoredMap by [@​dranikpg](https://togithub.com/dranikpg) in [https://github.com/dragonflydb/dragonfly/pull/3199](https://togithub.com/dragonflydb/dragonfly/pull/3199) - chore(tiering): Remove IoMgr by [@​dranikpg](https://togithub.com/dranikpg) in [https://github.com/dragonflydb/dragonfly/pull/3198](https://togithub.com/dragonflydb/dragonfly/pull/3198) - test(cluster): Make sure migration maintains TTL by [@​chakaz](https://togithub.com/chakaz) in [https://github.com/dragonflydb/dragonfly/pull/3188](https://togithub.com/dragonflydb/dragonfly/pull/3188) - feat(cluster): Support `STICK` bit in slot migration by [@​chakaz](https://togithub.com/chakaz) in [https://github.com/dragonflydb/dragonfly/pull/3200](https://togithub.com/dragonflydb/dragonfly/pull/3200) - chore: Re-enable previously flaky test by [@​chakaz](https://togithub.com/chakaz) in [https://github.com/dragonflydb/dragonfly/pull/3196](https://togithub.com/dragonflydb/dragonfly/pull/3196) - feat(acl): add support of multiple passwords by [@​kostasrim](https://togithub.com/kostasrim) in [https://github.com/dragonflydb/dragonfly/pull/3189](https://togithub.com/dragonflydb/dragonfly/pull/3189) - chore(tiering): More advanced tiering tests by [@​dranikpg](https://togithub.com/dranikpg) in [https://github.com/dragonflydb/dragonfly/pull/3201](https://togithub.com/dragonflydb/dragonfly/pull/3201) - chore: add replica-priority flag by [@​kostasrim](https://togithub.com/kostasrim) in [https://github.com/dragonflydb/dragonfly/pull/3204](https://togithub.com/dragonflydb/dragonfly/pull/3204) - chore: fix tiering regtest test by [@​dranikpg](https://togithub.com/dranikpg) in [https://github.com/dragonflydb/dragonfly/pull/3208](https://togithub.com/dragonflydb/dragonfly/pull/3208) - feat(generic_family): Assemble RESTORE and STICK commands into one commmand during replication of the RENAME command by [@​BagritsevichStepan](https://togithub.com/BagritsevichStepan) in [https://github.com/dragonflydb/dragonfly/pull/3209](https://togithub.com/dragonflydb/dragonfly/pull/3209) - core(search): Add EF_RUNTIME parameter by [@​dranikpg](https://togithub.com/dranikpg) in [https://github.com/dragonflydb/dragonfly/pull/3206](https://togithub.com/dragonflydb/dragonfly/pull/3206) - fix(sanitizers): failing json test by [@​kostasrim](https://togithub.com/kostasrim) in [https://github.com/dragonflydb/dragonfly/pull/3176](https://togithub.com/dragonflydb/dragonfly/pull/3176) - feat(server): expiry notifications by [@​dranikpg](https://togithub.com/dranikpg) in [https://github.com/dragonflydb/dragonfly/pull/3154](https://togithub.com/dragonflydb/dragonfly/pull/3154) - fix: replicaof_reject_on_load flake by [@​kostasrim](https://togithub.com/kostasrim) in [https://github.com/dragonflydb/dragonfly/pull/3203](https://togithub.com/dragonflydb/dragonfly/pull/3203) - fix(cluster): Don't miss keys when migrating slots by [@​chakaz](https://togithub.com/chakaz) in [https://github.com/dragonflydb/dragonfly/pull/3218](https://togithub.com/dragonflydb/dragonfly/pull/3218) - fix(tiering): Fix pending leak during immediate stash error by [@​dranikpg](https://togithub.com/dranikpg) in [https://github.com/dragonflydb/dragonfly/pull/3219](https://togithub.com/dragonflydb/dragonfly/pull/3219) - chore: provide basic logging to catch possible command errors by [@​romange](https://togithub.com/romange) in [https://github.com/dragonflydb/dragonfly/pull/3213](https://togithub.com/dragonflydb/dragonfly/pull/3213) - chore: disable tiering test by [@​dranikpg](https://togithub.com/dranikpg) in [https://github.com/dragonflydb/dragonfly/pull/3236](https://togithub.com/dragonflydb/dragonfly/pull/3236) - fix(transaction): Don't transactionalize empty EVAL inside EXEC by [@​dranikpg](https://togithub.com/dranikpg) in [https://github.com/dragonflydb/dragonfly/pull/3231](https://togithub.com/dragonflydb/dragonfly/pull/3231) - fix: fix deadlock in DFLYCLUSTER CONFIG command and outgoing migration finaliztion by [@​BorysTheDev](https://togithub.com/BorysTheDev) in [https://github.com/dragonflydb/dragonfly/pull/3239](https://togithub.com/dragonflydb/dragonfly/pull/3239) - chore(tiered): minor fixes + expose buffer allocation type stats by [@​romange](https://togithub.com/romange) in [https://github.com/dragonflydb/dragonfly/pull/3234](https://togithub.com/dragonflydb/dragonfly/pull/3234) - fix(pytest): timed ticker for simpler conditions by [@​dranikpg](https://togithub.com/dranikpg) in [https://github.com/dragonflydb/dragonfly/pull/3242](https://togithub.com/dragonflydb/dragonfly/pull/3242) - fix(server): Fix SCAN deadlock by [@​dranikpg](https://togithub.com/dranikpg) in [https://github.com/dragonflydb/dragonfly/pull/3235](https://togithub.com/dragonflydb/dragonfly/pull/3235) - chore: introduce back-pressure to tiered storage by [@​romange](https://togithub.com/romange) in [https://github.com/dragonflydb/dragonfly/pull/3243](https://togithub.com/dragonflydb/dragonfly/pull/3243) - chore: improve dfly_bench by [@​romange](https://togithub.com/romange) in [https://github.com/dragonflydb/dragonfly/pull/3244](https://togithub.com/dragonflydb/dragonfly/pull/3244) - chore(tiering): External alloc free page chaining by [@​dranikpg](https://togithub.com/dranikpg) in [https://github.com/dragonflydb/dragonfly/pull/3237](https://togithub.com/dragonflydb/dragonfly/pull/3237) - fix: total_stash_overflows statistic by [@​romange](https://togithub.com/romange) in [https://github.com/dragonflydb/dragonfly/pull/3248](https://togithub.com/dragonflydb/dragonfly/pull/3248) - chore: update action versions by [@​romange](https://togithub.com/romange) in [https://github.com/dragonflydb/dragonfly/pull/3250](https://togithub.com/dragonflydb/dragonfly/pull/3250) - chore(lua): Return which undeclared key was accessed by [@​chakaz](https://togithub.com/chakaz) in [https://github.com/dragonflydb/dragonfly/pull/3245](https://togithub.com/dragonflydb/dragonfly/pull/3245) - chore: replace session wide fixtures with scope by [@​kostasrim](https://togithub.com/kostasrim) in [https://github.com/dragonflydb/dragonfly/pull/3251](https://togithub.com/dragonflydb/dragonfly/pull/3251) - chore: pull helio and adjust mimalloc for 32MiB segments by [@​kostasrim](https://togithub.com/kostasrim) in [https://github.com/dragonflydb/dragonfly/pull/3174](https://togithub.com/dragonflydb/dragonfly/pull/3174) - chore: add more logs around the duplicate value case in small_bins by [@​romange](https://togithub.com/romange) in [https://github.com/dragonflydb/dragonfly/pull/3254](https://togithub.com/dragonflydb/dragonfly/pull/3254) - fix: fix move error during migration finalization by [@​BorysTheDev](https://togithub.com/BorysTheDev) in [https://github.com/dragonflydb/dragonfly/pull/3253](https://togithub.com/dragonflydb/dragonfly/pull/3253) - chore: upload all the logs from /tmp by [@​romange](https://togithub.com/romange) in [https://github.com/dragonflydb/dragonfly/pull/3263](https://togithub.com/dragonflydb/dragonfly/pull/3263) - fix(tiering): Throttle snapshot load by [@​dranikpg](https://togithub.com/dranikpg) in [https://github.com/dragonflydb/dragonfly/pull/3249](https://togithub.com/dragonflydb/dragonfly/pull/3249) - chore: initiate grow preemptively by [@​romange](https://togithub.com/romange) in [https://github.com/dragonflydb/dragonfly/pull/3267](https://togithub.com/dragonflydb/dragonfly/pull/3267) - chore(monitoring): add more dashboards + memcached by [@​romange](https://togithub.com/romange) in [https://github.com/dragonflydb/dragonfly/pull/3268](https://togithub.com/dragonflydb/dragonfly/pull/3268) - fix(json_family): fix JSON.GET commmand for JSON legacy mode by [@​BagritsevichStepan](https://togithub.com/BagritsevichStepan) in [https://github.com/dragonflydb/dragonfly/pull/3261](https://togithub.com/dragonflydb/dragonfly/pull/3261) - chore: dfly_bench can send traffic to memcached by [@​romange](https://togithub.com/romange) in [https://github.com/dragonflydb/dragonfly/pull/3271](https://togithub.com/dragonflydb/dragonfly/pull/3271) - chore: print effective QPS of the server. by [@​romange](https://togithub.com/romange) in [https://github.com/dragonflydb/dragonfly/pull/3274](https://togithub.com/dragonflydb/dragonfly/pull/3274) - chore: debugging fixes by [@​romange](https://togithub.com/romange) in [https://github.com/dragonflydb/dragonfly/pull/3275](https://togithub.com/dragonflydb/dragonfly/pull/3275) - chore: more debug checks around tiered storage by [@​romange](https://togithub.com/romange) in [https://github.com/dragonflydb/dragonfly/pull/3277](https://togithub.com/dragonflydb/dragonfly/pull/3277) - chore(license): Fix typo in LICENSE.md text by [@​softmoth](https://togithub.com/softmoth) in [https://github.com/dragonflydb/dragonfly/pull/3283](https://togithub.com/dragonflydb/dragonfly/pull/3283) - fix(test): Verify that save has not finished by [@​chakaz](https://togithub.com/chakaz) in [https://github.com/dragonflydb/dragonfly/pull/3278](https://togithub.com/dragonflydb/dragonfly/pull/3278) - Create scorecard.yml by [@​romange](https://togithub.com/romange) in [https://github.com/dragonflydb/dragonfly/pull/3270](https://togithub.com/dragonflydb/dragonfly/pull/3270) - chore: Disable cluster_mgr_test by [@​chakaz](https://togithub.com/chakaz) in [https://github.com/dragonflydb/dragonfly/pull/3279](https://togithub.com/dragonflydb/dragonfly/pull/3279) - fix: Increase key count to make test more robust by [@​chakaz](https://togithub.com/chakaz) in [https://github.com/dragonflydb/dragonfly/pull/3286](https://togithub.com/dragonflydb/dragonfly/pull/3286) - fix: properly clean tiered state upon flash by [@​romange](https://togithub.com/romange) in [https://github.com/dragonflydb/dragonfly/pull/3281](https://togithub.com/dragonflydb/dragonfly/pull/3281) - fix(bug): crash on takeover and info replication by [@​adiholden](https://togithub.com/adiholden) in [https://github.com/dragonflydb/dragonfly/pull/3282](https://togithub.com/dragonflydb/dragonfly/pull/3282) ##### New Contributors - [@​softmoth](https://togithub.com/softmoth) made their first contribution in [https://github.com/dragonflydb/dragonfly/pull/3283](https://togithub.com/dragonflydb/dragonfly/pull/3283) ##### Huge thanks to all the contributors! ❤️ **Full Changelog**: dragonflydb/dragonfly@v1.19.0...v1.20.0 </details> --- ### Configuration 📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined). 🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied. ♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox. 🔕 **Ignore**: Close this PR and you won't be reminded about these updates again. --- - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box --- This PR has been generated by [Renovate Bot](https://togithub.com/renovatebot/renovate). <!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNy40MjYuMiIsInVwZGF0ZWRJblZlciI6IjM3LjQyNi40IiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6WyJyZW5vdmF0ZS9jb250YWluZXIiLCJ0eXBlL21pbm9yIl19--> Co-authored-by: lumiere-bot[bot] <98047013+lumiere-bot[bot]@users.noreply.github.com>
The intrusive free list I suggested, please review the design first.... I might have missed some detail from reading the current code that might break everything 😓