You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@hbase.apache.org by "Todd Lipcon (JIRA)" <ji...@apache.org> on 2010/06/02 20:34:05 UTC

[jira] Commented: (HBASE-1364) [performance] Distributed splitting of regionserver commit logs

    [ 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.