You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@avro.apache.org by "Eli Reisman (JIRA)" <ji...@apache.org> on 2012/07/19 00:11:33 UTC

[jira] [Updated] (AVRO-939) Java: optimize BinaryData#compareBytes() to use sun.misc.Unsafe when available

     [ https://issues.apache.org/jira/browse/AVRO-939?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Eli Reisman updated AVRO-939:
-----------------------------

    Affects Version/s: 1.7.1
               Status: Patch Available  (was: Open)

First version, I am fairly certain this uses the Guava Lexicographical byte comparator without any undue byte[] copying, but in order to support indexed comparisons in BinaryData#compareBytes() I do have to wrap the inputs in ByteBuffers temporarily.

This does not make me happy, but did seem the the only way to do this? As long as we aren't copying our byte[] arguments, the use of the static ByteBuffer methods to wrap and slice the byte[] inputs down to indexed sizes is probably not too inefficient compared to the gains we get from the Guava (sun Unsafe based) comparator? Any thoughts? Is there a better way?

                
> Java: optimize BinaryData#compareBytes() to use sun.misc.Unsafe when available
> ------------------------------------------------------------------------------
>
>                 Key: AVRO-939
>                 URL: https://issues.apache.org/jira/browse/AVRO-939
>             Project: Avro
>          Issue Type: New Feature
>          Components: java
>    Affects Versions: 1.7.1
>            Reporter: Doug Cutting
>         Attachments: AVRO-939-1.patch
>
>
> Google's Guava libraries include an optimized implementation of lexicographic byte comparison based on sun.misc.Unsafe that's ~4x faster than the normal Java implementation.
> http://hiroshiyamauchi.blogspot.com/2010/08/fast-unsigned-byte-lexicographical.html
> http://www.google.com/codesearch#UKMs0lhE9bg/trunk/src/com/google/common/primitives/UnsignedBytes.java&l=276
> We might similarly optimize BinaryData#compareBytes().

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira