Future improvements
Flatten cold small object
WORM object requires API extension, so user can notify DAOS to flatten immutable objects and evict them from DRAM. In addition, flattening service can also scan objects in the background and flatten those small objects which are not accessed for long time. If application wants to modify those objects again in the future, they should be converted to hierarchical format before applying new changes.
Flatten values of large KV store
If an object is large KV store but each value are just a few kilobytes, then DAOS still hold the whole object in DRAM even if it is WORM. An optimization is copying small values to contiguous buffer and storing them in DT-blob when the object is immutable, it means that keys and their indexes still remain in MD-blob and DRAM for accelerating search, the I/O latency is still no more than one SSD read.
Flatten pool and container
Based on the flattening functions, DAOS can flatten an entire container or even pool if user has no need to access them for a while.