-
Notifications
You must be signed in to change notification settings - Fork 24.4k
Reset later item flag after defrag later is done #12694
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
Conversation
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.
This was interesting/difficult to find. Thanks @roshkhatri for diving deep.
We observed test failures for active defrag didn't stop while running these on loop. And for the failure runs we observed active_defrag_key_hits and active_defrag_key_misses weren't a multiple of dbsize. This lead to discovering that some of the slot scanning were getting skipped due to not resetting the defrag_later_item_in_progress.
oranagra
left a comment
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.
so can we now revert #12672?
|
@oranagra There were two other kind of issues were observed earlier i.e. latency higher than the threshold and frag ratio lower than the threshold. We are running them continuously to measure the variance and possibly tweak the threshold(s) a bit. |
|
thanks. @roshkhatri can you please make a PR? |
Fixing issues described in redis#12672, started after redis#11695 Related to redis#12674 Fixes the `defrag didn't stop' issue. In some cases of how the keys were stored in memory defrag_later_item_in_progress was not getting reset once we finish defragging the later items and we move to the next slot. This stopped the scan to happen in the later slots and did not get
Fixing issues described in #12672, started after #11695
Related to #12674
Fixes the `defrag didn't stop' issue.
In some cases of how the keys were stored in memory defrag_later_item_in_progress was not getting reset once we finish defragging the later items and we move to the next slot. This stopped the scan to happen in the later slots and did not get defragged.