kfs 文件管理系统.pptVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
5、B* 树的删除 B-TREE-DELETE 的步骤 1) 中,命中的最左的子节点为红色的G1,下降路径的最后两条为 1、3 (红色箭头) 步骤 2) 中删除 G,并调整下降路径的最后两条为4、5 (蓝色箭头) 步骤 3) 中因为删除的是最右键值,所以需要把父节点的键值 G 替换为 G2 步骤 4) 合并节点G2与I,合并后又还不满足B*的特性,所以继续回溯维持B*树的平衡 5、B* 树的删除 复杂度分析 : 步骤 1) 中仅仅是查找要删除的键值,所以复杂度为 O(log2(t) * logt(n)) 步骤 2) 中修正路径使用的是线性查找搜索与之完全相等的键值。假设与 Key(delete_key) 相等的键值的个数为 K,则复杂度为 O(K) 步骤 3) 如果相当不幸运,下降的路线都为最右边,那修正父节点的键值的复杂度为 O(logt(n)) 步骤 4) 如果相当不幸运,下降的路径中的节点都需要做一次维持平衡的操作,则复杂度为 O(t*logt(n)) 综上所述删除的复杂度为 : Max(O(K), O(t*logt(n)) KFS 文件管理树 陈学全 1、文件树的视图 2、B、B* 树的定义 3、B* 树的插入 4、B* 树的查找 5、B* 树的删除 1、文件树的视图 假设当前有以下文件 : / fid = 2 (根目录) /A fid = 3 (目录) /B fid = 4 (普通文件) 以 (d, pid, fid) 描述fid文件,d: 表示文件,pid: 表示父目录的文件 id,fid: 表示文件 id;以 (a, fid, 0) 描述文件fid的属性,a: 表示文件属性,fid: 表示文件id。其中 d a。 根目录的父目录的文件id 为本身 目录 “.” 的pid、fid 为所在目录的文件id; 目录 “..” 的 pid 为所在目录的文件id,fid 为上一层目录的文件id 树的比较键只取前面两个值 ((d, pid) 或者 (a, fid)) 空树如图 1 – 1、插入目录 “/” 、”/A”、文件 “/B” 如图 1 – 2、1 – 3、1 – 4。此文件树节点的子节点数最小不能小于 3,最大不能大于 6。 1、文件树的视图 1、文件树的视图 1、文件树的视图 1、文件树的视图 已知父目录的 fid 进行文件查找的方式如下: a)、根据父目录的 fid 定位到树上的节点 b)、遍历目录下的所有文件,与查找的文件名进行比较 步骤 a) 的复杂度为 O(log2(t)*logt(n)),其中 t 为树的度,n 为总节点树,具体证明见第4节。 步骤 b) 的复杂度为 O(K),其中 K 为目录下的文件总数。 所以搜索的复杂度为 O(Max(K, log2(t)*logt(n))) 1、文件树的视图 KFS文件树的Key是文件父目录的 fid,所以需要一个路径到 fid 的映射关系。KFS 具体实现里缓存了部分的 (路径,fid),如果缓存里不命中则再进行分级查找。 例如:要查找 /usr/local/home/kfs/ 的 fid,如果缓存不命中,则根据 / 的 fid = 2 (固定值) 查 /usr 的 fid,然后根据 /usr 的 fid 查 /usr/local 的 fid,依次查出 /usr/local/home/kfs 的 fid。 假设要进行路径 -- fid 转化的路径的深度为D,则需要进行D次搜索,所以转化的复杂度为: O(Max(D*K, D*log2(t)*logt(n))),因为在文件总数 n 一定的情况下 D 与 K 成简单的对数关系:K = logD(n),所以适当的增大D 可大幅度的降低转化的复杂度。 KFS 文件管理树是B树的一个变体 --- B* 树。 2、B、B* 树的定义 B 树的定义如下(见算法导论 p265) : 1、每个节点能包含的关键字数有一个上界和下界,这些界用整数 t (t = 2) 来表示,这个值称作B树的最小度数 a)、每个非根节点至少包含有 t – 1 个关键字,非根的内节点至少有 t 个子女,根节点则不受限制。 b)、每个节点至多包含 2t – 1 个关键字,内节点之多可有 2t 个子女。当一个节点包含2t – 1 个关键字时成它为满的节点。 2、B、B* 树的定义 2、节点内的关键字按有序存放;假设内节点第i个子女为 c[i],则子女节点 c[i] 的关键字的值在 key[i-1]、key[i] 之间 3、叶子节点的高度相同,都为 h 当 t = 2 时的B树最简单

文档评论(0)

yan698698 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档