[ https://issues.apache.org/jira/browse/HDFS-895?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12880991#action_12880991 ]
sam rash commented on HDFS-895: ------------------------------- re: the patch I realize in the hadoop code we already swallow InterruptedException frequently, but I think you can change the trend here: {code} // wait for all acks to be received back from datanodes synchronized (ackQueue) { if (!closed && ackQueue.size() != 0) { try { ackQueue.wait(); } catch (InterruptedException e) { Thread.currentThread.interrupt(); //add this } continue; } } {code} otherwise, it's very easy to have a thread that I own and manage that has a DFSOutputStream in it that swallows an interrupt. when i check Thread.currentThread.isInterrupted() to see if one of my other threads has interrupted me, i will not see it (the crux here is that swallowing interrupts in threads that hadoop controls are less harmful--this is directly in client code when you call sync()/close()) > Allow hflush/sync to occur in parallel with new writes to the file > ------------------------------------------------------------------ > > Key: HDFS-895 > URL: https://issues.apache.org/jira/browse/HDFS-895 > Project: Hadoop HDFS > Issue Type: Improvement > Components: hdfs client > Affects Versions: 0.22.0 > Reporter: dhruba borthakur > Assignee: Todd Lipcon > Fix For: 0.22.0 > > Attachments: hdfs-895-0.20-append.txt, hdfs-895-20.txt, > hdfs-895-trunk.txt, hdfs-895.txt > > > In the current trunk, the HDFS client methods writeChunk() and hflush./sync > are syncronized. This means that if a hflush/sync is in progress, an > applicationn cannot write data to the HDFS client buffer. This reduces the > write throughput of the transaction log in HBase. > The hflush/sync should allow new writes to happen to the HDFS client even > when a hflush/sync is in progress. It can record the seqno of the message for > which it should receice the ack, indicate to the DataStream thread to star > flushing those messages, exit the synchronized section and just wai for that > ack to arrive. -- This message is automatically generated by JIRA. - You can reply to this email to add a comment to the issue online.