当前位置: 首页 > 专利查询>微软公司专利>正文

用于在B树上重命名连续键的方法和系统技术方案

技术编号:2858354 阅读:249 留言:0更新日期:2012-04-11 18:40
一种用于重命名表示分级名空间(诸如文件系统)的B树上连续键的有效方法,具有经估计时间有效性为O(logN),其中N是B树中的节点数。要重命名的所有连续键首先从原始B树上切除以形成经修整B树,且被切除节点被存储在独立的暂时的经提取B树。然后重命名经提取B树中的节点,且将经过重命名的经提取B树插入经修整B树以形成包含经重命名键的最终B树。

【技术实现步骤摘要】

本专利技术一般涉及用于存储和组织数据的计算机数据结构,尤其涉及重命名在表示分级名空间的B树数据结构中存储的键上的操作。
技术介绍
B树是一种特定的多元树数据结构,它被设计用于组织数据记录以便有效的数据检索,尤其是当数据记录存储在诸如硬盘的相对较慢的存储介质上时。B树上的每个节点都存储了多个键,用于标识相应的数据记录和指向该节点子节点的指针。节点可存储的键的数量取决于B树的阶。在阶为K的B树上,每个节点应当包含K到2K的键。使用较大的K使B树对于固定的数据记录集能具有较小的高度(深度),从而减少找到需要数据记录所需的磁盘访问次数。B树数据结构可用于组织各种类型的数据。例如,B树可用于分级名空间,其中名字在B树中被存为键。作为示例,打算使用B树用于存储文件系统的元数据。在该应用中,B树的键是每个文件的全路径名或目录。大多数文件系统操作可在这种数据结构上有效地执行。然而,一个重要例外是重命名操作。当要重命名文件系统目录时,对应于该目录中文件和子目录的B树上所有节点的键也要相应地改变。重命名操作的自然实现将涉及要重命名的目录中的每个文件或子目录,这将是非常低效的。通常,由于使用常规方法的重命名操作的低效性,一直有观点认为B树数据结构不适于管理文件系统。
技术实现思路
由于上述原因,本专利技术提供一种用于更改表示分级名空间的B树,以及在B树上重命名连续键的操作的方法。根据本专利技术,当要重命名存储在表示分级名空间的B树上连续键集合时,从原始B树上切除所有要重命名的键,并将其存储在独立临时的“经提取树”上。该切除将原始B树转换成“经修整树”。然后重命名经提取树中的键,且将经重命名的经提取树插入经修整树,以形成用重命名键表示分级名空间的最终B树。本专利技术的方法非常有效,其估计时间复杂性为O(logN),其中N是B树中的节点数。分级名空间的一个示例是文件系统,且重命名操作是要重命名文件系统中的目录,包括更改目录中文件和子目录的名称。本专利技术方法的效率使得使用B树数据结构来存储文件系统的元数据极为可行。从参照附图对说明性实施例进行的以下详细描述中,本专利技术的附加特征和优点将变得显然。附图说明所附权利要求书陈述了本专利技术的特征以及特性,而本专利技术及其优点则可结合附图从以下详细说明书中得到最好的理解,其中图1是根据本专利技术示出计算装置的示例性架构的简化示意图,该计算装置用于实现对表示分级名空间的B树中连续键进行重命名的方法;图2是示出在本专利技术一实施例中使用的B树的示意图,该B树用于带有要重命名的目录节点的文件系统;图3是示出在本专利技术一实施例方法中通过切除要重命名目录的键从原始B树产生两个中间树结构的示意图;图4是示出从在本专利技术一实施例方法中形成的两个中间树结构来构建最终B树的示意图;图5是示出本专利技术一实施例方法中用于重命名B树数据结构中目录的高级步骤的流程图;图6是示出用于创建图3中两个中间树的切除操作的流程图;以及图7是示出用于创建图4最终B树的B树插入操作的流程图。具体实施例方式现在将参照某些实施例描述一种方法和系统,它们用于更改B树以反映在表示诸如文件系统的分级名空间的B树上对连续键集合的重命名。技术人员将容易理解在此所述的方法和系统仅仅是示例性的,且可作变化而不背离本专利技术的精神和范围。参阅附图通过以下详细描述,本专利技术将可得到更全面的理解。在本说明书中,相同数字标示本专利技术各种实施例中的类似元素。本专利技术被示为在适当计算环境中实现。尽管不是必须的,本专利技术将在计算机可执行指令的一般上下文中进行说明,诸如由个人计算机执行的过程。通常,过程包括执行具体任务或实现具体抽象数据结构的程序模块、例程、函数、程序、对象、组件、数据结构等等。此外,本领域技术人员可以理解本专利技术可在其它计算系统配置中实践,包括手持式装置、多处理器系统、以及基于微处理器或可编程消费电器。本专利技术还可在任务由经通信网络连接的远程处理设备执行的分布式计算环境中实践。在分布式计算环境中,程序模块可置于包括存储器存储设备的本地和远程计算机存储介质中。术语计算机系统可用以指诸如在分布式计算环境中可见的计算机系统。图1示出了其中可实现本专利技术的适当计算系统环境100的示例。该计算系统环境100仅是适当计算环境的一个示例,并非旨在提出本专利技术使用或功能性范围的任何限制。计算环境100也不应被解释为对示例性操作环境100中所示的任一组件或其组合有任何依赖性或任何需求。尽管本专利技术的至少一个实施例包括在示例性操作环境100中示出的每个组件,但本专利技术的另外一个更典型的实施例不包括某些或全部非基本组件,例如网络通信所需之外的输入输出装置。参照图1,用于实现本专利技术的示例性系统包括计算机110形式的通用计算装置。计算机110的组件可包括,但不限于,处理单元120、系统存储器130以及把包括系统存储器在内的各种系统组件耦合到处理单元120的系统总线121。系统总线121可能是若干总线结构类型中的任何一种,包括存储器总线或存储器控制器、外围总线、以及使用多种总线架构的任一种的本地总线。计算机110通常包括各种计算机可读介质。计算机可读介质可以是能被计算机110访问的任何可用介质,并包括易失性和非易失性介质、可移动和不可移动介质。作为示例,而非限制,计算机可读介质可包括计算机存储介质和通信介质。计算机存储介质包括以任何方法或技术实现、用于存储诸如计算机可读指令、数据结构、程序模块或其它数据等信息的易失性和非易失性介质、可移动和不可移动介质。计算机存储介质包括但不限于RAM、ROM、EEPROM、闪存或其它存储器技术、光盘存储、磁卡、磁带、磁盘存储或其它磁性存储设备、或任何其它可用于存储所需信息并可由计算机110访问的介质。通信介质通常包括诸如载波或其它传输机制的调制数据信号中的计算机可读指令、数据结构、程序模块、或其它数据,且包括任何信息输送介质。术语“调制数据信号”意指用在信号中编码信息的方式设置或改变其一个或多个特征的信号。作为示例,而非限制,通信介质包括诸如有线网络或直线连接的有线介质,和诸如声学、射频、红外线和其它无线介质的无线介质。以上任何介质的组合也应包括在计算机可读介质的范围中。系统存储器130包括诸如只读存储器(ROM)131和随机存取存储器(RAM)132的易失性和/或非易失性存储器形式的计算机可读介质。作为示例,而非限制,图1示出了操作系统134、应用程序135、其它程序模块136、和程序数据137。计算机110还可包括其它可移动/不可移动、易失性/非易失性计算机存储介质。仅作为示例,图1图示了读取和写入不可移动、非易失性磁性介质的硬盘驱动器141,读取和写入可移动、非易失性磁盘152的磁盘驱动器151,读取和写入可移动、非易失性光盘156,诸如CD-ROM的光盘驱动器155。其它也用在示例性计算环境中的计算机存储介质包括,但不限于,磁带、闪存卡、DVD、数字化视频带、固态RAM、固态ROM等等。硬盘驱动器141通常通过诸如接口140的不可移动存储器接口与系统总线121连接,而磁盘驱动器151和光盘驱动器155通常通过诸如接口150的可移动存储器接口与系统总线121连接。该计算机系统可包括用于其它类型可移动非易失性存储装置的接口。例如,计算机可具有接受USB闪存盘(UFD)154的USB本文档来自技高网...

【技术保护点】
一种改变在多个键存储其中的原始B树上连续键的范围值的方法,其特征在于,包括:从所述原始B树上切除所述连续键的范围,所述对连续键范围的切除把所述原始B树转换成经修整树;存储从所述B树切除的所述连续键范围以形成经提取树;改变所述经提取树上键的值以形成经过更改的经提取树;以及把所述经过更改的经提取树插入经修整树以形成最终的B树。

【技术特征摘要】
US 2004-4-14 10/823,8701.一种改变在多个键存储其中的原始B树上连续键的范围值的方法,其特征在于,包括从所述原始B树上切除所述连续键的范围,所述对连续键范围的切除把所述原始B树转换成经修整树;存储从所述B树切除的所述连续键范围以形成经提取树;改变所述经提取树上键的值以形成经过更改的经提取树;以及把所述经过更改的经提取树插入经修整树以形成最终的B树。2.如权利要求1所述的方法,其特征在于,所述原始B树表示分级名空间。3.如权利要求2所述的方法,其特征在于,所述原始B树表示文件系统的分级名空间,且所述连续键范围属于所述文件系统的目录,并且其中对连续键范围的值的改变与要重命名的目录有关。4.如权利要求3所述的方法,其特征在于,在重命名所述目录之前所述原始B树中的每个键包含所述文件系统的文件或目录的路径名。5.如权利要求1所述的方法,其特征在于,包括在所述插入步骤之前平衡所述经修整树的步骤。6.如权利要求1所述的方法,其特征在于,所述插入步骤包括平衡所述最终B树。7.如权利要求1所述的方法,其特征在于,所述改变步骤包括改变所述经修整树根节点的前缀字段。8.如权利要求1所述的方法,其特征在于,所述把经过更改的经提取树插入所述经修整树的步骤涉及一严格插入。9.一种具有计算机可执行指令的计算机可读介质,所述指令用于执行改变在多个键存储其中的原始B树上连续键的范围值的步骤,其特征在于,包括从所述原始B树上切除所述连续键的范围,所述对连续键范围的切除把所述原始B树转换成经修整树;存储从所述B树切除的所述连续键范围以形成经提取树;改变所述经提取树上键的值以形成经过更改的经提取树;以及把所述经过更改的经提取树插入经修整树以形成最终的B树。10.如权利要求9所述的计算机可读介质,其特征在于,所述原始B树表示分级名空间。11.如权利要求10所述的计算机可读介质,其特征在于,所述原始B树表示文件系统的分级名空间,且所述连续键范围属于所述文件系统的目录,并且其中对连续键范围的值的改变与要重命名的目录相连。12.如权利要求11所述的计算机可读介质,其特征在于,在重命名所述目录之前所述原始B树中的每个键包含所述文件系统的文件或目录的路径名。13.如权利要求9所述的计算机可读介质,其特征在...

【专利技术属性】
技术研发人员:JP麦克康米克
申请(专利权)人:微软公司
类型:发明
国别省市:US[美国]

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1