In the current VOS implementation, each 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 are sufficient, these information may roughly consume 48 bytes based on the current estimate. During I/O processing, VOS can check look up the object index tree and see check if the object is stored in flattened or hierarchical format, it has to shall load the object from DT-blob back to DRAM in the former case.
...
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 small header in DRAM and saves all its keys and values in DT-blob. In this model, assuming each object consumes 48 bytes, VOS requires uses a few extra more bytes to index object and allocator also has its own overhead, so the actual overall bytes per object can be about 100 bytes. If using Based on the same previous assumption that , a storage server has 800GB DRAM for MD-blobmetadata, then a server can store up to 8 billion 4K files.