Skip to content

Commit 1bc1b68

Browse files
committed
Logging with times for resource acquisition, flush and merge
1 parent c5224b8 commit 1bc1b68

File tree

2 files changed

+12
-0
lines changed

2 files changed

+12
-0
lines changed

x-pack/plugin/gpu/src/main/java/org/elasticsearch/xpack/gpu/codec/CuVSResourceManager.java

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -130,6 +130,7 @@ private int numLockedResources() {
130130
@Override
131131
public ManagedCuVSResources acquire(int numVectors, int dims, CuVSMatrix.DataType dataType) throws InterruptedException {
132132
try {
133+
var started = System.nanoTime();
133134
lock.lock();
134135

135136
boolean allConditionsMet = false;
@@ -181,6 +182,8 @@ public ManagedCuVSResources acquire(int numVectors, int dims, CuVSMatrix.DataTyp
181182
enoughResourcesCondition.await();
182183
}
183184
}
185+
var elapsed = started - System.nanoTime();
186+
logger.debug("Resource acquired in [{}ms]", elapsed / 1e-6);
184187
res.locked = true;
185188
return res;
186189
} finally {

x-pack/plugin/gpu/src/main/java/org/elasticsearch/xpack/gpu/codec/ES92GpuHnswVectorsWriter.java

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -162,17 +162,21 @@ public KnnFieldVectorsWriter<?> addField(FieldInfo fieldInfo) throws IOException
162162
@Override
163163
// TODO: fix sorted index case
164164
public void flush(int maxDoc, Sorter.DocMap sortMap) throws IOException {
165+
var started = System.nanoTime();
165166
flatVectorWriter.flush(maxDoc, sortMap);
166167
try {
167168
flushFieldsWithoutMemoryMappedFile(sortMap);
168169
} catch (Throwable t) {
169170
throw new IOException("Failed to flush GPU index: ", t);
170171
}
172+
var elapsed = started - System.nanoTime();
173+
logger.debug("Flush total time [{}ms]", elapsed / 1e-6);
171174
}
172175

173176
private void flushFieldsWithoutMemoryMappedFile(Sorter.DocMap sortMap) throws IOException, InterruptedException {
174177
// No tmp file written, or the file cannot be mmapped
175178
for (FieldWriter field : fields) {
179+
var started = System.nanoTime();
176180
var fieldInfo = field.fieldInfo;
177181

178182
var numVectors = field.flatFieldVectorsWriter.getVectors().size();
@@ -205,6 +209,8 @@ private void flushFieldsWithoutMemoryMappedFile(Sorter.DocMap sortMap) throws IO
205209
cuVSResourceManager.release(cuVSResources);
206210
}
207211
}
212+
var elapsed = started - System.nanoTime();
213+
logger.debug("Flushed [{}] vectors in [{}ms]", numVectors, elapsed / 1e-6);
208214
}
209215
}
210216

@@ -447,6 +453,7 @@ private static void deleteFilesIgnoringExceptions(Directory dir, String fileName
447453
@Override
448454
// fix sorted index case
449455
public void mergeOneField(FieldInfo fieldInfo, MergeState mergeState) throws IOException {
456+
var started = System.nanoTime();
450457
flatVectorWriter.mergeOneField(fieldInfo, mergeState);
451458
final int numVectors;
452459
String tempRawVectorsFileName = null;
@@ -526,6 +533,8 @@ public void mergeOneField(FieldInfo fieldInfo, MergeState mergeState) throws IOE
526533
} finally {
527534
deleteFilesIgnoringExceptions(mergeState.segmentInfo.dir, tempRawVectorsFileName);
528535
}
536+
var elapsed = started - System.nanoTime();
537+
logger.debug("Merged [{}] vectors in [{}ms]", numVectors, elapsed / 1e-6);
529538
}
530539

531540
private ByteVectorValues getMergedByteVectorValues(FieldInfo fieldInfo, MergeState mergeState) throws IOException {

0 commit comments

Comments
 (0)