Skip to content

Commit d0c5926

Browse files
authored
Tweak SingletonLongToSingletonOrdinalDelegate (#133529)
By keeping a buffer int[] around to convert raw values from block buffer to integers instead of creating one each time appending ordinals.
1 parent 813a45b commit d0c5926

File tree

1 file changed

+5
-3
lines changed

1 file changed

+5
-3
lines changed

server/src/main/java/org/elasticsearch/index/codec/tsdb/es819/ES819TSDBDocValuesProducer.java

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1719,6 +1719,7 @@ private static class TermsDictEntry {
17191719

17201720
static final class SingletonLongToSingletonOrdinalDelegate implements BlockLoader.SingletonLongBuilder {
17211721
private final BlockLoader.SingletonOrdinalsBuilder builder;
1722+
private final int[] buffer = new int[ES819TSDBDocValuesFormat.NUMERIC_BLOCK_SIZE];
17221723

17231724
SingletonLongToSingletonOrdinalDelegate(BlockLoader.SingletonOrdinalsBuilder builder) {
17241725
this.builder = builder;
@@ -1731,20 +1732,21 @@ public BlockLoader.SingletonLongBuilder appendLong(long value) {
17311732

17321733
@Override
17331734
public BlockLoader.SingletonLongBuilder appendLongs(long[] values, int from, int length) {
1735+
assert length <= buffer.length;
17341736
// Unfortunately, no array copy here...
17351737
// Since we need to loop here, let's also keep track of min/max.
17361738
int minOrd = Integer.MAX_VALUE;
17371739
int maxOrd = Integer.MIN_VALUE;
17381740
int counter = 0;
1739-
int[] convertedOrds = new int[length];
17401741
int end = from + length;
17411742
for (int j = from; j < end; j++) {
17421743
int ord = Math.toIntExact(values[j]);
1743-
convertedOrds[counter++] = ord;
1744+
buffer[counter++] = ord;
17441745
minOrd = Math.min(minOrd, ord);
17451746
maxOrd = Math.max(maxOrd, ord);
17461747
}
1747-
builder.appendOrds(convertedOrds, 0, length, minOrd, maxOrd);
1748+
assert counter == length;
1749+
builder.appendOrds(buffer, 0, length, minOrd, maxOrd);
17481750
return this;
17491751
}
17501752

0 commit comments

Comments
 (0)