Details
-
Bug
-
Resolution: Done
-
Major
-
12.0.0.Final
-
None
Description
SoftIndexFileStore when updating an index can do a few different operations. Of particular interest are MOVED (done by the compactor to update a moved entry to a new file location), DROPPED (done by the compactor when an entry is removed from a file) and UPDATE (when an entry has been updated from the log appender and it has replaced an old value).
In all the mentioned cases all we should have to do is update the in memory LeafNode that points to the value and in some cases write directly to the disk with the updated file location. Currently it can cause an index reordering and rewriting the entire index to disk, which is very costly and should be reserved solely for adding or removing entries, not modifying existing index values.