[ https://issues.apache.org/jira/browse/HBASE-1364?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12874724#action_12874724 ]
Todd Lipcon commented on HBASE-1364: ------------------------------------ Sorry, just finally got time to look at this one :) Some questions about the design: - What happens if the regionserver crashes in the middle of splitting a log? Who is monitoring its znode so that the log split gets re-enqueued? - You mention that log splitting is idempotent, however, it's not 100% true since the last step of log splitting is to remove the old logs. How will you address this issue? eg RS A starts splitting, gets almost done, goes into GC pause. RS B starts splitting. RS A wakes up and removes logs. RS B gets missing block errors, etc. > [performance] Distributed splitting of regionserver commit logs > --------------------------------------------------------------- > > Key: HBASE-1364 > URL: https://issues.apache.org/jira/browse/HBASE-1364 > Project: HBase > Issue Type: Improvement > Reporter: stack > Assignee: Alex Newman > Priority: Critical > Fix For: 0.22.0 > > Time Spent: 4h > > HBASE-1008 has some improvements to our log splitting on regionserver crash; > but it needs to run even faster. > (Below is from HBASE-1008) > In bigtable paper, the split is distributed. If we're going to have 1000 > logs, we need to distribute or at least multithread the splitting. > 1. As is, regions starting up expect to find one reconstruction log only. > Need to make it so pick up a bunch of edit logs and it should be fine that > logs are elsewhere in hdfs in an output directory written by all split > participants whether multithreaded or a mapreduce-like distributed process > (Lets write our distributed sort first as a MR so we learn whats involved; > distributed sort, as much as possible should use MR framework pieces). On > startup, regions go to this directory and pick up the files written by split > participants deleting and clearing the dir when all have been read in. Making > it so can take multiple logs for input, can also make the split process more > robust rather than current tenuous process which loses all edits if it > doesn't make it to the end without error. > 2. Each column family rereads the reconstruction log to find its edits. Need > to fix that. Split can sort the edits by column family so store only reads > its edits. -- This message is automatically generated by JIRA. - You can reply to this email to add a comment to the issue online.