This feature aims at adding the support for non-persistent SCM (e.g. RAM) by maintaining a copy of the DAOS metadata up-to-date on SSD. Once completed, DAOS will be able to operate in two modes:
persistent SCM: apache/barlow/crow pass, battery-backed DRAM or future SSD products supporting CXL.mem. This is the mode that DAOS supports today over PMDK. No changes will be done to this path.
volatile SCM: DRAM or non-persistent CXL.mem memory. This mode requires an extra step on write operations to keep a copy of the metadata in sync on CXL.io/NVMe SSDs.
Changes to support the volatile mode will be implemented in two phase:
Phase 1: maintain up-to-date copy of metadata tree on SSDs
The SSD copy will be maintained up-to-date via a write ahead log (WAL) and regular background checkpointing.
All reads served from ram/tmpfs and metadata will be limited by the DRAM capacity
Extra work will be done to reduce metadata footprint
Phase 2: metadata tiering
Metadata in dram/pmem is a subset of metadata on SSD
Potential cache-miss to SSD on read