On Thu, Oct 24, 2013 at 05:46:17PM +0800, Robin Dong wrote: > Hi all, > > The size of vdi can only reach 4TB beacause the inode->data_vdi_id[] can only > support 1 million objects. But 4TB is too small for storage application > such as NAS and cloud-disk therefore we need to change the array of > 'data_vdi_id' to > b-tree. > > This patchset add B-tree structure into sd_inode. It support just two levels > (one root-node and many leaf-nodes) and after this the size of vdi could > reach about > (4MB / sizeof(sd_extent_header) * (4MB / sizeof(sd_extent)) * 4MB which is > about 680PB > in theory. > > Currently the vdi size can raise to 16PB because the size of oid is just > 32-bits, but > it is certainly enough for many storage requirement. > > v2 --> v3 changes: > 1. move "btree_counter" after inode->child_vdi_id[] > 2. add new interface to write inode meta data > 3. change the names of some MACRO > > v1 --> v2 changes: > 1. fix the problem of create 16PB vdi and mkfs.xfs > 2. add comment and illustration to explain how B-tree works >
Got this warning with this patch set: sd_inode.c: In function ‘sd_inode_set_vdi’: sd_inode.c:492:27: warning: variable ‘header’ set but not used [-Wunused-but-set-variable] struct sd_extent_header *header; Thanks Yuan -- sheepdog mailing list sheepdog@lists.wpkg.org http://lists.wpkg.org/mailman/listinfo/sheepdog