mapleFU commented on issue #639:
URL: 
https://github.com/apache/incubator-kvrocks/issues/639#issuecomment-1173035744

   RocksDB will only have one "writeable" memtable, on default, it will be a 
lock-free skiplist. And when it's full, it will be "frozen" and only readable. 
Frozen memtable will only be read by user or compaction, it will never be 
modified.
   
   I think the case strange, the memory is created by `ConstructNewMemtable`, 
modified by `rocksdb::MemTable::Add`, and detect a race when `CompactionFilter` 
is called. And an "writable" memtable will not be compacted.
   
   Maybe TSAN thinks Memtable is protected by `LockGuard`, but only write is 
guarded by it, and the following read didn't call LockGuard.
   
   I'm not familiar with TSAN, maybe I made some mistakes.
   
   


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]

Reply via email to