Skip to content

Commit 9926f91

Browse files
committed
PR comments: report with doc add time (vs. total index time -- including reads)
1 parent e01b764 commit 9926f91

File tree

2 files changed

+20
-7
lines changed

2 files changed

+20
-7
lines changed

qa/vector/src/main/java/org/elasticsearch/test/knn/KnnIndexTester.java

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -303,7 +303,14 @@ public String toString() {
303303
return "No results available.";
304304
}
305305

306-
String[] indexingHeaders = { "index_name", "index_type", "num_docs", "index_time(ms)", "force_merge_time(ms)", "num_segments" };
306+
String[] indexingHeaders = {
307+
"index_name",
308+
"index_type",
309+
"num_docs",
310+
"doc_add_time(ms)",
311+
"total_index_time(ms)",
312+
"force_merge_time(ms)",
313+
"num_segments" };
307314

308315
// Define column headers
309316
String[] searchHeaders = {
@@ -329,6 +336,7 @@ public String toString() {
329336
indexResult.indexName,
330337
indexResult.indexType,
331338
Integer.toString(indexResult.numDocs),
339+
Long.toString(indexResult.docAddTimeMS),
332340
Long.toString(indexResult.indexTimeMS),
333341
Long.toString(indexResult.forceMergeTimeMS),
334342
Integer.toString(indexResult.numSegments) };
@@ -411,6 +419,7 @@ private int[] calculateColumnWidths(String[] headers, String[]... data) {
411419

412420
static class Results {
413421
final String indexType, indexName;
422+
public long docAddTimeMS;
414423
int numDocs;
415424
final float filterSelectivity;
416425
long indexTimeMS;

qa/vector/src/main/java/org/elasticsearch/test/knn/KnnIndexer.java

Lines changed: 10 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -185,15 +185,20 @@ public boolean isEnabled(String component) {
185185

186186
VectorReader inReader = VectorReader.create(in, dim, vectorEncoding, offsetByteSize);
187187
try (ExecutorService exec = Executors.newFixedThreadPool(numIndexThreads, r -> new Thread(r, "KnnIndexer-Thread"))) {
188-
List<Future<?>> threads = new ArrayList<>();
188+
List<Future<?>> futures = new ArrayList<>();
189+
List<IndexerThread> threads = new ArrayList<>();
189190
for (int i = 0; i < numIndexThreads; i++) {
190-
Thread t = new IndexerThread(iw, inReader, dim, vectorEncoding, fieldType, numDocsIndexed, numDocs);
191+
var t = new IndexerThread(iw, inReader, dim, vectorEncoding, fieldType, numDocsIndexed, numDocs);
192+
threads.add(t);
191193
t.setDaemon(true);
192-
threads.add(exec.submit(t));
194+
futures.add(exec.submit(t));
193195
}
194-
for (Future<?> t : threads) {
195-
t.get();
196+
for (Future<?> future : futures) {
197+
future.get();
196198
}
199+
result.docAddTimeMS = TimeUnit.NANOSECONDS.toMillis(
200+
threads.stream().mapToLong(x -> x.docAddTime).sum() / numIndexThreads
201+
);
197202
}
198203
}
199204
}
@@ -288,7 +293,6 @@ public void run() {
288293
} catch (IOException ioe) {
289294
throw new UncheckedIOException(ioe);
290295
}
291-
logger.debug("Index thread times: [{}ms] read, [{}ms] add doc", readTime / 1_000_000, docAddTime / 1_000_000);
292296
}
293297

294298
private void _run() throws IOException {

0 commit comments

Comments
 (0)