Dragonfly v1.34.0
Important stability fixes and changes:
- Replication fixes: #5727 #5700
- Geo search fixes: #5714 #5678 #5726 #5734
- SSD tiering improvements: #5802 #5803 #5810
What's Changed
- fix: prevent writeBucket if migration is canceled by @BorysTheDev in #5676
- chore: group memory prometheous metrics by @kostasrim in #5674
- fix: check snapshot_version in correct place by @BorysTheDev in #5687
- fix: stack corruption in MultiCommandSquasher by @romange in #5697
- fix: RdbSaver: destroy SliceSnapshot on its shard thread to fix flaky crash on ARM64 with --force_epoll by @vyavdoshenko in #5685
- server: fix max emission limit in throttle command by @abhijat in #5686
- fix: list ops transformation during replication by @BorysTheDev in #5700
- fix: command parsing in geo family by @kostasrim in #5714
- chore: add queue task index to the log by @romange in #5716
- chore(server): Semi-automatic flag updates by @dranikpg in #5666
- feat(search): Add indexes joining by @BagritsevichStepan in #5604
- feat(search_family): Add LOAD_FROM to the FT.AGGREGATE command by @BagritsevichStepan in #5703
- feat(search_family): Improve sorting and limiting in index joins by @BagritsevichStepan in #5717
- fix: macos and linux build by @vyavdoshenko in #5718
- feat: Implement GEORADIUS_RO command by @EricHayter in #5678
- test: skip failing tests by @vyavdoshenko in #5721
- docs: improve description of --maxmemory parameter (units/tiering/minPerThread) by @frivoire in #5696
- chore: update task queue fiber priority to high by @romange in #5722
- chore: check fail for empty listpacks in streams by @kostasrim in #5704
- feat: improve target node latency during migration by @BorysTheDev in #5715
- chore: Strict bounds when adding uknown command for INFO ALL stats by @mkaruza in #5735
- server: Drop contents of
exec_info
body on clear by @abhijat in #5740 - feat: Implement GEORADIUSBYMEMBER_RO command by @EricHayter in #5726
- fix: reject geosearch count 0 by @kostasrim in #5734
- fix: jsonPath parser for int values by @BorysTheDev in #5737
- feat(dfly_bench): Generate value with random length by @mkaruza in #5743
- fix: JSON RESP3 compatibility - remove extra nested arrays for most commands by @vyavdoshenko in #5747
- chore: rewrite mimalloc2 external lib dependency by @romange in #5751
- fix: replication for Z...STORE commands by @BorysTheDev in #5728
- server: Enable lua legacy float response for RESP3 by @abhijat in #5754
- fix: bitfield no operations command by @BorysTheDev in #5756
- test: unskip epoll cluster and replication tests by @BorysTheDev in #5757
- Pull helio by @dranikpg in #5760
- fix: search index restore when index names start with ‘:’ (e.g. :Order:index) by @vyavdoshenko in #5755
- Revert "test: unskip epoll cluster and replication tests (#5757)" by @BorysTheDev in #5761
- chore: add more logs for takeover by @BorysTheDev in #5765
- chore: implement the iterative fragmentation check by @romange in #5766
- server: Adds metrics for background defrag task by @abhijat in #5767
- server: metrics to track stored command sizes by @abhijat in #5764
- chore: unlink deletes hashes asynchronously by @romange in #5773
- fix: acl pubsub should only glob match the channel by @kostasrim in #5769
- chore: add self-testing code for heap->full_page_size computation by @romange in #5772
- chore: tune replication/migration settings by @romange in #5779
- facade/server: Use inline instead of extern to reduce loc by @abhijat in #5768
- fix: script error reply by @BorysTheDev in #5776
- chore: Resize vector in StringMap::RandomPairs by @mkaruza in #5781
- dfly_bench: Show error on failing to make address by @abhijat in #5787
- feat: SHUTDOWN: fast path for NOW/FORCE; unify SAVE/SAFE; support NOSAVE by @vyavdoshenko in #5783
- core: Replace sbf with hyperloglog by @abhijat in #5784
- server: Reject caching command if tracking is not enabled by @abhijat in #5786
- fix: data loss in partial sync from same source master by @kostasrim in #5727
- fix: Scan on non-existing key should return zero cursor by @mkaruza in #5780
- fix(snapshot): Replace sleeps with yield by @dranikpg in #5619
- fix(block_list): Speed up Split method by @BagritsevichStepan in #5748
- chore: pass to a string compact_object a key/value flag by @romange in #5795
- feat(range_tree): Add FinalizeInitialization method to the RangeTree by @BagritsevichStepan in #5793
- fix: stale pointer reference during slot migration and flush by @romange in #5798
- chore: Command category cleanup (part 2?) by @dranikpg in #5800
- fix: remove limitation for SSCAN by @BorysTheDev in #5806
- chore: Update helio submodule by @mkaruza in #5807
- chore(tiering): Fix asserts around reads for serialization by @dranikpg in #5802
- feat: prometheus metrics per database by @qlimenoque in #5770
- chore(rdb): Insert big values only after full construction by @dranikpg in #5796
- fix(tiering): Cooldown for DiskStorage::Grow() retries by @dranikpg in #5803
- ci: enable repeat tests to use release and force epoll by @abhijat in #5805
- chore: Clean up string_family by @dranikpg in #5801
- chore(tiering): Make lower bound configurable by @dranikpg in #5810
- fix: increase fiber stack by @BorysTheDev in #5817
- chore: support huffman encoding for string values by @romange in #5815
- chore: increase timeout to 80mins for reg tests by @kostasrim in #5819
- chore(server): Hide internal CO flags from output by @dranikpg in #5814
- feat: Add eviction based on rss memory usage by @BagritsevichStepan in #5791
Huge thanks to all the contributors! ❤️
New Contributors
- @frivoire made their first contribution in #5696
- @qlimenoque made their first contribution in #5770
Full Changelog: v1.33.0...v1.34.0