You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@hbase.apache.org by "Nicolas Spiegelberg (JIRA)" <ji...@apache.org> on 2010/05/22 00:08:16 UTC

[jira] Resolved: (HBASE-2593) Race Between Log Splitting and Log Writing

     [ https://issues.apache.org/jira/browse/HBASE-2593?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Nicolas Spiegelberg resolved HBASE-2593.
----------------------------------------

    Resolution: Duplicate

IIRC 

tlipcon: you can't append after you rename, cuz the lease follows through the rename
[2:40pm] tlipcon: it still holds the lease
[2:40pm] tlipcon:       changeLease(src, dst, dinfo);    // update lease with new filename
nspiegelberg: hmm.  I think [we were] of the opinion that this caused a kill lease rpc.  looks like that's wrong
[2:46pm] nspiegelberg: or rather, that the rename didn't persist the lease and append would then cause a kill lease
tlipcon: I think most importantly, it means that on a restart or lease expiry, the NN side will have the correct record to find that thing in the directory and finalize it, etc
[2:52pm] nspiegelberg: I think that was [the] intention.  Hlog.new = no new files, rename() = no new block, append() = wait for RS to give up
tlipcon: nspiegelberg: what was proposed before was: list files, find last file, open for append. when that succeeds, list again, see if there any new ones
tlipcon: (this relies on writer not closing the prior file until the next one has been created)
tlipcon: but I think we should collapse the two tickets - seems like the same fix will fix all the problems
nspiegelberg: I think they're solving the same problem.  Just trying to think if we can make an active lease takeover vs current passive approaches
[3:02pm] tlipcon: nspiegelberg: yea, I don't know that there is any active lease takeover opportunity really

> Race Between Log Splitting and Log Writing
> ------------------------------------------
>
>                 Key: HBASE-2593
>                 URL: https://issues.apache.org/jira/browse/HBASE-2593
>             Project: Hadoop HBase
>          Issue Type: Bug
>          Components: master, regionserver
>    Affects Versions: 0.21.0
>            Reporter: Nicolas Spiegelberg
>            Assignee: Nicolas Spiegelberg
>            Priority: Critical
>             Fix For: 0.21.0
>
>
> The current method for recovering the lease in HLog.splitLog() is flawed.  Between the time that the regionserver is marked as dead and fs.append is issued, the regionserver could exit a GC pause and maintain the lease.  In this case, fs.append() would continually fail.  The master needs to not only recover the lease in splitLog but also break the lease so regionserver writes will no longer pass.

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