jimczi opened a new pull request, #16570: URL: https://github.com/apache/lucene/pull/16570
Removes `ReadersAndUpdates.mergingDVUpdates`, the in-memory buffer that held every doc-values update resolved on a segment while it was being merged so it could be carried over to the merged segment. Unlike deletes, which buffer only doc ids, numeric and binary doc-values updates buffer their actual values (the longs and byte strings), so this buffer grew with both the number of updates and their size, was retained for the entire duration of a merge, and was not counted by `IndexWriter#ramBytesUsed`. Instead, the carry-over is now reconstructed at merge commit from what the source segments already persist: their on-disk doc-values (diffed against the merge-reader baseline) plus the still-pending updates not yet written. This removes that unaccounted, merge-duration heap at the cost of some extra doc-values reads when a merge commits, which are bounded by the merge itself. Behavior is unchanged. Builds on the incremental doc-values updates in #16418. Size: 5 files changed, +510/-165. Most of the additions are a new ~290-line test; the production change is roughly +220/-160 across `IndexWriter`, `ReadersAndUpdates` and `ReaderPool`. Medium-sized and focused — it only touches the merge-commit doc-values carry-over path. -- 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: [email protected] For queries about this service, please contact Infrastructure at: [email protected] --------------------------------------------------------------------- To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected]
