thangTang commented on PR #5016:
URL: https://github.com/apache/hbase/pull/5016#issuecomment-1422840125

   > > This seems like an ingenious idea. But I want to confirm that due to the 
eviction mechanism of LRUMap, even if findEntry is used instead of addEntry, is 
there still a possibility of inconsistent read-write path behavior in theory?
   > 
   > The most important thing here is to read WAL entries in order, and not 
skip any entries. If these two rules are guaranteed, it is OK to restart as 
many times as you want. And I think for replication, we must follow these two 
rules otherwise there will be data loss...
   
   Agree about that, but I think I didn't express my question clearly.
   
   For WAL Compression, The core logic is to build an index (LRUMap) in memory 
while writing/reading WAL. There is another key point here, that is, when 
operating a WAL file, the behavior of the read-write path needs to be exactly 
same.
   Using findEntry instead of addEntry in this patch, I think it could solve a 
part of problem. But however, for example, we did not resetPosition when we 
wrote WAL, but a certain position was reset many times when we read WAL. The 
implicit operation here is: this node has been movedToHead many times in 
LRUMap. So is it possible that the node evicted in the write path(write WAL) 
has inconsistencies in the read path(replication)?


-- 
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