Hi all,

I'm trying to understand the behavior of memtable when writes/flush operations 
are going on in parallel.

In my understanding, once a memtable is full it is queued for flushing and a 
new memtable is created for ongoing write operations.
However, I was looking at the code and it looks like the OpOrder class is used 
(don't understand all details) to ensure the synchronization between producers 
(writes) and consumers (batch flushes).
So I am a bit confused about when exactly it is needed. There will always be 
only one latest memtable for write operations and all old memtables are flushed 
so where this producer/consumer interaction on the same memtable is needed?


Reply via email to