[ https://issues.apache.org/jira/browse/HBASE-19893?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16385532#comment-16385532 ]
Toshihiro Suzuki commented on HBASE-19893: ------------------------------------------ Thank you [~yuzhih...@gmail.com]. {quote}The above method is (renamed) existing method, do we need it ? {quote} Because the existing method (updateRegionState()) has VisibleForTesting annotation, I added the new method to rename updateRegionState(). But I think we can only remove the VisibleForTesting annotation of the updateRegionState() without renaming. {quote}Why delete region state and then add back ? {quote} To restore the specified table, we need to remove old region states and add new snapshotted region states. Regarding meta table, similar thing is done in MetaTableAccessor.overwriteRegions(). [https://github.com/apache/hbase/blob/485af49e53cb38e2af4635f2c3bc0b33e15ba0a1/hbase-client/src/main/java/org/apache/hadoop/hbase/MetaTableAccessor.java#L1831-L1845] {quote}Do we need to consider favored nodes in the above method ? {quote} I believe that adding favored nodes is done only in FavoredNodeLoadBalancer. If it is wrong, please correct me. Thanks > restore_snapshot is broken in master branch when region splits > -------------------------------------------------------------- > > Key: HBASE-19893 > URL: https://issues.apache.org/jira/browse/HBASE-19893 > Project: HBase > Issue Type: Bug > Components: snapshots > Reporter: Toshihiro Suzuki > Assignee: Toshihiro Suzuki > Priority: Critical > Attachments: HBASE-19893.master.001.patch > > > When I was investigating HBASE-19850, I found restore_snapshot didn't work in > master branch. > > Steps to reproduce are as follows: > 1. Create a table > {code:java} > create "test", "cf" > {code} > 2. Load data (2000 rows) to the table > {code:java} > (0...2000).each{|i| put "test", "row#{i}", "cf:col", "val"} > {code} > 3. Split the table > {code:java} > split "test" > {code} > 4. Take a snapshot > {code:java} > snapshot "test", "snap" > {code} > 5. Load more data (2000 rows) to the table and split the table agin > {code:java} > (2000...4000).each{|i| put "test", "row#{i}", "cf:col", "val"} > split "test" > {code} > 6. Restore the table from the snapshot > {code:java} > disable "test" > restore_snapshot "snap" > enable "test" > {code} > 7. Scan the table > {code:java} > scan "test" > {code} > However, this scan returns only 244 rows (it should return 2000 rows) like > the following: > {code:java} > hbase(main):038:0> scan "test" > ROW COLUMN+CELL > row78 column=cf:col, timestamp=1517298307049, value=val > .... > row999 column=cf:col, timestamp=1517298307608, value=val > 244 row(s) > Took 0.1500 seconds > {code} > > Also, the restored table should have 2 online regions but it has 3 online > regions. > -- This message was sent by Atlassian JIRA (v7.6.3#76005)