Package org.apache.druid.segment.data
Class V3CompressedVSizeColumnarMultiIntsSupplier
java.lang.Object
org.apache.druid.segment.data.V3CompressedVSizeColumnarMultiIntsSupplier
- All Implemented Interfaces:
com.google.common.base.Supplier<ColumnarMultiInts>,Supplier<ColumnarMultiInts>,WritableSupplier<ColumnarMultiInts>,Serializer
public class V3CompressedVSizeColumnarMultiIntsSupplier
extends Object
implements WritableSupplier<ColumnarMultiInts>
The format is mostly the same with
CompressedVSizeColumnarMultiIntsSupplier (which has version 0x2, so we
call it V2), the only difference is V3's offsets is not VSize encoded, it's just compressed.
The reason we provide this is we can streams the data out in the binary format with V3CompressedVSizeColumnarMultiIntsSerializer.
If we want to streams VSizeInts, we must know the max value in the value sets. It's easy to know the max id of
values(like dimension cardinality while encoding dimension), but difficult to known the max id of offsets.-
Field Summary
Fields -
Method Summary
Modifier and TypeMethodDescriptionfromByteBuffer(ByteBuffer buffer, ByteOrder order, SegmentFileMapper mapper) fromIterable(Iterable<IndexedInts> objectsIterable, int offsetChunkFactor, int maxValue, ByteOrder byteOrder, CompressionStrategy compression, Closer closer) get()longReturns the number of bytes, that this Serializer will write to the output _channel_ (not smoosher) on aSerializer.writeTo(java.nio.channels.WritableByteChannel, org.apache.druid.segment.file.SegmentFileBuilder)call.voidwriteTo(WritableByteChannel channel, SegmentFileBuilder fileBuilder) Writes the serialized form of this object.
-
Field Details
-
VERSION
public static final byte VERSION- See Also:
-
-
Method Details
-
fromByteBuffer
public static V3CompressedVSizeColumnarMultiIntsSupplier fromByteBuffer(ByteBuffer buffer, ByteOrder order, SegmentFileMapper mapper) -
fromIterable
public static V3CompressedVSizeColumnarMultiIntsSupplier fromIterable(Iterable<IndexedInts> objectsIterable, int offsetChunkFactor, int maxValue, ByteOrder byteOrder, CompressionStrategy compression, Closer closer) -
getSerializedSize
public long getSerializedSize()Description copied from interface:SerializerReturns the number of bytes, that this Serializer will write to the output _channel_ (not smoosher) on aSerializer.writeTo(java.nio.channels.WritableByteChannel, org.apache.druid.segment.file.SegmentFileBuilder)call.- Specified by:
getSerializedSizein interfaceSerializer
-
writeTo
Description copied from interface:SerializerWrites the serialized form of this object. The entire object may be written to the provided channel, or the object may be split over the provided channel and files added to the {@link SegmentFileBuilder], where additional channels can be created viaSegmentFileBuilder.addWithChannel(String, long). The latter approach is useful when the serialized form of the object is too large for a single smoosh container. At the time this javadoc was written, the max smoosh container size is limit to the maxByteBuffersize.- Specified by:
writeToin interfaceSerializer- Throws:
IOException
-
get
- Specified by:
getin interfacecom.google.common.base.Supplier<ColumnarMultiInts>- Specified by:
getin interfaceSupplier<ColumnarMultiInts>
-