[ https://issues.apache.org/jira/browse/HBASE-4645?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13132741#comment-13132741 ]
jirapos...@reviews.apache.org commented on HBASE-4645: ------------------------------------------------------ ----------------------------------------------------------- This is an automatically generated e-mail. To reply, visit: https://reviews.apache.org/r/2524/#review2745 ----------------------------------------------------------- Amit-- thanks for getting a fix out soon. Comments inline. As you mentioned, I am assuming you are planning on adding a test as part of the commit itself. src/main/java/org/apache/hadoop/hbase/regionserver/HRegion.java <https://reviews.apache.org/r/2524/#comment6180> Comment: Get minimum seqid across all store should read: Get minimum of the max seq id for each store. src/main/java/org/apache/hadoop/hbase/regionserver/HRegion.java <https://reviews.apache.org/r/2524/#comment6181> trailing white space src/main/java/org/apache/hadoop/hbase/regionserver/HRegion.java <https://reviews.apache.org/r/2524/#comment6183> yes, makes sense as a future optimization. src/main/java/org/apache/hadoop/hbase/regionserver/HRegion.java <https://reviews.apache.org/r/2524/#comment6184> as Madhu pointed out in a later email, if now edits were were there for this region, then this function will simply return minSeqId back as its return value. Like before, we should also track the maxSeqId for all stores in the above loop. And, then change this line to something like: maxSeqId = Math.max(maxSeqId, replayRecoveredEditsIfAny(...)); - Kannan On 2011-10-21 15:01:11, Amitanand Aiyer wrote: bq. bq. ----------------------------------------------------------- bq. This is an automatically generated e-mail. To reply, visit: bq. https://reviews.apache.org/r/2524/ bq. ----------------------------------------------------------- bq. bq. (Updated 2011-10-21 15:01:11) bq. bq. bq. Review request for Ted Yu, Michael Stack, Jonathan Gray, Lars Hofhansl, Amitanand Aiyer, Kannan Muthukkaruppan, Karthik Ranganathan, and Nicolas Spiegelberg. bq. bq. bq. Summary bq. ------- bq. bq. There is a data loss happening (for some of the column families) when we do the replay logs. bq. bq. The bug seems to be from the fact that during replay-logs we only choose to replay bq. the logs from the maximumSequenceID across ALL the stores. This is wrong. If a bq. column family is ahead of others (because the crash happened before all the column bq. families were flushed), then we lose data for the column families that have not yet bq. caught up. bq. bq. The correct logic for replay should begin the replay from the minimum across the bq. maximum in each store. bq. bq. bq. This addresses bug hbase-4645. bq. https://issues.apache.org/jira/browse/hbase-4645 bq. bq. bq. Diffs bq. ----- bq. bq. src/main/java/org/apache/hadoop/hbase/regionserver/HRegion.java 8c32839 bq. bq. Diff: https://reviews.apache.org/r/2524/diff bq. bq. bq. Testing bq. ------- bq. bq. Initial patch. v1. bq. bq. mvn test (running). bq. bq. TBD: add a test case to repro the issue and make sure it fixes. bq. bq. bq. Thanks, bq. bq. Amitanand bq. bq. > Edits Log recovery losing data across column families > ----------------------------------------------------- > > Key: HBASE-4645 > URL: https://issues.apache.org/jira/browse/HBASE-4645 > Project: HBase > Issue Type: Bug > Affects Versions: 0.89.20100924, 0.92.0 > Reporter: Amitanand Aiyer > Assignee: Amitanand Aiyer > > There is a data loss happening (for some of the column families) when we do > the replay logs. > The bug seems to be from the fact that during replay-logs we only choose to > replay > the logs from the maximumSequenceID across *ALL* the stores. This is wrong. > If a > column family is ahead of others (because the crash happened before all the > column > families were flushed), then we lose data for the column families that have > not yet > caught up. > The correct logic for replay should begin the replay from the minimum across > the > maximum in each store. -- 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