Skip to content

Commit 0546e22

Browse files
committed
wip
1 parent 9f4aff8 commit 0546e22

File tree

3 files changed

+40
-25
lines changed

3 files changed

+40
-25
lines changed

fdb-record-layer-lucene/src/test/java/com/apple/foundationdb/record/lucene/LuceneIndexGetMetadataInfoTest.java

+6-17
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,6 @@
2424
import com.apple.foundationdb.record.provider.foundationdb.FDBRecordStore;
2525
import com.apple.foundationdb.record.provider.foundationdb.FDBRecordStoreTestBase;
2626
import com.apple.foundationdb.record.provider.foundationdb.IndexOperationResult;
27-
import com.apple.foundationdb.record.provider.foundationdb.OnlineIndexer;
2827
import com.apple.foundationdb.tuple.Tuple;
2928
import com.google.protobuf.ByteString;
3029
import org.hamcrest.Matchers;
@@ -38,7 +37,6 @@
3837
import java.time.Instant;
3938
import java.util.List;
4039
import java.util.Map;
41-
import java.util.Objects;
4240
import java.util.Set;
4341
import java.util.stream.Collectors;
4442
import java.util.stream.Stream;
@@ -105,7 +103,9 @@ void getMetadataPartitioned(boolean justPartitionInfo, boolean isGrouped) {
105103
dataModel.saveRecords(10, start, context, i / 3);
106104
commit(context);
107105
}
108-
explicitMergeIndex(dataModel);
106+
try (final FDBRecordContext context = openContext()) {
107+
dataModel.explicitMergeIndex(context, timer);
108+
}
109109
}
110110

111111
final Set<Tuple> groupingKeys = isGrouped ? dataModel.groupingKeys() : Set.of(Tuple.from());
@@ -150,7 +150,9 @@ void getMetadataAfterDelete() {
150150
dataModel.saveRecords(10, start, context, i / 3);
151151
commit(context);
152152
}
153-
explicitMergeIndex(dataModel);
153+
try (final FDBRecordContext context = openContext()) {
154+
dataModel.explicitMergeIndex(context, timer);
155+
}
154156
}
155157

156158
final Tuple groupingKey = Tuple.from();
@@ -229,17 +231,4 @@ private static void assertLessThan(final ByteString lesserOne, final ByteString
229231
private static int segmentCountToFileCount(final int segmentCount) {
230232
return segmentCount * 4 + 1;
231233
}
232-
233-
private void explicitMergeIndex(LuceneIndexTestDataModel dataModel) {
234-
try (FDBRecordContext context = openContext()) {
235-
FDBRecordStore recordStore = Objects.requireNonNull(dataModel.schemaSetup.apply(context));
236-
try (OnlineIndexer indexBuilder = OnlineIndexer.newBuilder()
237-
.setRecordStore(recordStore)
238-
.setIndex(dataModel.index)
239-
.setTimer(timer)
240-
.build()) {
241-
indexBuilder.mergeIndex();
242-
}
243-
}
244-
}
245234
}

fdb-record-layer-lucene/src/test/java/com/apple/foundationdb/record/lucene/LuceneIndexScrubbingTest.java

+21-8
Original file line numberDiff line numberDiff line change
@@ -91,12 +91,15 @@ void luceneIndexScrubMissingDataModelNoIssues(boolean isSynthetic, boolean isGro
9191
.setPartitionHighWatermark(isPartitioned ? 10 : 0)
9292
.build();
9393

94-
try (final FDBRecordContext context = openContext()) {
95-
FDBRecordStore store = dataModel.createOrOpenRecordStore(context);
96-
dataModel.saveRecords(15, 1007, context, 1);
97-
context.commit();
94+
for (int i = 0; i < 14; i++) {
95+
try (final FDBRecordContext context = openContext()) {
96+
dataModel.saveRecords(3, i * 1007, context, i / 6);
97+
context.commit();
98+
}
99+
try (final FDBRecordContext context = openContext()) {
100+
dataModel.explicitMergeIndex(context, timer);
101+
}
98102
}
99-
100103
try (final FDBRecordContext context = openContext()) {
101104
FDBRecordStore store = dataModel.createOrOpenRecordStore(context);
102105
boolean atLeastOnce = false;
@@ -170,15 +173,25 @@ void luceneIndexScrubMissingDataModel(boolean isSynthetic, boolean isGrouped, bo
170173
final InjectedFailureRepository injectedFailures = new InjectedFailureRepository();
171174
registry.overrideFactory(new MockedLuceneIndexMaintainerFactory(injectedFailures));
172175

176+
for (int i = 0; i < 14; i++) {
177+
try (final FDBRecordContext context = openContext()) {
178+
dataModel.saveRecords(3, i * 1007, context, i / 6);
179+
context.commit();
180+
}
181+
try (final FDBRecordContext context = openContext()) {
182+
dataModel.explicitMergeIndex(context, timer);
183+
}
184+
}
185+
173186
try (final FDBRecordContext context = openContext()) {
174187
// Write some documents
175-
dataModel.saveRecords(15, 1007, context, 1);
188+
dataModel.saveRecords(15, 10, context, 1);
176189
// Trigger failures
177190
injectedFailures.setFlag(LUCENE_MAINTAINER_SKIP_INDEX_UPDATE);
178191
// Some overwrites (with index update failures)
179-
dataModel.saveRecords(5, 1007, context, 1);
192+
dataModel.saveRecords(5, 10, context, 1);
180193
// some new (with index update failures)
181-
dataModel.saveRecords(5, 7007, context, 1);
194+
dataModel.saveRecords(5, 50, context, 1);
182195
injectedFailures.setFlag(LUCENE_MAINTAINER_SKIP_INDEX_UPDATE, false);
183196
context.commit();
184197
}

fdb-record-layer-lucene/src/test/java/com/apple/foundationdb/record/lucene/LuceneIndexTestDataModel.java

+13
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,7 @@
3232
import com.apple.foundationdb.record.provider.foundationdb.FDBRecordStore;
3333
import com.apple.foundationdb.record.provider.foundationdb.FDBStoreTimer;
3434
import com.apple.foundationdb.record.provider.foundationdb.FDBStoredRecord;
35+
import com.apple.foundationdb.record.provider.foundationdb.OnlineIndexer;
3536
import com.apple.foundationdb.record.provider.foundationdb.keyspace.KeySpacePath;
3637
import com.apple.foundationdb.record.test.TestKeySpace;
3738
import com.apple.foundationdb.record.test.TestKeySpacePathManagerExtension;
@@ -331,6 +332,18 @@ static RecordMetaDataBuilder createBaseMetaDataBuilder() {
331332
return metaDataBuilder;
332333
}
333334

335+
public void explicitMergeIndex(final FDBRecordContext context, @Nullable FDBStoreTimer timer) {
336+
FDBRecordStore recordStore = Objects.requireNonNull(schemaSetup.apply(context));
337+
try (OnlineIndexer indexBuilder = OnlineIndexer.newBuilder()
338+
.setRecordStore(recordStore)
339+
.setIndex(index)
340+
.setTimer(timer)
341+
.build()) {
342+
indexBuilder.mergeIndex();
343+
}
344+
}
345+
346+
334347
public Integer nextInt(final int bound) {
335348
return random.nextInt(bound);
336349
}

0 commit comments

Comments
 (0)