msokolov commented on code in PR #12660:
URL: https://github.com/apache/lucene/pull/12660#discussion_r1367971976


##########
lucene/core/src/java/org/apache/lucene/codecs/lucene95/Lucene95HnswVectorsWriter.java:
##########
@@ -50,13 +72,24 @@ public final class Lucene95HnswVectorsWriter extends 
KnnVectorsWriter {
   private final IndexOutput meta, vectorData, vectorIndex;
   private final int M;
   private final int beamWidth;
+  private final int numMergeWorkers;
+  private final ExecutorService exec;
 
   private final List<FieldWriter<?>> fields = new ArrayList<>();
   private boolean finished;
 
-  Lucene95HnswVectorsWriter(SegmentWriteState state, int M, int beamWidth) 
throws IOException {
+  Lucene95HnswVectorsWriter(SegmentWriteState state, int M, int beamWidth, int 
numMergeWorkers)
+      throws IOException {
     this.M = M;
     this.beamWidth = beamWidth;
+    this.numMergeWorkers = numMergeWorkers;
+    if (numMergeWorkers <= 1) {
+      exec = null;
+    } else {
+      exec =
+          Executors.newFixedThreadPool(
+              Runtime.getRuntime().availableProcessors(), new 
NamedThreadFactory("hnsw-merge"));

Review Comment:
   So I *think* that these merge operations are triggered by a single 
background merge thread? But we shouldn't rely on that and should provide 
global control over resources dedicate to this, so something like that (thread 
pool in Format) makes sense. However conceptually the Format doesn't seem right 
to me - as a user, I would want to be able to control this from 
IndexWriterConfig along with other merge-related parameters in IndexWriter like 
buffer size and number of docs before flush. Possibly we could have other 
concurrent processes running during background merge (like merging different 
formats in parallel) and we don't want to have separate thread pools for all of 
those.



-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: issues-unsubscr...@lucene.apache.org

For queries about this service, please contact Infrastructure at:
us...@infra.apache.org


---------------------------------------------------------------------
To unsubscribe, e-mail: issues-unsubscr...@lucene.apache.org
For additional commands, e-mail: issues-h...@lucene.apache.org

Reply via email to