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

Jean-Daniel Cryans commented on HBASE-1968:
-------------------------------------------

Any reason not to apply it on trunk?

> Give clients access to the write buffer
> ---------------------------------------
>
>                 Key: HBASE-1968
>                 URL: https://issues.apache.org/jira/browse/HBASE-1968
>             Project: Hadoop HBase
>          Issue Type: Improvement
>            Reporter: Andrew Purtell
>            Assignee: Andrew Purtell
>            Priority: Trivial
>             Fix For: 0.20.2
>
>
> From a Trend dev team:
> {quote}
> When insert rows into one table by calling the method public synchronized 
> void put(final Put put), if the column family of one row does not exist, the 
> insert operation will failed and throw NoSuchColumnFamilyException.. We 
> observed that all the following insert operation will fails even though all 
> of them have valid column family. That is one exception of insert operation 
> can cause failure of all the following insert operation.
> {quote}
> Their further analysis explains in detail the scenario, which I will 
> summarize here:
> 1) An invalid put is added to the writeBuffer by put(Put put). It will 
> trigger a NoSuchColumnFamilyException once it goes to the region server.
> 2) At some point, the buffer is flushed.
> 3) When the invalid put is processed, an exception is thrown. The finally 
> clause of flushCommits() removes all successful puts from the writebuffer 
> list but the failed put remains at the top. This entry becomes an immovable 
> blocker which prevents any subsequent entry from being processed. 
> 4) Subsequent puts will add more entries to the write buffer until the buffer 
> limit is reached, compounding the problem by allowing more edits to be queued 
> which can never be processed. 
> A workaround could be for the client to call getWriteBuffer() -- on trunk -- 
> and remove the entry at the head of the list manually, but without the patch 
> on this issue, the client cannot get access to the list on branch. 

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