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]

Reply via email to