msfroh commented on a change in pull request #1155: LUCENE-8962: Add ability to
selectively merge on commit
URL: https://github.com/apache/lucene-solr/pull/1155#discussion_r368187135
##########
File path: lucene/core/src/java/org/apache/lucene/index/IndexWriter.java
##########
@@ -3223,15 +3259,44 @@ private long prepareCommitInternal() throws
IOException {
// sneak into the commit point:
toCommit = segmentInfos.clone();
+ if (anyChanges) {
+ mergeAwaitLatchRef = new AtomicReference<>();
Review comment:
This is a little bit of hackery to share state between this thread and the
threads that do the merges.
We initialize the ref here, pass it to `waitForMergeOnCommitPolicy` on the
next line to make sure it gets shared with any computed `OneMerge`s. Then,
before we release the IW lock (so we're guaranteed that those `OneMerge`s
haven't run yet), we populate the ref with the `CountdownLatch` (once we know
what we're counting down).
That said, I think I could simplify things a lot by not using
`OneMergeWrappingMergePolicy`, but rather decorating the returned `OneMerge`s
(if applicable) directly. I'm going to take a stab at that approach in my next
commit.
----------------------------------------------------------------
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.
For queries about this service, please contact Infrastructure at:
[email protected]
With regards,
Apache Git Services
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]