Skip to content

Commit 9928b20

Browse files
committed
Make sure we run JVectorMergeWithDeletedDocsTest w/o PQ to trigger leading segment merge path
Signed-off-by: Andriy Redko <drreta@gmail.com>
1 parent 3a4203c commit 9928b20

1 file changed

Lines changed: 18 additions & 16 deletions

File tree

src/test/java/org/opensearch/knn/index/codec/jvector/JVectorMergeWithDeletedDocsTests.java

Lines changed: 18 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -74,7 +74,7 @@ public void testMergesWithOneDeleteAndOneNullVector() throws IOException {
7474

7575
IndexWriterConfig config = newIndexWriterConfig();
7676
config.setUseCompoundFile(false);
77-
config.setCodec(getCodec(1, random().nextBoolean()));
77+
config.setCodec(getCodec(randomFrom(1, 1024), random().nextBoolean()));
7878
config.setMergePolicy(new ForceMergesOnlyMergePolicy());
7979
config.setMergeScheduler(new SerialMergeScheduler());
8080

@@ -156,7 +156,7 @@ public void testMergesWithOneNonNullVector() throws IOException {
156156

157157
IndexWriterConfig config = newIndexWriterConfig();
158158
config.setUseCompoundFile(false);
159-
config.setCodec(getCodec(1, random().nextBoolean()));
159+
config.setCodec(getCodec(randomFrom(1, 1024), random().nextBoolean()));
160160
config.setMergePolicy(new ForceMergesOnlyMergePolicy());
161161
config.setMergeScheduler(new SerialMergeScheduler());
162162

@@ -228,7 +228,7 @@ public void testMergesWithOneNullVector() throws IOException {
228228

229229
IndexWriterConfig config = newIndexWriterConfig();
230230
config.setUseCompoundFile(false);
231-
config.setCodec(getCodec(1, random().nextBoolean()));
231+
config.setCodec(getCodec(randomFrom(1, 1024), random().nextBoolean()));
232232
config.setMergePolicy(new ForceMergesOnlyMergePolicy());
233233
config.setMergeScheduler(new SerialMergeScheduler());
234234

@@ -309,7 +309,7 @@ public void testMergesWithNullVectorsAndLastLeadingSegment() throws IOException
309309

310310
IndexWriterConfig config = newIndexWriterConfig();
311311
config.setUseCompoundFile(false);
312-
config.setCodec(getCodec(1, random().nextBoolean()));
312+
config.setCodec(getCodec(randomFrom(1, 1024), random().nextBoolean()));
313313
config.setMergePolicy(new ForceMergesOnlyMergePolicy());
314314
config.setMergeScheduler(new SerialMergeScheduler());
315315

@@ -390,9 +390,7 @@ public void testMergesWithNoVectors() throws IOException {
390390

391391
IndexWriterConfig config = newIndexWriterConfig();
392392
config.setUseCompoundFile(false);
393-
config.setCodec(
394-
getCodec(random().nextBoolean() ? 1 : 10, random().nextBoolean())
395-
); /* 1 to check empty PQ vectors, 10 to check empty graph */
393+
config.setCodec(getCodec(randomFrom(1, 1024), random().nextBoolean())); /* 1 to check empty PQ vectors, 10 to check empty graph */
396394
config.setMergePolicy(new ForceMergesOnlyMergePolicy());
397395
config.setMergeScheduler(new SerialMergeScheduler());
398396

@@ -533,7 +531,7 @@ public void testMergesWithNoVectorsAndDifferentFields() throws IOException {
533531
public void testMergeRefineWithEmptyReaderReproducesIssue600() throws IOException {
534532
final int dimension = 16;
535533
// minBatch == 1 => PQ codebooks are always computed on merge
536-
final int minBatch = 1;
534+
final int minBatch = randomFrom(1, 1024);
537535
final boolean hierarchical = random().nextBoolean();
538536

539537
final Path emptyGraphIndexPath = createTempDir();
@@ -638,7 +636,7 @@ public void testMergesWithNullVectors() throws IOException {
638636

639637
IndexWriterConfig config = newIndexWriterConfig();
640638
config.setUseCompoundFile(false);
641-
config.setCodec(getCodec(1, random().nextBoolean()));
639+
config.setCodec(getCodec(randomFrom(1, 1024), random().nextBoolean()));
642640
config.setMergePolicy(new ForceMergesOnlyMergePolicy());
643641
config.setMergeScheduler(new SerialMergeScheduler());
644642

@@ -713,8 +711,7 @@ public void testMultipleMergesWithVariousDeletionPatterns() throws IOException {
713711

714712
IndexWriterConfig config = newIndexWriterConfig();
715713
config.setUseCompoundFile(false);
716-
config.setCodec(getCodec(1, random().nextBoolean())); // Enable PQ
717-
// config.setCodec(getCodec(1000000)); // Disable PQ
714+
config.setCodec(getCodec(randomFrom(1, 1024), random().nextBoolean())); // Enable PQ
718715
config.setMergePolicy(new ForceMergesOnlyMergePolicy());
719716
config.setMergeScheduler(new SerialMergeScheduler());
720717

@@ -988,7 +985,7 @@ public void testMergesWithRootVectorAndNestedChildren() throws IOException {
988985

989986
IndexWriterConfig config = newIndexWriterConfig();
990987
config.setUseCompoundFile(false);
991-
config.setCodec(getCodec(1, random().nextBoolean()));
988+
config.setCodec(getCodec(randomFrom(1, 1024), random().nextBoolean()));
992989
config.setMergePolicy(new ForceMergesOnlyMergePolicy());
993990
config.setMergeScheduler(new SerialMergeScheduler());
994991

@@ -1241,7 +1238,7 @@ public void testMergesWithRootNullVectorAndNestedChildren() throws IOException {
12411238

12421239
IndexWriterConfig config = newIndexWriterConfig();
12431240
config.setUseCompoundFile(false);
1244-
config.setCodec(getCodec(1, random().nextBoolean()));
1241+
config.setCodec(getCodec(randomFrom(1, 1024), random().nextBoolean()));
12451242
config.setMergePolicy(new ForceMergesOnlyMergePolicy());
12461243
config.setMergeScheduler(new SerialMergeScheduler());
12471244

@@ -1392,7 +1389,7 @@ public void testMergesWithRootVectorAndNestedChildrenVectors() throws IOExceptio
13921389

13931390
IndexWriterConfig config = newIndexWriterConfig();
13941391
config.setUseCompoundFile(false);
1395-
config.setCodec(getCodec(1, random().nextBoolean()));
1392+
config.setCodec(getCodec(randomFrom(1, 1024), random().nextBoolean()));
13961393
config.setMergePolicy(new ForceMergesOnlyMergePolicy());
13971394
config.setMergeScheduler(new SerialMergeScheduler());
13981395

@@ -1549,7 +1546,7 @@ public void testMergesWithRootNoVectorAndNestedChildrenNoVector() throws IOExcep
15491546

15501547
IndexWriterConfig config = newIndexWriterConfig();
15511548
config.setUseCompoundFile(false);
1552-
config.setCodec(getCodec(1, random().nextBoolean()));
1549+
config.setCodec(getCodec(randomFrom(1, 1024), random().nextBoolean()));
15531550
config.setMergePolicy(new ForceMergesOnlyMergePolicy());
15541551
config.setMergeScheduler(new SerialMergeScheduler());
15551552

@@ -1670,6 +1667,11 @@ public void testMergesWithRootNoVectorAndNestedChildrenNoVector() throws IOExcep
16701667
}
16711668
}
16721669

1670+
private <T> T randomFrom(T... values) {
1671+
int index = random().nextInt(values.length);
1672+
return values[index];
1673+
}
1674+
16731675
private static float[] getVector(final IndexReader reader, final String field, final int doc) throws IOException {
16741676
for (LeafReaderContext context : reader.leaves()) {
16751677
final FloatVectorValues vectorValues = context.reader().getFloatVectorValues(field);
@@ -1689,6 +1691,6 @@ private static float[] getVector(final IndexReader reader, final String field, f
16891691
}
16901692
}
16911693

1692-
throw new IllegalStateException("The docId " + doc + " expected but was not found");
1694+
return null;
16931695
}
16941696
}

0 commit comments

Comments
 (0)