Package org.apache.druid.segment.data
Class CompressedVSizeColumnarMultiIntsSupplier
java.lang.Object
org.apache.druid.segment.data.CompressedVSizeColumnarMultiIntsSupplier
- All Implemented Interfaces:
com.google.common.base.Supplier<ColumnarMultiInts>,Supplier<ColumnarMultiInts>,WritableSupplier<ColumnarMultiInts>,Serializer
public class CompressedVSizeColumnarMultiIntsSupplier
extends Object
implements WritableSupplier<ColumnarMultiInts>
Format -
byte 1 - version
offsets -
ColumnarInts of length num of rows + 1 representing offsets of starting index of first element of
each row in values index and last element equal to length of values column, the last element in the offsets
represents the total length of values column.
values - ColumnarInts representing concatenated values of all rows-
Nested Class Summary
Nested ClassesModifier and TypeClassDescriptionstatic class -
Method Summary
Modifier and TypeMethodDescriptionfromByteBuffer(ByteBuffer buffer, ByteOrder order, SmooshedFileMapper smooshMapper) fromIterable(Iterable<IndexedInts> objectsIterable, 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.java.util.common.io.smoosh.FileSmoosher)call.voidwriteTo(WritableByteChannel channel, FileSmoosher smoosher) Writes the serialized form of this object.
-
Method Details
-
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.java.util.common.io.smoosh.FileSmoosher)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 thewhere additional channels can be created viainvalid @link
{@link FileSmoosher],FileSmoosher.addWithSmooshedWriter(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
-
fromByteBuffer
public static CompressedVSizeColumnarMultiIntsSupplier fromByteBuffer(ByteBuffer buffer, ByteOrder order, SmooshedFileMapper smooshMapper) -
fromIterable
public static CompressedVSizeColumnarMultiIntsSupplier fromIterable(Iterable<IndexedInts> objectsIterable, int maxValue, ByteOrder byteOrder, CompressionStrategy compression, Closer closer) -
get
- Specified by:
getin interfacecom.google.common.base.Supplier<ColumnarMultiInts>- Specified by:
getin interfaceSupplier<ColumnarMultiInts>
-