The GitHub Actions job "Build" on jackrabbit-oak.git/OAK-12417 has failed.
Run started by GitHub user nfsantos (triggered by nfsantos).

Head commit for run:
098fd99df644fd65ae7d0df0f89a44399e23344f / Nuno Santos <[email protected]>
OAK-12417: Avoid UUID allocation and add O(1) index for in-archive segment 
lookup

AbstractRemoteSegmentArchiveReader#readSegment/#containsSegment are
called once per segment reference and are on the hot path of online
compaction. They previously looked up a Map<UUID, ...>, allocating a
new UUID per lookup just to use as a key.

Add a package-private open-addressing SegmentIndex keyed directly on
the raw (msb, lsb) long pair, built once per archive open and queried
without any per-lookup allocation. As a side effect, this also fixes a
latent bug where two blobs sharing the same segment identifier (e.g.
after a retry) would make the previous Map.ofEntries(...)-based index
construction throw on a duplicate key; the new index instead keeps the
entry with the greatest position, as intended.

Report URL: https://github.com/apache/jackrabbit-oak/actions/runs/36008379312

With regards,
GitHub Actions via GitBox

Reply via email to