/
Flattened object and memory consumption

Flattened object and memory consumption

In the current VOS implementation, metadata of an object consumes 104 bytes (vos_obj_df), which includes object ID, index tree root, incarnation log header, etc. After flattening, most of these information are not necessary anymore: keeping the object ID and BIO address of the flattened buffer is sufficient, these metadata roughly consume 48 bytes based on the current estimate. During I/O processing, VOS can look up the object index tree and check if the object is stored in flattened or hierarchical format, it shall load its keys and values from DT-blob back to DRAM in the former case.

Flattened objects

As shown in the diagram above, hierarchical objects and all the tree indexes remain in MD-blob and DRAM, whereas flattened objects only keeps a little metadata in DRAM and saves all keys and values in DT-blob. In this model, assuming each object consumes 48 bytes for metadata, VOS uses a few more bytes to index object, blob allocator also has its own overhead, overall bytes per object can be around 100 bytes. Based on the previous assumption, a storage server has 900GB DRAM for metadata, then a server can store up to 9 billion 4K files.

Related content

Flattened object index tree
Flattened object index tree
More like this
Tree optimizations
Tree optimizations
More like this
WORM (Write-Once-Read-Many) Object
WORM (Write-Once-Read-Many) Object
More like this
WORM object flattening and eviction
WORM object flattening and eviction
Read with this
Object flattening
Object flattening
More like this
UMEM cache
UMEM cache
Read with this