Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

Write amplification of regular object

When DAOS runs in MD-on-SSD mode, it writes metadata for twice: it packs all metadata changes to contiguous buffer and writes to WAL during I/O handling, then flushes in-place changes of metadata from DRAM to MD-blob periodically by checkpointing service. The write amplification can be reduced if multiple in-place metadata changes land in the same set of dirty pages.

Write amplification of flattened object

When WORM object and flattening service are added to DAOS, metadata of WORM object will be written for three times, because metadata will be serialized and written to DT-blob again by flattening service. This may impact the overall performance and endurance of SSD.

Because writing to WAL and DT-blob are mandatory for WORM object, so the only step can be optimized or eliminated is in-place write of checkpointing service. However, keeping the tree structures of VOS up-to-date is extremely important for DTX and MVCC, it requires significant amount of efforts to change.

Client side flattening (optional)

DAOS server has to run all the MVCC and conditional checks even it is not always necessary because client can misbehave. However, if application can guarantee all the writes are new, either new object or new key or new value extent, then DAOS client can submit the I/O request in flattened format instead of regular RPC format. In this case, server side can directly write the flattened RPC to WAL, and skip the checkpointing phase.

...