[8.4] Handle ASM Notifications - [MOD-11120]#7149
Merged
redisearch-backport-pull-request[bot] merged 1 commit into8.4from Oct 24, 2025
Merged
[8.4] Handle ASM Notifications - [MOD-11120]#7149redisearch-backport-pull-request[bot] merged 1 commit into8.4from
redisearch-backport-pull-request[bot] merged 1 commit into8.4from
Conversation
* initial registration implementation * Set up most of the notification events * address review comment and add logs * implement propagation * minor improvements * small fix * review fixes * [TEMP] set CI for new API * dictionary tidy up * add first test * fix helper and test for duplicates * Add missing sub-command * add unit-tests for coverage * change workersThreadPool_OnEvent* behavior to handle overlapping events * rename events after API update * implement managed and thread-safe slot ranges API * drop cached API when needed * rename API and use in the pipeline * move includes to C file * skip current flow test, and introduce a stable one * fix initial reference count * implement mock and add a test * add missing key-space notification subscription * add a test with adding a new node and propagating the schema * review fixes * fix assertion * leak fix * use malloc * leak actual fix * don't drop the cache on failed events * add BG variants to flow tests * update SDK * Revert "[TEMP] set CI for new API" This reverts commit 9d2d165. * use new API RedisModule_ClusterKeySlotC * run against redis unstable until 8.4 is released * fix test flakiness - wait for both shards * increase node timeout for ASM tests * try adding a sleep * increase to 5 (cherry picked from commit 3bd770e)
2 tasks
GuyAv46
approved these changes
Oct 24, 2025
Codecov Report❌ Patch coverage is
Additional details and impacted files@@ Coverage Diff @@
## 8.4 #7149 +/- ##
==========================================
- Coverage 85.67% 85.53% -0.15%
==========================================
Files 327 328 +1
Lines 51945 51114 -831
Branches 10921 10921
==========================================
- Hits 44503 43719 -784
+ Misses 7276 7229 -47
Partials 166 166
Flags with carried forward coverage won't be shown. Click here to find out more. ☔ View full report in Codecov by Sentry. 🚀 New features to boost your workflow:
|
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Description
Backport of #7022 to
8.4.Note
Add ASM-aware clustering: cache local slot ranges, filter results during migrations, propagate schemas/dictionaries, and subscribe to new cluster migration events; plus CI tweaks and minor fixes.
slot_rangesmodule to cache local slot ranges and check access viaSlots_CanAccessKeysInSlot.RPQueryIteratorduring ASM (should_filter_slots).ClusterSlotMigrationandClusterSlotMigrationTrimevents; manage worker threads and toggle slot filtering.Indexes_Propagatevia_FT._RESTOREIFNX) and dictionaries (Dictionary_Propagatevia_FT.DICTADD) during migration.AREQ→QueryPipelineParams→RPQueryIterator; manage ownership and lifetimes.Pipeline_BuildQueryPartsignature to accept non-const params.Dictionary_AddAPI; addDictionary_Size, dump tweaks, and cluster propagation support.key_trimmedevents; initialize keyspace notifications after spec deserialize.workersThreadPool_OnEventEndnow returns status; improved logging.unstablein PR/merge workflows.Written by Cursor Bugbot for commit 386ae5d. This will update automatically on new commits. Configure here.