[
https://issues.apache.org/jira/browse/HBASE-6059?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13280781#comment-13280781
]
Zhihong Yu commented on HBASE-6059:
-----------------------------------
Nice work.
Minor comments:
{code}
- // Get minimum of the maxSeqId across all the store.
+ // Get the maxSeqId for each store.
{code}
The second line above seems redundant - same sentence appears later.
{code}
- if (files == null || files.isEmpty()) return seqid;
+ if (files == null || files.isEmpty())
+ return seqid;
{code}
The above change is not necessary.
{code}
+ for (Map.Entry<byte[], Long> maxSeqIdInStore :
maxSeqIdInStores.entrySet()) {
+ msg = msg + "; store=" + Bytes.toString(maxSeqIdInStore.getKey())
+ + ",minSequenceid=" + maxSeqIdInStore.getValue();
{code}
Do we really need the above loop (there could be many stores, making the log
very long) ?
{code}
+ if (serverInfo != null && serverInfo.equals(destServer.getServerName()))
+ break;
{code}
break can be moved to the same line as if.
> Replaying recovered edits would make deleted data exist again
> -------------------------------------------------------------
>
> Key: HBASE-6059
> URL: https://issues.apache.org/jira/browse/HBASE-6059
> Project: HBase
> Issue Type: Bug
> Components: regionserver
> Reporter: chunhui shen
> Assignee: chunhui shen
> Attachments: HBASE-6059-testcase.patch, HBASE-6059.patch,
> HBASE-6059v2.patch
>
>
> When we replay recovered edits, we used the minSeqId of Store, It may cause
> deleted data appeared again.
> Let's see how it happens. Suppose the region with two families(cf1,cf2)
> 1.put one data to the region (put r1,cf1:q1,v1)
> 2.move the region from server A to server B.
> 3.delete the data put by step 1(delete r1)
> 4.flush this region.
> 5.make major compaction for this region
> 6.move the region from server B to server A.
> 7.Abort server A
> 8.After the region is online, we could get the deleted data(r1,cf1:q1,v1)
> (When we replay recovered edits, we used the minSeqId of Store, because cf2
> has no store files, so its seqId is 0, so the edit log of put data will be
> replayed to the region)
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators:
https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira