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

Head commit for run:
79527effe38567ca67380e8eb77abeefa57d4a72 / Lucas Weitzendorf 
<[email protected]>
OAK-12451: ListRecord.getEntry single-level fast path

`ListRecord.getEntry(int)` recursed through a bucket even for
single-level lists, allocating a throwaway single-element `ListRecord`
per call — the hot path for reading a node's property records. This adds
the `bucketSize == 1` branch that `getEntries(int, int, List)` already
has, reading the record id directly.


Isolates the per-entry overhead removed for a single-level list (the old
path wrapped each entry in a throwaway `new ListRecord(id, 1)` +
recursive `getEntry(0)`; both paths share the same underlying
`readRecordId`):

| | ns/op | B/op |
|---|---|---|
| old (wrapped ListRecord) | 1.33 | **24** |
| new (fast path) | 0.38 | ~0 |

→ **24 B/op (one `ListRecord`) and ~1 ns eliminated per single-level
`getEntry`**, called once per property read. Over a full traversal
(~4.5B properties) that's on the order of ~100 GB of allocation avoided.

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

With regards,
GitHub Actions via GitBox

Reply via email to