Skip to content

Conversation

@jamesmcclain
Copy link
Member

@jamesmcclain jamesmcclain commented Jun 21, 2017

  • File
    • Read/write new layers
    • Backward compatibility with old layers
  • Hadoop
    • Read/write new layers
    • Backward compatibility with old layers
    • Is there a Hadoop Collections API bug? Not seen for a while
  • S3
    • Read/write new layers
    • Backward compatibility with old lyaers
  • Accumulo
    • Read/write new layers
    • Backward compatibility with old layers: The original machinery is fixed at 8 bytes. The machinery in this PR always uses at least 8 bytes. For a particular index, if the statement "The number of bytes required by some key in the index is more than 8 implies all keys require the same number of bytes" is a true statement, then this is guaranteed to work. In fact, different-length keys should work too if Accumulo's lexicographic ordering of row IDs behaves as I think/expect/hope.
  • Cassandra
    • Read/write layers
    • Needs a "BigInt iff bigint" codec. That codec will need to be able to read keys serialized by the original "Long iff bigint" codec in order to be able to read old layers.
  • HBase
    • Read/write new layers
    • Backward compatibility with old layers. Old machinery used org.apache.hadoop.hbase.util.Bytes for the Long -> Array[Byte] conversion. The machinery in this PR uses BigInt.toByteArray then pads to at least 8 bytes. See the note about Accumulo backward compatibility above.

See also locationtech/sfcurve#18, feature/geowave-index


Fixes #2238


  • Rebase

@jamesmcclain jamesmcclain force-pushed the feature/key-extension branch 2 times, most recently from 186170f to 702f828 Compare June 22, 2017 02:52
@jamesmcclain jamesmcclain changed the title [WIP] Extend Key Length Extend Key Length Jun 22, 2017
@jamesmcclain jamesmcclain force-pushed the feature/key-extension branch from cb3010a to fa6549f Compare June 23, 2017 00:07
@echeipesh echeipesh added this to the 2.0 milestone Jun 29, 2017
@jamesmcclain jamesmcclain force-pushed the feature/key-extension branch from fa6549f to fd9ddc8 Compare July 3, 2017 22:21
James McClain added 22 commits November 17, 2017 08:38
The range length is still expressed as a `Double`, the maximum bin size
is still a `Long`.

Signed-off-by: James McClain <jmcclain@azavea.com>
The range lengths are still expressed as a `Long` values.
Note: `Long.MaxValue` has been changed to `BigInt(-1)`.
Note: `Long.MaxValue` has been changed to `BigInt(-1)`.
Account for differences between `LongWritable` and `BytesWritable`.
An key length of at least eight bytes is ensured in
`AccumuloKeyEncoder`.  That was because keys of one byte (in the unit
tests) were not working -- extra zero bytes were being mysteriously
added.

Behavior with keys of more than 8 bytes is unknown.
Key length still capped at 64-bits, needs custom coded.
@echeipesh echeipesh merged commit 1b41891 into locationtech:master Dec 7, 2017
@jamesmcclain jamesmcclain deleted the feature/key-extension branch December 9, 2017 23:03
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Concerning The Length Of Index Keys

2 participants