public interface IRabaCoder extends Serializable
byteand for accessing the coded data in place.
|Modifier and Type||Method and Description|
Encode the data.
Encode the data, returning an
Return true iff this
trueif this implementation can code B+Tree keys (supports search on the coded representation). Note that some implementations can code either keys or values.
trueif this implementation can code B+Tree values (allows
nulls). Note that some implementations can code either keys or values.
IRabaCodersupports duplicate keys.
ICodedRaba encodeLive(IRaba raba, DataOutputBuffer buf)
ICodedRaba. Implementations of this method should be optimized for the very common use case where the caller requires immediate access to the coded data record. In that case, many of the
IRabaCoderimplementations can be optimized by passing the underlying decoding object directly into an alternative constructor for the
ICodedRaba. The byte slice for the coded data record is available from
This method covers the vast major of the use cases for coding data, which
is to code B+Tree keys or values for a node or leaf that has been evicted
AbstractBTree's write retention queue. The common use
case is to wrap a coded record that was read from an
IndexSegmentBuilder is a special case, since the coded record
will not be used other than to write it on the disk.
AbstractFixedByteArrayBuffer encode(IRaba raba, DataOutputBuffer buf)
Note: Implementations of this method are typically heavy. While it is
always valid to
encode(IRaba, DataOutputBuffer) an
, DO NOT invoke this arbitrarily on data which may already be
ICodedRaba interface will always be implemented for
raba- The data.
buf- A buffer on which the coded data will be written.
IRabaCodercan not code keys.
IRabaCodercan not code values.
ICodedRaba decode(AbstractFixedByteArrayBuffer data)
IRabawhich can access the coded data. In general, implementations SHOULD NOT materialize a backing byte. Instead, the implementation should access the data in place within the caller's buffer. Frequently used fields MAY be cached, but the whole point of the
IRabaCoderis to minimize the in-memory footprint for the B+Tree by using a coded (aka compressed) representation of the keys and values whenever possible.
data- The record containing the coded data.
Copyright © 2006–2019 SYSTAP, LLC DBA Blazegraph. All rights reserved.