[ 
https://issues.apache.org/jira/browse/HBASE-2727?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12886922#action_12886922
 ] 

Todd Lipcon commented on HBASE-2727:
------------------------------------

This is also really important for recovery performance.

I was doing load testing on a 5 node cluster overnight, and failure of one 
region server took nearly 30 minutes to recover, since replay is so much slowed 
by the fact that the recovering server is *rewriting* and syncing edits to a 
new log.

> Splits writing one file only is untenable; need dir of recovered edits 
> ordered by sequenceid.
> ---------------------------------------------------------------------------------------------
>
>                 Key: HBASE-2727
>                 URL: https://issues.apache.org/jira/browse/HBASE-2727
>             Project: HBase
>          Issue Type: Bug
>            Reporter: stack
>            Assignee: stack
>            Priority: Blocker
>             Fix For: 0.21.0
>
>
> This issue comes of tlipcon doing a bit of human unit testing.  His 
> speculation is:
> Let a region X deploy to server A.  Server A opens the region, then closes it.
> Let region X now deploy to server B.  Server B now crashes.
> Both server A and server B now have edits for region X in their WALs.
> The processing of server crashes is currently sequential. 
> If server A crashes before server B, server A will write out a file of 
> recovered edits for region X but region X was not deployed on server A so, 
> the file will just sit there unused.  The processing of server B crash will 
> overwrite the recovered edits file written by the split of server A wal.  
> This is ok.
> But if somehow, server B processing is done before server A's, then 
> interesting issues will likely arise; in the main, there is danger that the 
> server B's recovered edits could be overwritten.
> Another issue comes up in the review of hbase-1025.  During the replay of 
> edits on region deploy, if the hosting regionserver crashes before we have 
> processed all of the recovered edits, we could lose some (the recovery of the 
> regionserver that is replaying the edits could overwrite the log of edits 
> only partially replayed).
> Discussing up on IRC, whats needed is a directory of edits to replay ordered 
> by sequenceid.  On recovery, we play the oldest through to the newest 
> removing the edits only on successfully replay.
> Making blocker on 0.21 since this is a correctness issue.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.

Reply via email to