-
Notifications
You must be signed in to change notification settings - Fork 998
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
Snapshot preemption on OnDbChange #829
Comments
My suggested solution: |
Does replication_test write into multiple datasets? Does it cover this case? |
you are suggesting that the logic inside |
This would save us preempting and quite easily, I agree. The bigger issue I see is that we don't provide memory capped back pressure neither on same-db changes nor with the new approach. We have no upper bound on the buffer size, but in reality we should have one. Reordering the cb calls with the latest changes only makes it more likely. |
@romange yes |
Yes, the numbers are fairly small, but the callback was running often (last time I checked when writing the seeder) https://github.com/dragonflydb/dragonfly/blob/main/tests/dragonfly/replication_test.py#L27 |
* bug(snapshot) : Do not preempt inside OnDbChange Signed-off-by: adi_holden <[email protected]>
Currently when calling OnDbChange we might preempt if when calling push data to channel.
preemption in this flow can cause bugs because we hold iterator and call registered funcitons from db_slice with the iterator.
If we preempt the iterator might become invalid
The text was updated successfully, but these errors were encountered: