Part of #1350. This is the implementation workstream: finish draft #1360 and its example in #1361 so callers can use OpenDAL after Foyer memory.
First-version delivery
- Incorporate the merged Keeper support (#1359) and Device-independent boundary (#1364), including the tested OpenDAL adaptation.
- Provide public construction from an OpenDAL Operator, with documented key/value types, supported write policies, capabilities, namespace and limits. Keep backend dependencies optional.
- Complete the memory → secondary cache → source path, retain write coalescing, and support admission rejection, capacity eviction and refill under immutable keys.
- Address actual gaps against the first-version checklists in #1351 and #1353–#1356. These checklists may be resolved directly in the engine PR; neither separate subsystems nor separate PRs are required.
- Integrate the relevant public-API verification and working example from #1358 as implementation progresses. Existing BlockEngine users remain supported.
The initial scope is Fs/Redis, fresh exclusive namespaces, no recovery, bounded engine-owned work and best-effort writes/cleanup. Failed cache writes can be discarded; successful source fetches must remain usable.
Possible follow-ups — not blockers
Recovery, shared writers, automatic orphan reconciliation, streaming, broader codecs, advanced quota management and additional performance tuning are deferred as described in #1350. They are not dependencies of this implementation issue.
Close this issue when the first-version implementation and its documented usage are merged. #1358 records the evidence for that same delivery, not a second engine project.
Activity
0No activity yet.