[ 
https://issues.apache.org/jira/browse/HDFS-1142?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12868541#action_12868541
 ] 

Todd Lipcon commented on HDFS-1142:
-----------------------------------

bq. The test assumes that hflush() should not succeed after the recovery 
started, but this assumption is incorrect.

HBase is using contracts like this to do IO fencing during regionserver 
recovery operations (eg see discussion on HBASE-2231 and HBASE-2238). The 
ability to use lease recovery to lock out a writer whose soft lease has expired 
provides lock-like functionality tied to the storage. Without HDFS itself 
providing a file locking primitive, it becomes essentially impossible to do 
correct recovery in systems like HBase where an old writer needs to be forcibly 
disallowed from continued progress. Using an external system like ZK since it 
is asynchronous in nature.

Let me think if we have an alternate route to the same kind of behavior using 
the semantics you're describing.

> Lease recovery doesn't reassign lease when triggered by append()
> ----------------------------------------------------------------
>
>                 Key: HDFS-1142
>                 URL: https://issues.apache.org/jira/browse/HDFS-1142
>             Project: Hadoop HDFS
>          Issue Type: Bug
>          Components: name-node
>    Affects Versions: 0.21.0
>            Reporter: Todd Lipcon
>            Assignee: Todd Lipcon
>            Priority: Blocker
>         Attachments: hdfs-1142.txt, hdfs-1142.txt
>
>
> If a soft lease has expired and another writer calls append(), it triggers 
> lease recovery but doesn't reassign the lease to a new owner. Therefore, the 
> old writer can continue to allocate new blocks, try to steal back the lease, 
> etc. This is for the testRecoveryOnBlockBoundary case of HDFS-1139

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