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

Reply via email to