Skip to content

feat(extractor): resumable seam for giant OST/PST parsing#59

Draft
pirhoo wants to merge 3 commits into
masterfrom
feat/resumable-ost-progress
Draft

feat(extractor): resumable seam for giant OST/PST parsing#59
pirhoo wants to merge 3 commits into
masterfrom
feat/resumable-ost-progress

Conversation

@pirhoo

@pirhoo pirhoo commented Jul 3, 2026

Copy link
Copy Markdown
Member

Groundwork for resuming a large PST/OST interrupted mid-parse instead of restarting it from scratch; a 50 GB mailbox cost ~17h of wasted re-processing last run. Extraction-side hook only, inert until the datashare side persists progress, so behavior is unchanged for now.

@pirhoo pirhoo self-assigned this Jul 3, 2026
pirhoo added 3 commits July 3, 2026 13:11
Make indexing of a single OST/PST resumable so a restart mid-file does not
reparse from byte 0. The resumable unit is the mail message, keyed by its
descriptor node id (stable across runs, already the dedup key). This is the
self-contained extract-lib half; datashare persists which units are durably
indexed and supplies the skip policy on a resumed run.

- feat(parser): add ResumePolicy (context-carried skip predicate, NONE default)
- feat(parser): ResilientOutlookPSTParser skips already-done messages without
  re-parsing, still counting them so reconciliation stays honest, and stamps a
  stable tika:pst_resume_key on every emitted message plus a tika:pst_resumed_skipped
  visibility counter
- feat(extractor): add Extractor.setResumePolicyProvider seam, wired into the
  parse context like PstFanoutConfig; inert (NONE) by default
- test: skip-all / skip-subset / off-by-default at the parser level, and
  end-to-end id determinism (resumed id set is a strict subset of the full run)
@pirhoo
pirhoo force-pushed the feat/archive-size-guard branch from 228044d to 8d81fa7 Compare July 3, 2026 13:12
@pirhoo
pirhoo force-pushed the feat/resumable-ost-progress branch from eab2f63 to 778d9cd Compare July 3, 2026 13:12
Base automatically changed from feat/archive-size-guard to master July 3, 2026 17:04
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant