<div dir="ltr">sorry for that the patch number is disorder.<div><br></div><div>I will send them out again.</div></div><div class="gmail_extra"><br><br><div class="gmail_quote">2013/11/5 Robin Dong <span dir="ltr"><<a href="mailto:robin.k.dong@gmail.com" target="_blank">robin.k.dong@gmail.com</a>></span><br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Hi all,<br>
<br>
The size of vdi can only reach 4TB beacause the inode->data_vdi_id[] can only<br>
support 1 million objects. But 4TB is too small for storage application<br>
such as NAS and cloud-disk therefore we need to change the array of 'data_vdi_id' to<br>
b-tree.<br>
<br>
This patchset add B-tree structure into sd_inode. It support just two levels<br>
(one root-node and many leaf-nodes) and after this the size of vdi could reach about<br>
(4MB / sizeof(sd_extent_header) * (4MB / sizeof(sd_extent)) * 4MB which is about 680PB<br>
in theory.<br>
<br>
Currently the vdi size can raise to 16PB because the size of oid is just 32-bits, but<br>
it is certainly enough for many storage requirement.<br>
<br>
v4 --> v5 changes:<br>
1. object_cache works for hyper volume now<br>
2. put 'btree_counter' after 'data_vdi_id[]' in sd_inode<br>
3. add vdi_clone support for hyper volume<br>
<br>
v3 --> v4 changes:<br>
1. let hyper volume work with object cache<br>
2. let hyper volume work with vdi_list vdi_check<br>
3. let all test case pass<br>
4. add new test case for hyper volume<br>
<br>
v2 --> v3 changes:<br>
1. move "btree_counter" after inode->child_vdi_id[]<br>
2. add new interface to write inode meta data<br>
3. change the names of some MACRO<br>
<br>
v1 --> v2 changes:<br>
1. fix the problem of create 16PB vdi and mkfs.xfs<br>
2. add comment and illustration to explain how B-tree works<br>
<br>
Thanks,<br>
Robin Dong<br>
</blockquote></div><br><br clear="all"><div><br></div>-- <br>--<br>Best Regard<br>Robin Dong
</div>