(index) Optimize buffer handling in PrioDocIdsTransformer

This commit is contained in:
Viktor Lofgren 2024-09-29 17:20:49 +02:00
parent a8cc98a0f6
commit 69d99c91dd

View File

@ -57,6 +57,13 @@ public class PrioDocIdsTransformer implements LongArrayTransformations.LongIOTra
readChannel.read(readBuffer); readChannel.read(readBuffer);
readBuffer.flip(); readBuffer.flip();
if (writeBuffer.remaining() < 32) {
writeBuffer.flip();
int written = writeChannel.write(writeBuffer, writeOffsetB);
writeOffsetB += written;
writeBuffer.clear();
}
if (!wroteHeader) { if (!wroteHeader) {
// write 11b header // write 11b header
bitWriter.putBits(3, 2); bitWriter.putBits(3, 2);
@ -78,7 +85,7 @@ public class PrioDocIdsTransformer implements LongArrayTransformations.LongIOTra
} }
while (readBuffer.hasRemaining()) { while (readBuffer.hasRemaining()) {
if (writeBuffer.remaining() < 16) { if (writeBuffer.remaining() < 32) {
writeBuffer.flip(); writeBuffer.flip();
int written = writeChannel.write(writeBuffer, writeOffsetB); int written = writeChannel.write(writeBuffer, writeOffsetB);
writeOffsetB += written; writeOffsetB += written;