Skip to content

Commit 7fedb4a

Browse files
committed
iter
1 parent aeb9f93 commit 7fedb4a

File tree

2 files changed

+15
-12
lines changed

2 files changed

+15
-12
lines changed

x-pack/plugin/downsample/src/main/java/org/elasticsearch/xpack/downsample/DimensionFieldProducer.java

Lines changed: 11 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -56,13 +56,16 @@ void collectOnce(final Object value) {
5656
* This is an expensive check, that slows down downsampling significantly.
5757
* Given that index is sorted by tsid as primary key, this shouldn't really happen.
5858
*/
59-
boolean validate(FormattedDocValues docValues, int docId) throws IOException {
60-
if (docValues.advanceExact(docId)) {
61-
int docValueCount = docValues.docValueCount();
62-
for (int i = 0; i < docValueCount; i++) {
63-
var value = docValues.nextValue();
64-
if (value.equals(this.value) == false) {
65-
assert false : "Dimension value changed without tsid change [" + value + "] != [" + this.value + "]";
59+
boolean validate(FormattedDocValues docValues, IntArrayList buffer) throws IOException {
60+
for (int i = 0; i < buffer.size(); i++) {
61+
int docId = buffer.get(i);
62+
if (docValues.advanceExact(docId)) {
63+
int docValueCount = docValues.docValueCount();
64+
for (int j = 0; j < docValueCount; j++) {
65+
var value = docValues.nextValue();
66+
if (value.equals(this.value) == false) {
67+
assert false : "Dimension value changed without tsid change [" + value + "] != [" + this.value + "]";
68+
}
6669
}
6770
}
6871
}
@@ -84,6 +87,7 @@ public boolean isEmpty() {
8487
@Override
8588
public void collect(FormattedDocValues docValues, IntArrayList buffer) throws IOException {
8689
if (dimension.isEmpty == false) {
90+
assert dimension.validate(docValues, buffer);
8791
return;
8892
}
8993

x-pack/plugin/downsample/src/main/java/org/elasticsearch/xpack/downsample/DownsampleShardIndexer.java

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -433,11 +433,10 @@ public void collect(int docId, long owningBucketOrd) throws IOException {
433433
}
434434
bucketsCreated++;
435435
}
436+
buffer.buffer[buffer.elementsCount++] = docId;
436437
if (buffer.size() == DOCID_BUFFER_SIZE) {
437438
bulkCollection();
438439
}
439-
440-
buffer.buffer[buffer.elementsCount++] = docId;
441440
}
442441

443442
@Override
@@ -456,9 +455,9 @@ void bulkCollection() throws IOException {
456455

457456
downsampleBucketBuilder.collectDocCount(buffer, docCountProvider);
458457
// Iterate over all field values and collect the doc_values for this docId
459-
for (int j = 0; j < fieldProducers.length; j++) {
460-
AbstractDownsampleFieldProducer fieldProducer = fieldProducers[j];
461-
FormattedDocValues docValues = formattedDocValues[j];
458+
for (int i = 0; i < fieldProducers.length; i++) {
459+
AbstractDownsampleFieldProducer fieldProducer = fieldProducers[i];
460+
FormattedDocValues docValues = formattedDocValues[i];
462461
fieldProducer.collect(docValues, buffer);
463462
}
464463

0 commit comments

Comments
 (0)