[ https://issues.apache.org/jira/browse/HBASE-4044?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13057446#comment-13057446 ]
Andrew Purtell commented on HBASE-4044: --------------------------------------- This sounds reasonable. I'll try out the patch. > [performance]decrease IO calls when flush hlog > ---------------------------------------------- > > Key: HBASE-4044 > URL: https://issues.apache.org/jira/browse/HBASE-4044 > Project: HBase > Issue Type: Improvement > Components: performance, regionserver > Reporter: mingjian > Assignee: mingjian > Fix For: 0.90.4 > > Attachments: HLog-trunk-v1.patch > > > We found that the hlog flush to disk would block other write threads. > When one thread exec "doWrite(info, logKey, edit);", the others wait for > "updateLock" in HLog.java. > Why not the others add their edits into a list and wait. When sync's > time, the whole list sync to disk once. I think it will decrease the IO > calls. > So Maybe we will make two lists for edits. Each thread write to the > "waledits" and wait for "updateLock". Each thread can copy the "waledits" to > "flushedits" and flush the "flushedits" to disk once it gets "updateLock". > In my test, it can increase the write speed of 100% when I set > "hbase.regionserver.handler.count"=100. -- This message is automatically generated by JIRA. For more information on JIRA, see: http://www.atlassian.com/software/jira