Skip to content

Commit 53a5f0a

Browse files
authored
Fix intermittent failure of DirectIOIT (#128463)
1 parent 015581e commit 53a5f0a

File tree

1 file changed

+30
-23
lines changed
  • server/src/internalClusterTest/java/org/elasticsearch/index/store

1 file changed

+30
-23
lines changed

server/src/internalClusterTest/java/org/elasticsearch/index/store/DirectIOIT.java

Lines changed: 30 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,9 @@
2424
import java.util.List;
2525
import java.util.stream.IntStream;
2626

27+
import static org.elasticsearch.test.hamcrest.ElasticsearchAssertions.assertAcked;
28+
import static org.elasticsearch.test.hamcrest.ElasticsearchAssertions.assertHitCount;
29+
2730
@LuceneTestCase.SuppressCodecs("*") // only use our own codecs
2831
public class DirectIOIT extends ESIntegTestCase {
2932

@@ -33,30 +36,31 @@ protected Collection<Class<? extends Plugin>> nodePlugins() {
3336
}
3437

3538
private void indexVectors() {
36-
internalCluster().startNode();
37-
prepareCreate("vectors").setSettings(Settings.builder().put(InternalSettingsPlugin.USE_COMPOUND_FILE.getKey(), false))
38-
.setMapping("""
39-
{
40-
"properties": {
41-
"vector": {
42-
"type": "dense_vector",
43-
"dims": 64,
44-
"element_type": "float",
45-
"index": true,
46-
"similarity": "l2_norm",
47-
"index_options": {
48-
"type": "bbq_flat"
39+
assertAcked(
40+
prepareCreate("foo-vectors").setSettings(Settings.builder().put(InternalSettingsPlugin.USE_COMPOUND_FILE.getKey(), false))
41+
.setMapping("""
42+
{
43+
"properties": {
44+
"fooVector": {
45+
"type": "dense_vector",
46+
"dims": 64,
47+
"element_type": "float",
48+
"index": true,
49+
"similarity": "l2_norm",
50+
"index_options": {
51+
"type": "bbq_flat"
52+
}
53+
}
4954
}
5055
}
51-
}
52-
}
53-
""")
54-
.get();
55-
ensureGreen("vectors");
56+
""")
57+
);
58+
ensureGreen("foo-vectors");
5659

5760
for (int i = 0; i < 1000; i++) {
58-
indexDoc("vectors", Integer.toString(i), "vector", IntStream.range(0, 64).mapToDouble(d -> randomFloat()).toArray());
61+
indexDoc("foo-vectors", Integer.toString(i), "fooVector", IntStream.range(0, 64).mapToDouble(d -> randomFloat()).toArray());
5962
}
63+
refresh();
6064
}
6165

6266
@TestLogging(value = "org.elasticsearch.index.store.FsDirectoryFactory:DEBUG", reason = "to capture trace logging for direct IO")
@@ -75,11 +79,14 @@ public void testDirectIOUsed() {
7579
indexVectors();
7680

7781
// do a search
78-
prepareSearch("vectors").setKnnSearch(
79-
List.of(new KnnSearchBuilder("vector", new VectorData(null, new byte[64]), 10, 20, null, null))
80-
).get();
81-
82+
var knn = List.of(new KnnSearchBuilder("fooVector", new VectorData(null, new byte[64]), 10, 20, null, null));
83+
assertHitCount(prepareSearch("foo-vectors").setKnnSearch(knn), 10);
8284
mockLog.assertAllExpectationsMatched();
8385
}
8486
}
87+
88+
@Override
89+
protected boolean addMockFSIndexStore() {
90+
return false; // we require to always use the "real" hybrid directory
91+
}
8592
}

0 commit comments

Comments
 (0)