cassandra-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Paul Loy (JIRA)" <>
Subject [jira] [Commented] (CASSANDRA-2820) Re-introduce FastByteArrayInputStream (and Output equivalent)
Date Fri, 24 Jun 2011 22:35:47 GMT


Paul Loy commented on CASSANDRA-2820:

The problem with extending is we're then expecting the actual implementation to work the same
as Harmony's implementation does. At present they look pretty compatible. But who knows what
the future may bring.

So I think we have to use a carbon-copy of Harmony's BAIS to ensure JRE compat. We can still
extend it so that Sylvain's suggestion holds, but in real terms it'll override all methods
so won't really extend.

> Re-introduce FastByteArrayInputStream (and Output equivalent)
> -------------------------------------------------------------
>                 Key: CASSANDRA-2820
>                 URL:
>             Project: Cassandra
>          Issue Type: Improvement
>          Components: Core
>    Affects Versions: 0.8.0
>         Environment: n/a
>            Reporter: Paul Loy
>            Priority: Minor
>              Labels: bytearrayinputstream, bytearrayoutputstream, license, synchronized
>         Attachments: fast_bytearray_iostreams_harmony-patch-2.txt
> In FastByteArrayInputStream and FastByteArrayOutputStream
were removed due to being code copied from the JDK and then subsequently modified. The JDK
license is incompatible with Apache 2 license so the code had to go.
> I have since had a look at the performance of the JDK ByteArrayInputStream and a FastByteArrayInputStream
(i.e. one with synchronized methods made un-synchronized) and seen the difference is significant.
> After a warmup-period of >10000 loops I get the following for 10000 loops through
a 128000 byte array:
> bais : 3513ms
> fbais: 72ms
> This varies depending on the OS, machine and Java version, but it's always in favour
of the FastByteArrayInputStream as you might expect.
> Then, at Jonathan Ellis' suggestion, I tried this using a modified Apache Harmony ByteArrayInputStream
- i.e. one whose license is compatible - and the results were the same. A significant boost.
> I will attach a patch with changes for the 0.8.0 tag.

This message is automatically generated by JIRA.
For more information on JIRA, see:


View raw message