[ https://issues.apache.org/jira/browse/HBASE-3514?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12999029#comment-12999029 ]
Ted Yu commented on HBASE-3514: ------------------------------- Since the buffer managed by ByteArrayOutputStream can grow, we don't need to allocate a huge buffer in its ctor. We can bound the buffer size by a constant: {code} long sz = blocksize; sz += (blocksize / 4); if (sz > 140000000) sz = 140000000; this.baos = new ByteArrayOutputStream((int)sz); {code} TestMultipleTimestamps passes with the above change in patch. > Speedup HFile.Writer append > --------------------------- > > Key: HBASE-3514 > URL: https://issues.apache.org/jira/browse/HBASE-3514 > Project: HBase > Issue Type: Improvement > Components: io > Affects Versions: 0.90.0 > Reporter: Matteo Bertozzi > Priority: Minor > Attachments: HBASE-3514-append-0.90.patch, HBASE-3514-append.patch, > HBASE-3514-metaBlock-bsearch.patch > > > Remove double writes when block cache is specified, by using, only, the > ByteArrayDataStream. > baos is flushed with the compress stream on finishBlock. > On my machines HFilePerformanceEvaluation SequentialWriteBenchmark passes > from 4000ms to 2500ms. > Running SequentialWriteBenchmark for 1000000 rows took 4247ms. > Running SequentialWriteBenchmark for 1000000 rows took 4512ms. > Running SequentialWriteBenchmark for 1000000 rows took 4498ms. > Running SequentialWriteBenchmark for 1000000 rows took 2697ms. > Running SequentialWriteBenchmark for 1000000 rows took 2770ms. > Running SequentialWriteBenchmark for 1000000 rows took 2721ms. -- This message is automatically generated by JIRA. - For more information on JIRA, see: http://www.atlassian.com/software/jira