[
https://issues.apache.org/jira/browse/HBASE-8201?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Nick Dimiduk updated HBASE-8201:
--------------------------------
Attachment: 0001-HBASE-8201-OrderedBytes-provides-order-preserving-se.patch
Patch 3 attached and on RB.
This version tightens up the tests to be more careful about buffer
over/under-run and also ensure reading/decoding an encoded buffer does not
modify underlying byte[]. It also implements a couple utility methods for
working with encoded values. The whole thing is up for a proper performance
evaluation, for which I opened HBASE-8694.
A notable deviation from the sqlite spec is in the blob-last format. Blob-last
is modified to include a termination byte of 0x00. This is necessary in order
to maintain reverse sort order of empty values.
A notable difference between this specification and Java is the sort order of
NaN. This spec treats NaN as less than all values, including null. Java sorts
NaN as greater than any floating point value.
See
http://docs.oracle.com/javase/1.5.0/docs/api/java/util/Arrays.html#sort(double[])
Major TODO: The numeric encoding and decoding implementation suffers from
floating point rounding errors. I'm going to read a Goldberg paper and hope for
a way around this, so in the mean time some of the test scenarios are commented
out.
> Implement serialization strategies
> ----------------------------------
>
> Key: HBASE-8201
> URL: https://issues.apache.org/jira/browse/HBASE-8201
> Project: HBase
> Issue Type: Sub-task
> Components: Client
> Reporter: Nick Dimiduk
> Assignee: Nick Dimiduk
> Fix For: 0.95.2
>
> Attachments:
> 0001-HBASE-8201-OrderedBytes-provides-order-preserving-se.patch,
> 0001-HBASE-8201-OrderedBytes-provides-order-preserving-se.patch,
> 0001-HBASE-8201-OrderedBytes-provides-order-preserving-se.patch
>
>
> Once the spec is agreed upon, it must be implemented.
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira