Today we pull a new terms enum when we apply DV updates even though the
field stays the same which is the common case. Benchmarking this on a
larger term dictionary with a significant number of updates shows a
2x improvement in performance.
test no longer depends on changing static non-final non-volatile variables used by multiple threads
test also no longer depends on arbitrary sleep calls, instead threads await/poll on concurrent signaling objects/queues
LUCENE-8374 was committed without consensus and is expected to be superseded by LUCENE-8585.
This reverts commit 58a7a8ada5cebeb261060c56cd6d0a9446478bf6.
LUCENE-8374 was committed without consensus and is expected to be superseded by LUCENE-8585.
This reverts commit 7ad027627a179daa7d8d56be191d5b287dfec6f4.
LUCENE-8374 was committed without consensus and is expected to be superseded by LUCENE-8585.
This reverts commit 7949b98f802c9ab3a588a33cdb1771b83c9fcafb.
LUCENE-8374 was committed without consensus and is expected to be superseded by LUCENE-8585.
This reverts commit e356d793caf2a899f23261baba922d4a08b362ed.
LUCENE-8374 was committed without consensus and is expected to be superseded by LUCENE-8585.
This reverts commit 6c111611118ceda0837f25a27e5b4549f2693457.
Using a sparse bitset in SingleValueDocValuesFieldUdpates allows storing
which documents have an update much more efficient and prevents the need
to sort the docs array altogether that showed to be a significant bottleneck
in LUCENE-8598. Using the spares bitset yields another 10x performance improvement
in applying updates versus the changes proposed in LUCENE-8598.
DocValuesFieldUpdats are using compact settings for packet ints that causes
dramatic slowdowns when the updates are finished and sorted. Moving to the default
accepted overhead ratio yields up to 4x improvements in applying updates. This change
also improves the packing of numeric values since we know the value range in advance and
can choose a different packing scheme in such a case.
Overall this change yields a good performance improvement since 99% of the times of applying
DV field updates are spend in the sort method which essentially makes applying the updates
4x faster.