Package org.apache.lucene.util.packed
Class BulkOperation
java.lang.Object
org.apache.lucene.util.packed.BulkOperation
- All Implemented Interfaces:
PackedInts.Decoder
,PackedInts.Encoder
- Direct Known Subclasses:
BulkOperationPacked
,BulkOperationPackedSingleBlock
Efficient sequential read/write of packed integers.
-
Field Summary
FieldsModifier and TypeFieldDescriptionprivate static final BulkOperation[]
private static final BulkOperation[]
-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionfinal int
computeIterations
(int valueCount, int ramBudget) For every number of bits per value, there is a minimum number of blocks (b) / values (v) you need to write in order to reach the next block boundary:static BulkOperation
of
(PackedInts.Format format, int bitsPerValue) protected int
writeLong
(long block, byte[] blocks, int blocksOffset) Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
Methods inherited from interface org.apache.lucene.util.packed.PackedInts.Decoder
byteBlockCount, byteValueCount, decode, decode, decode, decode, longBlockCount, longValueCount
Methods inherited from interface org.apache.lucene.util.packed.PackedInts.Encoder
byteBlockCount, byteValueCount, encode, encode, encode, encode, longBlockCount, longValueCount
-
Field Details
-
packedBulkOps
-
packedSingleBlockBulkOps
-
-
Constructor Details
-
BulkOperation
BulkOperation()
-
-
Method Details
-
of
-
writeLong
protected int writeLong(long block, byte[] blocks, int blocksOffset) -
computeIterations
public final int computeIterations(int valueCount, int ramBudget) For every number of bits per value, there is a minimum number of blocks (b) / values (v) you need to write in order to reach the next block boundary:- 16 bits per value -> b=2, v=1 - 24 bits per value -> b=3, v=1 - 50 bits per value -> b=25, v=4 - 63 bits per value -> b=63, v=8 - ...
A bulk read consists in copyingiterations*v
values that are contained initerations*b
blocks into along[]
(higher values ofiterations
are likely to yield a better throughput): this requires n * (b + 8v) bytes of memory.This method computes
iterations
asramBudget / (b + 8v)
(since a long is 8 bytes).
-