mirror of
https://github.com/dragonflydb/dragonfly.git
synced 2025-05-11 10:25:47 +02:00
fix: big value serialization corner cases (#3430)
There are some problematic flows. First we did not handle deletions, so all sorts of consistency issues could arise while calling DbSlice::Traverse() and DbSlice::Del(). Second, we did not handle FlushAll (same as before, Traverse() preempts and FlushAll() kicks in. Third we did not handle expirations. --------- Signed-off-by: kostas <kostas@dragonflydb.io>
This commit is contained in:
parent
41ebb075a1
commit
1c9e9c5922
8 changed files with 59 additions and 38 deletions
|
@ -361,11 +361,6 @@ class UniquePicksGenerator : public PicksGenerator {
|
|||
absl::BitGen bitgen_{};
|
||||
};
|
||||
|
||||
struct ConditionFlag {
|
||||
util::fb2::CondVarAny cond_var;
|
||||
bool flag = false;
|
||||
};
|
||||
|
||||
// Helper class used to guarantee atomicity between serialization of buckets
|
||||
class ThreadLocalMutex {
|
||||
public:
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue