Fetch accounting for a RangeByteSource: how many range requests were issued and how many bytes actually crossed the wire, versus how many the caller asked for. The gap between bytesFetched and bytesServed is the over-read imposed by block alignment (a real HTTP-Range / OPFS-block store can only fetch whole blocks); a small gap means the access pattern has good locality — the property an index-first open (M4) leans on.

interface RangeFetchStats {
    bytesFetched: number;
    bytesServed: number;
    requestCount: number;
}

Properties

bytesFetched: number

Total bytes actually fetched from the backing store (aligned spans).

bytesServed: number

Total bytes handed back to callers (the sum of requested lengths).

requestCount: number

Number of read calls that reached the backing store.