[ 
https://issues.apache.org/jira/browse/HBASE-14949?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15052136#comment-15052136
 ] 

Duo Zhang commented on HBASE-14949:
-----------------------------------

Oh, seems fine. {{DefaultMemStore}} uses a {{ConcurrentSkipListMap}}, 
{{KeyValueHeap}} uses a {{PriorityQueue}}. They both use a {{CellComparator}} 
to compare entries and will replace old entry when equal. A {{CellComparator}} 
first compares rowkey, then family, qualifier, timestamp, and last compares 
sequence id. In our scenario, all of them are equal so the new entry will 
overwrite the old entry.

Thanks.

> Skip duplicate entries when replay WAL.
> ---------------------------------------
>
>                 Key: HBASE-14949
>                 URL: https://issues.apache.org/jira/browse/HBASE-14949
>             Project: HBase
>          Issue Type: Sub-task
>            Reporter: Heng Chen
>         Attachments: HBASE-14949.patch, HBASE-14949_v1.patch
>
>
> As HBASE-14004 design,  there will be duplicate entries in different WAL.  It 
> happens when one hflush failed, we will close old WAL with 'acked hflushed' 
> length,  then open a new WAL and write the unacked hlushed entries into it.
> So there maybe some overlap between old WAL and new WAL.
> We should skip the duplicate entries when replay.  I think it has no harm to 
> current logic, maybe we do it first. 



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to