Expand description
Parallel chunk parsing (ADR-0011): record sub-ranges of one chunk fan
out across rayon workers, each producing a ParsedBatch; the builder
appends the batches in chunk order, so EntryId assignment is
deterministic.
StructsΒ§
- Parsed
Batch π - One workerβs output for a record sub-range, in record order.
- Parsed
Meta π - One entry parsed by a worker; the name lives in its batchβs pools.
- Record
Arena π - Fixed-size record store for the deferred/extension caches: records live back-to-back in one growable allocation, addressed by slot (ADR-0012).
- Record
Attrs π - $
STANDARD_INFORMATION+ $DATA extract shared by every parse path.
ConstantsΒ§
- FILE_
ATTRIBUTE_ πHIDDEN - FILE_
ATTRIBUTE_ πREPARSE_ POINT - FILE_
ATTRIBUTE_ πSYSTEM - PARSE_
SUB π - Sub-range fed to one parse worker β small enough to spread a 16MiB chunk across cores, large enough to amortize the per-task overhead.
FunctionsΒ§
- append_
batches π - extract_
attrs π - parse_
chunk π - Fan a chunkβs record sub-ranges across rayon workers. The returned
batches are in sub-range order, so appending them sequentially yields
the same
EntryIdassignment as a fully sequential parse. - parse_
subrange π - Validate, fix up and parse every record in
bytes(a record-aligned slice whose first byte sits atfirst_logicalin the $MFT stream). Mirrors the sequential loop exactly β same skip conditions, same counts.