一种文件系统的数据处理方法、装置、电子设备及存储介质与流程

未命名 08-22 阅读:94 评论:0


1.本发明是关于存储技术领域,特别是关于一种文件系统的数据处理方法以及实现该数据处理方法的装置、电子设备和存储介质。


背景技术:

2.b+树是目前最为常用的索引结构,由于其高效的插入、查找、修改性能,其被广泛应用在诸多存储系统的索引结构中。b+树包括根节点、内部节点和叶子节点,所有的叶子节点都在同一个级别,并且除根节点外,每个节点最多可以有m个子节点,至少可以有m/2个子节点,每个节点最多可包含m-1个键值,最少可包含(m/2)-1个键值,m为b+树的阶数。在搜索数据时,从根节点开始,将要搜索的数据k与根节点上的键[k1,k2,k3,

km-1]进行比较。如果k《k1,则转到根节点的左侧子节点。否则,如果k==k1,比较k2。如果k《k2,则k位于k1和k2之间。所以,搜索k2的左子级。如果k》k2,则按步骤2和3执行k3、k4、

km-1。重复上述步骤,直到到达叶子节点。如果叶子节点中存在k,则返回true,否则返回false。
[0003]
目前,b+树的节点在内存中更新后需要持久化到磁盘(disk),以保证数据的完整性。如果要修改的节点(bnode)不在内存中,则需要将其从磁盘加载到内存中后再做修改。在不带电池保护的内存系统中,内存中b+树的更新在还没有持久化到磁盘中之前,此时掉电将导致数据丢失。但是如果在每次数据更新时都更新b+树并且等待其持久化后再返回,则会严重影响系统的性能。这里的持久化(persistence)指的是将程序数据在持久状态和瞬时状态间转换的机制。持久化能够把数据(如内存中的对象)保存到可永久保存的存储设备中(如磁盘)。持久化的主要应用是将内存中的对象存储在数据库中,或者存储在磁盘文件中、xml数据文件中等等。
[0004]
为了避免每次数据更新时都更新b+树所带来的性能问题,采用日志(journal)来持久化需要更改的键值(key),也就是说采用日志来持久化需要更改的键值,能够避免b+树频繁的持久化节点数据。在具体实施时,键值的更新是存放在日志内存中,每隔一段时间或者日志缓存(buffer)满了后进行持久化,也就是说,数据先写入到日志层(如存储至日志内存中),再从日志层将数据写入到数据层(如存储至磁盘中)。虽然此方式能够提升性能,减少b+树更新的次数,但是若在此过程中,突然掉电或者其他异常,则会导致日志缓存数据丢失,进而导致用户数据会丢失。而为了保证数据不丢失,则会每次有键值更新的时候,将日志缓存进行持久化,但是同样会导致性能下降和明显的日志数据写放大、降低磁盘寿命等问题。另外,日志的持久化虽然减少了b+树节点持久化的次数,但是为了保证写数据的可访问性,内存中的b+树索引结构需要更新,因此会存在从磁盘中读取已持久化的数据,b+插入,分裂等一系列操作,影响写io的性能。
[0005]
为了提升系统的读写性能,减少因为保证数据一致性而带来的日志数据写放大、性能损耗、降低固态硬盘使用寿命等问题。在实施过程中,通常会将大块的io避开(bypass)日志层,尽量减少写放大的问题,但是问题依然存在一些问题,会给文件系统的快照,克隆的实现等带来更多的复杂性,这主要是因为需要考虑避开日志层的io数据。这里的大块io
指的是一次读/写io操作的连续扇区数目较大。
[0006]
综上可知,目前所采用的通过日志的持久化方式来更新b+树的方式还存在上述诸多缺点,因而亟需解决现有技术中利用日志的持久化方式更新b+树所带来的问题。
[0007]
公开于该背景技术部分的信息仅仅旨在增加对本发明的总体背景的理解,而不应当被视为承认或以任何形式暗示该信息构成已为本领域一般技术人员所公知的现有技术。


技术实现要素:

[0008]
本发明的目的在于提供一种文件系统的数据处理方法,其能够改善文件系统的读写性能,提高固态硬盘的使用寿命。
[0009]
本发明的目的在还于提供一种文件系统的数据处理装置,能够实现上述所述的数据处理方法,能够改善文件系统的读写性能,提高固态硬盘的使用寿命。
[0010]
本发明的目的在还于提供一种电子设备,能够实现上述所述的数据处理方法,能够改善文件系统的读写性能,提高固态硬盘的使用寿命。
[0011]
本发明的目的在还于提供一种计算机可读存储介质,能够实现上述所述的数据处理方法,能够改善文件系统的读写性能,提高固态硬盘的使用寿命。
[0012]
为实现上述目的,本发明的实施例提供了一种文件系统的数据处理方法,所述数据处理方法包括:
[0013]
接收并响应写操作请求,选取基于二叉树索引的日志空间写入相应数据;
[0014]
判断是否满足预设条件;
[0015]
响应于满足预设条件,将二叉树索引转换为用于索引数据空间的b+树索引,以将日志空间转换为数据空间。
[0016]
在本发明的一个或多个实施方式中,所述二叉树的每个节点存储用于记录文件修改信息的文件块信息,所述文件修改信息包括被修改文件的偏移位置、修改的长度、修改数据存放的段编号、修改数据在段中的偏移位置。
[0017]
在本发明的一个或多个实施方式中,所述预设条件选自日志空间已满、在写操作后经历了预设时间中的一种。
[0018]
在本发明的一个或多个实施方式中,所述二叉树为avl树。
[0019]
在本发明的一个或多个实施方式中,所述将所述二叉树索引转换为b+树索引包括:
[0020]
将二叉树的节点插入至b+树的节点中;
[0021]
判断当前b+树的节点中键值的数量是否超过数量限制;
[0022]
响应于超过数量限制,将当前节点进行分裂。
[0023]
在本发明的一个或多个实施方式中,将所述二叉树索引转换为b+树索引还包括:
[0024]
在将二叉树的节点插入到b+树的节点中之前,还对二叉树的每个节点进行排序。
[0025]
在本发明的一个或多个实施方式中,所述二叉树的每个节点按照被修改文件的偏移位置进行排序。
[0026]
在本发明的一个或多个实施方式中,所述数据处理方法还包括:
[0027]
接收并响应读操作请求,通过二叉树查找相应日志空间;
[0028]
判断日志空间内是否存在相应数据;
[0029]
响应于日志空间不存在数据,则通过b+树查找数据空间获取数据。
[0030]
在本发明的一个或多个实施方式中,所述数据处理方法还包括:
[0031]
记录用作日志空间的段;
[0032]
在将日志空间转换为数据空间后,清除记录。
[0033]
本发明的实施例提供了一种文件系统的数据处理装置,所述数据处理装置包括:
[0034]
存储模块,用于接收并响应写操作请求,选取基于二叉树索引的日志空间写入相应数据;
[0035]
判断模块,用于判断是否满足预设条件;
[0036]
转换模块,用于响应于满足预设条件,将二叉树索引转换为用于索引数据空间的b+树索引,以将日志空间转换为数据空间。
[0037]
本发明的实施例提供了一种电子设备,所述电子设备包括:
[0038]
至少一个处理器;以及
[0039]
至少一个存储器,所述至少一个存储器被耦合到所述至少一个处理器并且存储用于由所述至少一个处理器执行的计算机程序,所述计算机程序由所述至少一个处理器执行时,使得所述电子设备执行上述所述的方法。
[0040]
本发明的实施例提供了一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被机器执行时实现上述所述的方法。
[0041]
与现有技术相比,本发明通过将二叉树索引转换为b+树索引,以便于将日志空间直接转换为数据空间,一方面可有效避免数据先写入到日志空间,再从日志空间读取写入到数据空间中的操作步骤,降低了固态硬盘的写入次数,进而提高了固态硬盘的使用寿命。另一方面还可以避免执行读取已持久化的数据、b+树插入、分裂等一系列操作,改善文件系统的写操作性能。
附图说明
[0042]
图1是根据本发明一实施方式的文件系统的数据处理方法流程图;
[0043]
图2是根据本发明一实施方式的固态硬盘结构示意图;
[0044]
图3是根据本发明一实施方式的二叉树转换b+树示意图;
[0045]
图4是根据本发明一实施方式的文件系统的数据处理装置结构框图。
具体实施方式
[0046]
下面结合附图,对本发明的具体实施方式进行详细描述,但应当理解本发明的保护范围并不受具体实施方式的限制。
[0047]
除非另有其它明确表示,否则在整个说明书和权利要求书中,术语“包括”或其变换如“包含”或“包括有”等等将被理解为包括所陈述的元件或组成部分,而并未排除其它元件或其它组成部分。
[0048]
本发明所揭示的一种文件系统的数据处理方法,能够解决现有技术中利用日志的持久化方式更新b+树所带来的性能损耗、固态硬盘使用寿命降低等问题,也就是说,本发明所述的数据处理方法,能够改善文件系统的读写性能,并提高固态硬盘的使用寿命。
[0049]
如图1所示,根据本发明优选实施方式的一种文件系统的数据处理方法,在写操作
时先将数据写入到日志空间中,之后在满足预设条件时将日志空间直接转换为数据空间。通过空间的转换,能够避免现有技术中利用日志的持久化方式更新b+树所带来的性能损耗、固态硬盘使用寿命降低等问题。而这里的日志空间转换为数据空间是通过将索引日志空间的二叉树转换为索引数据空间的b+树实现的。
[0050]
具体地,如图1所示,一种文件系统的数据处理方法,包括如下步骤:
[0051]
s10,接收并响应写操作请求,选取基于二叉树索引的日志空间写入相应数据;
[0052]
具体地,如图2所示,在固态硬盘中,固态硬盘的存储空间被分成若干个连续的段(segment),存储空间的管理是以段为单位进行管理的。为了便于管理,这里的每个段的大小通常设置为固定大小,如大小均为1mb。每个段进一步又可分成多个大小相同的块,如每块的大小均为4k。这些块使用位图(bitmap)等数据结构记录哪些是空闲的和哪些是已使用的。在实际进行写操作时,通常会从固态硬盘的剩余空间中找出空闲的段或者段中空闲的空间进行数据存储。
[0053]
进一步地,在固态硬盘中,选取一定数量的段(segment)作为日志空间,以存储数据,同时,选取一定数量的段作为数据空间。这里的日志空间和数据空间的数量是动态变化的,即日志空间可转换为数据空间。本实施例中,是在同一个固态硬盘中配置日志空间和数据空间,在其他实施例中,两者可分别设置,如在一个固态硬盘中配置日志空间,在另一个固态硬盘中配置数据空间等等。
[0054]
进一步地,上述日志空间是基于二叉树索引的,通过二叉树索引可获取日志空间存储的数据。这里的二叉树优选平衡二叉树(avl树)。二叉树的每个节点可以记录多个文件块信息,如记录1024个文件块信息。这里的每个文件块信息记录了对文件的修改信息。这里的文件修改信息包括被修改文件的偏移位置(offset)、修改的长度、修改数据存放的段编号(segmentid)以及修改数据在段中的偏移位置(offset)。上述数据空间是基于b+树索引的,通过b+树索引可获取数据空间中存储的数据。b+树包括根节点、内部节点和叶子节点,所有的叶子节点都在同一个级别,并且除根节点外,每个节点最多可以有m个子节点,至少可以有m/2个子节点,每个节点最多可包含m-1个键值,最少可包含(m/2)-1个键值,m为b+树的阶数。b+树的叶子节点存放数据记录,如记录文件块信息,每个文件块信息记录了对文件的修改信息。这里的文件修改信息包括被修改文件的偏移位置(offset)、修改的长度、修改数据存放的段编号(segmentid)以及修改数据在段中的偏移位置(offset)。
[0055]
进一步地,当文件系统接收到写操作请求后进一步响应该写操作请求,将写操作请求对应的数据写入到空闲的日志空间中。在将数据写入到相应日志空间后,便可更新二叉树,使得二叉树可以记录文件的修改信息,以便于利用二叉树索引相应数据。
[0056]
s20,判断是否满足预设条件;
[0057]
s30,响应于满足预设条件,将二叉树索引转换为b+树索引,以将日志空间转换为基于b+树索引的数据空间。
[0058]
具体地,当将写操作请求对应的数据存储至日志空间后,进一步判断是否满足预设条件,以便于执行后续操作。这里的预设条件包括日志空间已满、在写操作后经历了预设时间中一种,当然,其他实施例中,也可根据实际需求进行设置。本实施例中,在将写操作请求对应的数据存储至日志空间后,进一步判断日志空间是否已满,或者进一步判断是否在写操作后经历了预设时间。
[0059]
当确定满足预设条件后,进一步将二叉树索引转换为b+树索引,以实现日志空间直接转化为数据空间。通过将二叉树索引转换为b+树索引,以便于将日志空间直接转换为数据空间,可有效避免数据先写入到日志空间,再从日志空间读取写入到数据空间中的操作步骤,降低了固态硬盘的写入次数,进而提高了固态硬盘的使用寿命。与此同时,通过将二叉树索引转换为b+树索引,以便于将日志空间直接转换为数据空间,还可以避免执行读取已持久化的数据、b+树插入、分裂等一系列操作,改善文件系统的写操作性能。
[0060]
本实施例中,为了能够实现日志的恢复,记录了哪些段作为日志空间。当日志空间转换为数据空间后,这些记录需要清除。
[0061]
如图3所示,以下以二叉树的每个节点均存储一个文件块信息(如被修改文件的偏移位置),同时,b+树的每个节点也均存储一个文件块信息(如被修改文件的偏移位置)为例,对二叉树和b+树之间如何转换进行详细地说明。
[0062]
具体地,在将二叉树与b+树进行转换时,首先将二叉树的每个节点进行排序。本实施例中,在对每个节点进行排序时,可根据每个节点记录的被修改文件的偏移位置进行排序。当将二叉树的每个节点进行排序后,进一步将二叉树的节点插入到b+树中,并在b+树的叶子节点对应的键值数量超过限制时,分裂该节点。
[0063]
如图3示出了包含三个节点的二叉树转换到b+树中的过程。在二叉树中,记录了3个文件块的修改,分别对应的文件偏移位置为20、50、300。b+树记录了10个文件块的修改,分别对应的文件偏移位置为10,30,60,70,80,100,400,500,700,800。
[0064]
在执行插入操作时,先执行节点20的插入操作。在执行节点20插入操作时,找到b+树最左边节点插入20。之后,再依次插入节点50和300。在每次节点插入时,进一步判断当前节点键值的数量是否超过限制,如判断当前节点键值的数量是否小于或等于m-1,小于或等于m-1,m为b+数的阶数。当前节点键值的数量未超过限制时,不进行分裂处理。而当前节点键值的数量超过限制时,则进行分裂处理。如当前节点的键值数量小于或等于m-1时,则不进行分裂处理。当前节点的键值数量大于m-1时,则进行分裂处理。
[0065]
当将二叉树转换为b+树,直接可利用b+树索引相应日志空间的数据,也就是说,二叉树索引对应的日志空间作为了b+树的数据空间,进而实现了日志空间与数据空间之间的转换。当将二叉树转换为b+数后,进一步可对二叉树中的节点进行删除处理。
[0066]
进一步地,本发明所述的一种文件系统的数据处理方法还包括如下步骤:
[0067]
接收并响应读操作请求,通过二叉树查找相应日志空间。当查找到相应日志空间后,进一步判断日志空间内是否存在相应数据。当日志空间内不存在相应数据或者存在部分相应数据后,进一步通过b+树查找数据空间,以读取相应数据。当日志空间内存在相应数据时,直接读取相应数据。
[0068]
进一步地,为了保证数据的一致性,并降低文件系统快照的复杂性,对于文件系统快照而言,可在数据日志层通过内部事件(checkpoint)方式记录快照点的索引数据。由于不存在io避开(bypass)日志层的问题,所以通过内部事件(checkpoint)的方式记录快照点数据,能够保证快照数据的一致性。
[0069]
如图4所示,本发明一实施例所揭示的一种文件系统的数据处理装置,能够实现上述所述的数据处理方法,能够改善文件系统的读写性能,并提高固态硬盘的使用寿命。
[0070]
具体地,数据处理装置包括存储模块、判断模块和转换模块。其中,存储模块用于
接收并响应写操作请求,选取基于二叉树索引的日志空间写入相应数据;判断模块用于判断是否满足预设条件;转换模块用于响应于满足预设条件,将二叉树索引转换为b+树索引,以将日志空间转换为基于b+树索引的数据空间。
[0071]
具体实施时,文件系统通过存储模块接收到写操作请求并响应该写操作请求,进一步将写操作请求对应的数据写入到空闲的日志空间中。在将数据写入到相应日志空间后,便可更新二叉树,使得二叉树可以记录文件的修改信息,以便于利用二叉树索引相应数据。这里的日志空间是通过在固态硬盘中选取一定数量的段(segment)实现的,该日志空间是基于二叉树索引的,通过二叉树索引可获取日志空间存储的数据。这里的二叉树优选平衡二叉树(avl树)。二叉树的每个节点可以记录多个文件块信息,如记录1024个文件块信息。这里的每个文件块信息记录了对文件的修改信息。这里的文件修改信息包括被修改文件的偏移位置(offset)、修改的长度、修改数据存放的段编号(segmentid)以及修改数据在段中的偏移位置(offset)。
[0072]
当将写操作请求对应的数据存储至日志空间后,进一步通过判断模块判断是否满足预设条件,以执行后续操作。这里的预设条件包括日志空间已满、在写操作后经历了预设时间中一种,当然,其他实施例中,也可根据实际需求进行设置。本实施例中,在将写操作请求对应的数据存储至日志空间后,进一步判断日志空间是否已满,或者进一步判断是否在写操作后经历了预设时间。
[0073]
当通过判断模块确定满足预设条件后,进一步通过转换模块将二叉树索引转换为b+树索引,以实现日志空间直接转化为数据空间。这里的数据空间是通过在固态硬盘中选取一定数量的段实现的,该数据空间是通过是基于b+树索引的,通过b+树索引可获取数据空间中存储的数据。b+树包括根节点、内部节点和叶子节点,所有的叶子节点都在同一个级别,并且除根节点外,每个节点最多可以有m个子节点,至少可以有m/2个子节点,每个节点最多可包含m-1个键值,最少可包含(m/2)-1个键值,m为b+树的阶数。b+树的叶子节点存放数据记录,如记录文件块信息,每个文件块信息记录了对文件的修改信息。这里的文件修改信息包括被修改文件的偏移位置(offset)、修改的长度、修改数据存放的段编号(segmentid)以及修改数据在段中的偏移位置(offset)。
[0074]
通过将二叉树索引转换为b+树索引,以便于将日志空间直接转换为数据空间,可有效避免数据先写入到日志空间,在从日志空间读取吸入到数据空间中,降低了固态硬盘的写入次数,提高了固态硬盘的使用寿命。与此同时,通过将二叉树索引转换为b+树索引,以便于将日志空间直接转换为数据空间,还可以避免执行读取已持久化的数据、b+树插入、分裂等一系列操作,改善文件系统的写操作性能。
[0075]
如图3所示,以下以二叉树的每个节点均存储一个文件块信息(如被修改文件的偏移位置),同时,b+树的每个节点也均存储一个文件块信息(如被修改文件的偏移位置)为例,对转换模块如何将二叉树和b+树进行转换进行详细地说明。
[0076]
在将二叉树与b+树进行转换时,首先将二叉树的每个节点进行排序。本实施例中,在对每个节点进行排序时,可根据每个节点记录的被修改文件的偏移位置进行排序。当将二叉树的每个节点进行排序后,进一步将二叉树的节点插入到b+树中,并在b+树的叶子节点对应的键值数量超过限制时,分裂该节点。
[0077]
如图示出了包含三个节点的二叉树转换到b+树中的过程。在二叉树中,记录了3个
文件块的修改,分别对应的文件偏移位置为20、50、300。b+树记录了10个文件块的修改,分别对应的文件偏移位置为10,30,60,70,80,100,400,500,700,800。
[0078]
在执行插入操作时,先执行节点20的插入操作。在执行节点20插入操作时,找到b+树最左边节点插入节点20。之后,再依次插入节点50和300。在每次节点插入时,进一步判断当前节点键值的数量是否超过限制,如判断当前节点键值的数量是否小于或等于m-1,小于或等于m-1,m为b+数的阶数。当前节点键值的数量未超过限制时,不进行分裂处理。而当前节点键值的数量超过限制时,则进行分裂处理。如当前节点的键值数量小于或等于m-1时,则不进行分裂处理。当前节点的键值数量大于m-1时,则进行分裂处理。
[0079]
当将二叉树转换为b+树后,直接可利用b+树索引相应日志空间的数据,也就是说,二叉树索引对应的日志空间作为了b+树的数据空间,进而实现了日志空间与数据空间之间的转换。当将二叉树转换为b+数后,进一步可对二叉树中的节点进行删除处理。
[0080]
本发明一实施例所揭示的电子设备,电子设备可以包括但不限于:个人计算机、服务器计算机、工作站、桌面型计算机、膝上型计算机、笔记本计算机、移动电子设备、智能电话、平板计算机、蜂窝电话、个人数字助理(pda)、手持装置、消息收发设备、可佩戴电子设备、消费电子设备等等。该电子设备可实现上述所述的文件系统的数据处理方法,能够改善文件系统的读写性能,并提高固态硬盘的使用寿命。具体地,电子设备包括至少一个存储器、至少一个处理器以及计算机程序,至少一个存储器被耦合到所述至少一个处理器,其中,计算机程序存储于存储器中并可在处理器中运行,如该计算机程序为数据处理程序等。实施时,处理器执行该计算机程序时可实现上述方法中的各个步骤,如响应于满足预设条件,将二叉树索引转换为b+树索引,以将日志空间转换为基于b+树索引的数据空间的步骤等等。
[0081]
这里的计算机程序可被分割成一个或多个单元,所述一个或者多个单元被存储在所述存储器中,并由所述存储器执行,以完成本发明。其中,一个或多个单元可以是能够完成特定功能的一系列计算机程序指令段,该计算机程序指令段用于描述计算机程序在所述电子设备中的执行过程。
[0082]
需要说明的是,这里的电子设备包括并不限于上述所述的存储器、处理器和计算机程序,也可包括其它,如用于输入指令的输入设备(如键盘等)、用于显示协商结果的显示屏、通信接口等等,这些部件通过总线进行相互间的通信。
[0083]
本发明还揭示了一种计算机可读存储介质,该计算机可读存储介质中存储有计算机程序,该计算机程序被处理器执行时,可实现上述文件系统的数据处理方法,能够改善文件系统的读写性能,并提高固态硬盘的使用寿命。其中,所述计算机程序包括计算机程序代码,所述计算机程序代码可以为源代码形式、可执行文件或某些中间形式等,所述计算机可读介质可以包括能够携带所述计算机程序代码的任何实体或装置、记录介质、u盘、移动硬盘、磁碟、光盘、计算机存储器、只读存储器(rom,read-onlymemory)、随机存取存储器(ram,randomaccessmemory)等等。
[0084]
本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产
品的形式。
[0085]
本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
[0086]
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
[0087]
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
[0088]
前述对本发明的具体示例性实施方案的描述是为了说明和例证的目的。这些描述并非想将本发明限定为所公开的精确形式,并且很显然,根据上述教导,可以进行很多改变和变化。对示例性实施例进行选择和描述的目的在于解释本发明的特定原理及其实际应用,从而使得本领域的技术人员能够实现并利用本发明的各种不同的示例性实施方案以及各种不同的选择和改变。本发明的范围意在由权利要求书及其等同形式所限定。

技术特征:
1.一种文件系统的数据处理方法,其特征在于,所述数据处理方法包括:接收并响应写操作请求,选取基于二叉树索引的日志空间写入相应数据;判断是否满足预设条件;响应于满足预设条件,将二叉树索引转换为用于索引数据空间的b+树索引,以将日志空间转换为数据空间。2.如权利要求1所述的数据处理方法,其特征在于,所述二叉树的每个节点存储用于记录文件修改信息的文件块信息,所述文件修改信息包括被修改文件的偏移位置、修改的长度、修改数据存放的段编号、修改数据在段中的偏移位置。3.如权利要求1所述的数据处理方法,其特征在于,所述预设条件选自日志空间已满、在写操作后经历了预设时间中的一种。4.如权利要求1所述的数据处理方法,其特征在于,所述二叉树为avl树。5.如权利要求2所述的数据处理方法,其特征在于,将所述二叉树索引转换为b+树索引包括:将二叉树的节点插入至b+树的节点中;判断当前b+树的节点中键值的数量是否超过数量限制;响应于超过数量限制,将当前节点进行分裂。6.如权利要求5所述的数据处理方法,其特征在于,将所述二叉树索引转换为b+树索引还包括:在将二叉树的节点插入到b+树的节点中之前,还对二叉树的每个节点进行排序。7.如权利要求6所述的数据处理方法,其特征在于,所述二叉树的每个节点按照被修改文件的偏移位置进行排序。8.如权利要求1所述的数据处理方法,其特征在于,所述数据处理方法还包括:接收并响应读操作请求,通过二叉树查找相应日志空间;判断日志空间内是否存在相应数据;响应于日志空间不存在数据,则通过b+树查找数据空间获取数据。9.如权利要求1所述的数据处理方法,其特征在于,所述数据处理方法还包括:记录用作日志空间的段;在将日志空间转换为数据空间后,清除记录。10.一种文件系统的数据处理装置,其特征在于,所述数据处理装置包括:存储模块,用于接收并响应写操作请求,选取基于二叉树索引的日志空间写入相应数据;判断模块,用于判断是否满足预设条件;转换模块,用于响应于满足预设条件,将二叉树索引转换为用于索引数据空间的b+树索引,以将日志空间转换为数据空间。11.一种电子设备,其特征在于,所述电子设备包括:至少一个处理器;以及至少一个存储器,所述至少一个存储器被耦合到所述至少一个处理器并且存储用于由所述至少一个处理器执行的计算机程序,所述计算机程序由所述至少一个处理器执行时,使得所述电子设备执行权利要求1至9任一项所述的方法。
12.一种计算机可读存储介质,其特征在于,其上存储有计算机程序,所述计算机程序被机器执行时实现权利要求1至9任一项所述的方法。

技术总结
本发明公开了一种文件系统的数据处理方法。方法包括接收并响应写操作请求,选取基于二叉树索引的日志空间写入相应数据;判断是否满足预设条件;响应于满足预设条件,将二叉树索引转换为用于索引数据空间的B+树索引,以将日志空间转换为数据空间。本发明还公开了一种实现上述数据处理方法的装置、电子设备及存储介质。本发明能够改善文件系统的读写性能,提高固态硬盘的使用寿命。高固态硬盘的使用寿命。高固态硬盘的使用寿命。


技术研发人员:请求不公布姓名
受保护的技术使用者:安超云软件有限公司
技术研发日:2023.05.25
技术公布日:2023/8/21
版权声明

本文仅代表作者观点,不代表航家之家立场。
本文系作者授权航家号发表,未经原创作者书面授权,任何单位或个人不得引用、复制、转载、摘编、链接或以其他任何方式复制发表。任何单位或个人在获得书面授权使用航空之家内容时,须注明作者及来源 “航空之家”。如非法使用航空之家的部分或全部内容的,航空之家将依法追究其法律责任。(航空之家官方QQ:2926969996)

航空之家 https://www.aerohome.com.cn/

飞机超市 https://mall.aerohome.com.cn/

航空资讯 https://news.aerohome.com.cn/

分享:

扫一扫在手机阅读、分享本文

相关推荐