V-Tree

V-Tree – a tree-like structure used for storing metadata in VAST Data’s universal file system. This has a DASE (Disaggregated Shared Everything) datastore which is a byte-granular, thin-provisioned, sharded, and has an infinitely-scalable global namespace. It involves the compute nodes being responsible for so-called element stores.

These element stores use V-tree metadata structures, 7-layers deep with each layer 512 times larger than the one above it. This V-tree structure is capable of supporting 100 trillion objects. The data structures are self-describing with regard to lock and snaps states and directories. 

There is a consistent hash in each compute node which tells that compute node which V-tree to use to locate a data object.

The colour wheel in the server is the consistent hash table in the compute-node that provides the first set of pointers to the blue, cyan and magenta V-trees in the data-nodes.

Since the V-trees are shallow finding a specific metadata item is 7 or fewer redirection steps through the V-Tree. That means no persistent state in the compute-node (small hash table built at boot) and adding capacity adds V-Trees for scale.

More conventional B-Tree systems and others need tens or hundreds of redirections to find an object. That means the B-Tree has to be in memory, not across an NVMe-oF fabric, for fast traversal, and the controllers have to maintain coherent state across the cluster. VAST Data keeps state in persistent (Storage-class) memory and can afford the network hop to keep state there.

V-trees are shared-everything and there is no need for cross-talk between the compute nodes. Global access to the trees and transactional data structures enable a global namespace without the need of cache coherence in the servers or cross talk. There is no need for a lock manager as lock state is read from storage-class memory.