Closed pugnascotia closed 2 years ago
Pinging @elastic/es-analytics-geo (Team:Analytics)
@dnhatn I think you introduce this change. I am wondering why we are visiting the BKD tree twice, why are not just doing this:
void analyzePoints(SegmentReader reader, IndexDiskUsageStats stats) throws IOException {
PointsReader pointsReader = reader.getPointsReader();
if (pointsReader == null) {
return;
}
pointsReader = pointsReader.getMergeInstance();
for (FieldInfo field : reader.getFieldInfos()) {
cancellationChecker.checkForCancellation();
directory.resetBytesRead();
if (field.getPointDimensionCount() > 0) {
final PointValues values = pointsReader.getValues(field.name);
values.intersect(new PointsVisitor());
stats.addPoints(field.name, directory.getBytesRead());
}
}
}
private class PointsVisitor implements PointValues.IntersectVisitor {
PointsVisitor() {
}
@Override
public void visit(int docID) throws IOException {
cancellationChecker.logEvent();
}
@Override
public void visit(int docID, byte[] packedValue) throws IOException {
cancellationChecker.logEvent();
}
@Override
public PointValues.Relation compare(byte[] minPackedValue, byte[] maxPackedValue) {
return PointValues.Relation.CELL_CROSSES_QUERY;
}
}
Pinging @elastic/es-search (Team:Search)
Reassign it to search as this capability was originally developed in that area.
@iverase Thanks for the suggestion. I've adapted your suggestion in https://github.com/elastic/elasticsearch/pull/85499, and it fixes the related test failures. Would you mind taking a look?
Build scan: https://gradle-enterprise.elastic.co/s/dazhr7pkqde5e/tests/:server:test/org.elasticsearch.action.admin.indices.diskusage.IndexDiskUsageAnalyzerTests/testTriangle
Reproduction line:
./gradlew ':server:test' --tests "org.elasticsearch.action.admin.indices.diskusage.IndexDiskUsageAnalyzerTests.testTriangle" -Dtests.seed=606B638E7A8FB3C4 -Dtests.locale=it-IT -Dtests.timezone=America/Costa_Rica -Druntime.java=17
Applicable branches: 8.2
Reproduces locally?: Yes
Failure history: https://gradle-enterprise.elastic.co/scans/tests?tests.container=org.elasticsearch.action.admin.indices.diskusage.IndexDiskUsageAnalyzerTests&tests.test=testTriangle
Failure excerpt: