一种基于N-ary树结构的随机访问的文件系统的实现方法技术方案

技术编号:14481991 阅读:114 留言:0更新日期:2017-01-25 23:55
本发明专利技术提供一种基于N‑ary树结构的随机访问的文件系统的实现方法,以页为单位来管理文件系统所有的文件数据;在文件系统中设置iNode区和数据区,所述数据区包括节点页和数据页;所述iNode区中所存储的iNode节点包括N‑ary树级数字段和N‑ary树根节点字段;以文件所对应的第N级节点页页号为根节点,以第(N‑1)级节点页页号为第1级子节点,以此类推,以第1级节点页页号为第(N‑1)级子节点,形成一个N‑ary树以对该文件的所有数据进行存储管理;其中第1级节点页为数据页;N‑ary树的遍历顺序为数据页的逻辑顺序。本发明专利技术的基于N‑ary树结构的随机访问的文件系统的实现方法实现文件数据在物理存储空间内的随机存储,从而最大化地提高文件系统整体的运行效率。

【技术实现步骤摘要】

本专利技术涉及文件系统的
,特别是涉及一种基于N-ary树结构的随机访问的文件系统的实现方法
技术介绍
随着NVDIMM、3DXpoint等新型存储技术的发展及IBM对存储级内存(StorageClassMemory,SCM)架构的提出,基于混合内存系统架构及管理的非易失存储NVM成为研究热点。新型存储技术SCM具有非易失性、读快写快、功耗低等特点,但与DRAM相比仍有差距,有限的写擦循环寿命也降低了系统的可靠性。现有技术中,基于新型存储技术SCM提出过多种内存组织方式和优化方法。随着大数据、云计算、物联网等技术的发展,数据正以前所未有的速度不断增长和累积。如何管理和组织这些数据,对传统的文件系统来说是一个挑战。尽管当前的文件系统为应用提供了一种易用的数据组织方式,然而该数据组织方式是基于块设备的硬件特点设计的,无法充分发挥SCM可随机访问的性能特点。因此,如何有效地组织数据,让应用程序能够以更接近内存的方式使用和访问,而又能保持文件系统可靠、易维护和共享等优势,最大化地提高系统整体运行效率成为亟待解决的问题。
技术实现思路
鉴于以上所述现有技术的缺点,本专利技术的目的在于提供一种基于N-ary树结构的随机访问的文件系统的实现方法,采用N-ary树结构管理该文件系统所存储在物理地址空间的数据,实现文件数据在物理存储空间内的随机存储,而无需按文件逻辑顺序在物理地址空间顺序存储,从而最大化地提高文件系统整体的运行效率。为实现上述目的及其他相关目的,本专利技术提供一种基于N-ary树结构的随机访问的文件系统的实现方法,包括以页为单位来管理文件系统所有的文件数据;在文件系统中设置iNode区和数据区,所述数据区包括节点页和数据页,所述数据页用于存储文件数据,所述节点页用于存储N-ary树中下一级节点页或数据页的物理地址;所述iNode区中所存储的iNode节点包括N-ary树级数字段和N-ary树根节点字段,所述N-ary树级数字段用于存储文件所采用N-ary树结构的级数,所述N-ary树根节点字段用于存储文件第N级节点页的起始物理地址;以文件所对应的第N级节点页页号为根节点,以第(N-1)级节点页页号为第1级子节点,以此类推,以第1级节点页页号为第(N-1)级子节点,形成一个N-ary树以对该文件的所有数据进行存储管理;其中第1级节点页为数据页;N-ary树的遍历顺序为数据页的逻辑顺序。于本专利技术一实施例中,所述数据页和所述节点页在所述数据区混排。于本专利技术一实施例中,所述数据页和所述节点页是在向文件写入数据时动态分配的;向文件写入数据时,根据写入地址判定数据页是否已经存在,若不存在,则分配数据页,并补齐该数据页至根节点间路径上所需的节点页。于本专利技术一实施例中,文件系统创建文件时,包括以下步骤:分配一个iNode节点;指定文件所采用的N-ary树的级数N,为文件分配一个第N级节点页;将第N级节点页的物理地址写入文件对应的iNode节点的N-ary树根节点字段;将文件所采用的N-ary树的级数N写入所分配的iNode节点中的N-ary树级数字段。于本专利技术一实施例中,在同一个文件系统内,不同的文件能够拥有不同的N-ary树的级数。于本专利技术一实施例中,文件所采用的N-ary树的级数能够动态增加。于本专利技术一实施例中,触发文件所采用的N-ary树的级数动态增加的情况包括:通过POSIX方式写入数据时地址超越当前文件逻辑长度;通过文件指针定位当前位置时超越当前文件逻辑长度;通过mmap方式将文件映射到进程虚拟空间时指定的长度超越了当前文件逻辑长度。于本专利技术一实施例中,文件所采用的N-ary树的级数能够动态增加包括以下步骤:文件系统从数据区获取一个空闲的节点页作为新的根节点;将文件原根节点的物理地址写入新的根节点的第一个位置,并将新的根节点的物理地址及增加1后的N-ary树的级数更新到该文件的iNode节点中。于本专利技术一实施例中,所述页的大小与操作系统内存页的大小一致。如上所述,本专利技术的基于N-ary树结构的随机访问的文件系统的实现方法,具有以下有益效果:(1)基于N-ary树结构管理文件数据在物理存储空间中的存储顺序,实现文件数据在物理存储空间内的随机存储,而无需按文件逻辑顺序在物理地址空间顺序存储;(2)采用N-ary树结构管理文件系统所存储在物理地址空间的数据,每个文件对应一个N-ary树结构,同一文件系统可实现4K、2M、1G等不同容量级别的文件存储,满足对不同容量级别需求的文件数据存储;(3)文件存储数据时采用的N-ary树级数是可动态调整的,通过动态调整文件数据管理的N-ary树级数可实现文件的升级扩容。附图说明图1显示为本专利技术的基于N-ary树结构的随机访问的文件系统的实现方法的框架图;图2显示为本专利技术中iNode节点的结构示意图;图3显示为本专利技术中N-ary树的结构示意图;图4显示为本专利技术的一个实施例中N-ary树结构以及文件数据在数据区的分布情况示意图;图5显示为本专利技术的一个实施例中经过两次写操作后,文件数据页在数据区的分布情况变化图;图6显示为本专利技术的一个实施例中经过两次写操作后,文件的N-ary树的结构变化图。具体实施方式以下通过特定的具体实例说明本专利技术的实施方式,本领域技术人员可由本说明书所揭露的内容轻易地了解本专利技术的其他优点与功效。本专利技术还可以通过另外不同的具体实施方式加以实施或应用,本说明书中的各项细节也可以基于不同观点与应用,在没有背离本专利技术的精神下进行各种修饰或改变。需说明的是,在不冲突的情况下,以下实施例及实施例中的特征可以相互组合。需要说明的是,以下实施例中所提供的图示仅以示意方式说明本专利技术的基本构想,遂图式中仅显示与本专利技术中有关的组件而非按照实际实施时的组件数目、形状及尺寸绘制,其实际实施时各组件的型态、数量及比例可为一种随意的改变,且其组件布局型态也可能更为复杂。N-ary树,又叫N叉树,是一种常见的树型数据结构,常常用来完成数据的快速排序、数据压缩和快速检索。N-ary树具有一个根节点,每个节点的子节点数完全相同。本专利技术的基于N-ary树结构的随机访问的文件系统的实现方法采用N-ary树结构管理文件系统所存储在物理地址空间的数据,实现文件数据在物理存储空间内的随机存储,而无需按文件逻辑顺序在物理地址空间顺序存储。基于N-ary树结构,同一文件系统可实现4K、2M、1G等不同容量级别的文件存储。本专利技术的基于N-ary树结构的随机访问的文件系统的实现方法应用于动态随机存取存储器及非易失性随机存储器统一编址的存储系统。其中,非易失性随机存储器包括相变存储器、阻变存储器、磁存储器、铁电存储器等。参照图1,本专利技术的基于N-ary树结构的随机访问的文件系统的实现方法包括:1)以页为单位来管理文件系统所有的文件数据。优选地,页的大小与操作系统内存页的大小一致。通常,4K大小的数据为一页。数据页、节点页大小都是4K,只是因存储的内容不同而分为数据页和节点页。2)在文件系统中设置iNode区和数据区,数据区包括节点页(NodePage)和数据页(DataPage),数据页用于存储文件数据,节点页用于存储N-ary树中下一级节点页或数据页的物理地址;数据页和节点页在数据区混排;iNode区中所存本文档来自技高网...
一种基于N-ary树结构的随机访问的文件系统的实现方法

【技术保护点】
一种基于N‑ary树结构的随机访问的文件系统的实现方法,其特征在于:包括以页为单位来管理文件系统所有的文件数据;在文件系统中设置iNode区和数据区,所述数据区包括节点页和数据页,所述数据页用于存储文件数据,所述节点页用于存储N‑ary树中下一级节点页或数据页的物理地址;所述iNode区中所存储的iNode节点包括N‑ary树级数字段和N‑ary树根节点字段,所述N‑ary树级数字段用于存储文件所采用N‑ary树结构的级数,所述N‑ary树根节点字段用于存储文件第N级节点页的起始物理地址;以文件所对应的第N级节点页页号为根节点,以第(N‑1)级节点页页号为第1级子节点,以此类推,以第1级节点页页号为第(N‑1)级子节点,形成一个N‑ary树以对该文件的所有数据进行存储管理;其中第1级节点页为数据页;N‑ary树的遍历顺序为数据页的逻辑顺序。

【技术特征摘要】
1.一种基于N-ary树结构的随机访问的文件系统的实现方法,其特征在于:包括以页为单位来管理文件系统所有的文件数据;在文件系统中设置iNode区和数据区,所述数据区包括节点页和数据页,所述数据页用于存储文件数据,所述节点页用于存储N-ary树中下一级节点页或数据页的物理地址;所述iNode区中所存储的iNode节点包括N-ary树级数字段和N-ary树根节点字段,所述N-ary树级数字段用于存储文件所采用N-ary树结构的级数,所述N-ary树根节点字段用于存储文件第N级节点页的起始物理地址;以文件所对应的第N级节点页页号为根节点,以第(N-1)级节点页页号为第1级子节点,以此类推,以第1级节点页页号为第(N-1)级子节点,形成一个N-ary树以对该文件的所有数据进行存储管理;其中第1级节点页为数据页;N-ary树的遍历顺序为数据页的逻辑顺序。2.根据权利要求1所述的基于N-ary树结构的随机访问的文件系统的实现方法,其特征在于:所述数据页和所述节点页在所述数据区混排。3.根据权利要求1所述的基于N-ary树结构的随机访问的文件系统的实现方法,其特征在于:所述数据页和所述节点页是在向文件写入数据时动态分配的;向文件写入数据时,根据写入地址判定数据页是否已经存在,若不存在,则分配数据页,并补齐该数据页至根节点间路径上所需的节点页。4.根据权利要求1所述的基于N-ary树结构的随机访问的文件系统的实现方法,其特征在于:文件系统创建文件时,包括以下步骤:分配一个iNode节点;指...

【专利技术属性】
技术研发人员:李顺芬陈小刚李大刚韩文炳李鸽子陈诗雁宋志棠
申请(专利权)人:中国科学院上海微系统与信息技术研究所
类型:发明
国别省市:上海;31

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

1