fix(server): Sync FLUSH with tiering (#3098)

* fix(server): Sync FLUSH with tiering

Signed-off-by: Vladislav Oleshko <vlad@dragonflydb.io>
This commit is contained in:
Vladislav 2024-05-30 16:50:12 +03:00 committed by GitHub
parent ba0f2932e5
commit 137bd313ef
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
3 changed files with 71 additions and 13 deletions

View file

@ -486,6 +486,11 @@ class DbSlice {
// Invalidate all watched keys for given slots. Used on FlushSlots.
void InvalidateSlotWatches(const cluster::SlotSet& slot_ids);
// Properly clear db_arr before deleting it. If async is set, it's called from a detached fiber
// after swapping the db.
void ClearEntriesOnFlush(absl::Span<const DbIndex> indices, const DbTableArray& db_arr,
bool async);
void PerformDeletion(Iterator del_it, ExpIterator exp_it, DbTable* table);
// Send invalidation message to the clients that are tracking the change to a key.