Metadata on SSDs

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.

    Persistent SCM Mode (PMDK)
  • 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

      Volatile SCM Mode / Phase 1
  • Phase 2: metadata tiering

    • Metadata in dram/pmem is a subset of metadata on SSD

    • Potential cache-miss to SSD on read

      Volatile SCM Mode / Phase 2