首页 / 专利库 / 化学元素和化合物 / 电子 / 一种根节点数据处理方法、装置、电子设备及存储介质

一种根节点数据处理方法、装置、电子设备及存储介质

阅读:931发布:2023-01-26

专利汇可以提供一种根节点数据处理方法、装置、电子设备及存储介质专利检索,专利查询,专利分析的服务。并且本 申请 公开了一种根 节点 数据处理 方法,区别于 现有技术 ,本申请为防止在异常掉电时因电量不足造成根节点数据的丢失,先将待存储根节点数据下发至磁盘的预设存储空间进行存储,磁盘存储完成后再通过磁盘将数据同步至内存。由于每次待存储根节点数据的下发都先更新磁盘,因此即使出现异常掉电内存中也不存在磁盘没有的最新根节点数据,且此时只需要再次由磁盘将其预设存储空间中存储的根节点数据同步至内存中即可恢复正常,将因异常掉电对根节点数据可能造成的丢失降到了最低。本申请还同时公开了一种根节点数据处理装置、 电子 设备及可读存储介质,具有上述有益效果。,下面是一种根节点数据处理方法、装置、电子设备及存储介质专利的具体信息内容。

1.一种根节点数据处理方法,其特征在于,包括:
接收下发的待存储根节点数据;
将所述待存储根节点数据存储至磁盘的预设存储空间;
当接收到所述磁盘返回的存储完成信号时,控制所述磁盘将所述预设存储空间中存储的根节点数据同步至内存。
2.根据权利要求1所述的根节点数据处理方法,其特征在于,将所述待存储根节点数据存储至磁盘的预设存储空间,包括:
将所述待存储根节点数据存储至所述磁盘的头信息中的自定义字段。
3.根据权利要求1所述的根节点数据处理方法,其特征在于,将所述待存储根节点数据存储至磁盘的预设存储空间,包括:
将所述待存储根节点数据以主副本的方式分别存储至所述磁盘的预设存储空间的不同地址。
4.根据权利要求3所述的根节点数据处理方法,其特征在于,还包括:
控制主根节点数据和副本根节点数据通过异步的方式保持一致;
或,
控制主根节点数据和副本根节点数据通过同步的方式保持一致。
5.根据权利要求1所述的根节点数据处理方法,其特征在于,在将所述待存储根节点数据存储至磁盘的预设存储空间之后,还包括:
控制所述磁盘通过CRC和Magic Number机制对下发的待存储根节点数据与所述磁盘上实际存储的根节点数据进行一致性校验;其中,所述CRC和所述Magic Number与所述待存储根节点数据一并存储在所述预设存储空间;
当所述一致性校验未通过时,控制所述磁盘返回重新下发根节点数据的请求
6.根据权利要求1所述的根节点数据处理方法,其特征在于,在双控制器集群中,还包括:
当另一控制器掉线时,接收下发给所述另一控制器的请求;
通过存储于所述磁盘中的对应于所述另一控制器的根节点数据完成对所述请求的处理;其中,每个控制器对应的存储根节点数据的磁盘中同时存储有本控制器和另一控制器的根节点数据。
7.根据权利要求1至6任一项所述的根节点数据处理方法,其特征在于,还包括:
在保持所述预设存储空间的大小的基础上,按周期更换所述预设存储空间的起始地址。
8.一种根节点数据处理装置,其特征在于,包括:
数据接收单元,用于接收下发的待存储根节点数据;
磁盘存储单元,用于将所述待存储根节点数据存储至磁盘的预设存储空间;
内存同步单元,用于当接收到所述磁盘返回的存储完成信号时,控制所述磁盘将所述预设存储空间中存储的根节点数据同步至内存。
9.一种电子设备,其特征在于,包括:
存储器,用于存储计算机程序
处理器,用于在执行所述计算机程序时,实现如权利要求1至7任一项所述的根节点数据处理方法的各步骤。
10.一种可读存储介质,其特征在于,所述可读存储介质上存储有计算机程序,所述计算机程序在被处理器执行时实现如权利要求1至7任一项所述的根节点数据处理方法的各步骤。

说明书全文

一种根节点数据处理方法、装置、电子设备及存储介质

技术领域

[0001] 本申请涉及全闪存储技术领域,特别涉及一种根节点数据处理方法、装置、电子设备及可读存储介质。

背景技术

[0002] 元数据是全闪存储系统中最重要的部分,针对一般I/O业务,需要管理逻辑地址到物理地址(即LP)的映射关系,针对重删和垃圾回收功能,则需要管理I/O的指纹值到物理地址(即HP)和物理地址到逻辑地址(即PL)的映射关系。由此可见,元数据的功能便是管理一种key-value的映射关系。
[0003] 在存储系统中,为了减少读盘次数,一般使用B+树或其变体来实现。打但无论使用什么类型的树形结构,其根节点都是最重要的部分,一旦根节点数据丢失便无法对整棵树进行访问,从而丢失整棵树所能表示的数据。
[0004] 由于元数据的特性,其将会被频繁的访问,因此通常采用将其存储在内存这一高速读写介质中。而在异常掉电等情况下,现有技术通过BBU进行harden操作来尽可能的将存储在内存中的根节点数据下刷至磁盘中进行持久化存储(即使用BBU所带电将被标记为harden的内存页持久化到磁盘中)。但是受限于BBU电量,往往不能将所有的内存页都持久化到磁盘中。而元数据中根节点数据的大小受到系统规格的影响,在大规格的前提下,会出现占用大量内存实际上只使用了其中一部分空间的情况,通过设置更多的BBU来解决这一问题无疑是不切合实际的。因此,现有技术无法很好的存储根节点数据,根节点数据的丢失则会带来更多的损失。
[0005] 因此,如何克服上述现有技术存在的各项技术缺陷,是本领域技术人员亟待解决的问题。发明内容
[0006] 本申请的目的是提供一种根节点数据处理方法、装置、电子设备及可读存储介质,旨在即使针对异常掉电的情况,根节点数据也能够尽可能的不丢失,减少为修复丢失根节点数据所带来的额外开销。
[0007] 为实现上述目的,本申请提供了一种根节点数据处理方法,该方法包括:
[0008] 接收下发的待存储根节点数据;
[0009] 将所述待存储根节点数据存储至磁盘的预设存储空间;
[0010] 当接收到所述磁盘返回的存储完成信号时,控制所述磁盘将所述预设存储空间中存储的根节点数据同步至内存。
[0011] 可选的,将所述待存储根节点数据存储至磁盘的预设存储空间,包括:
[0012] 将所述待存储根节点数据存储至所述磁盘的头信息中的自定义字段。
[0013] 可选的,将所述待存储根节点数据存储至磁盘的预设存储空间,包括:
[0014] 将所述待存储根节点数据以主副本的方式分别存储至所述磁盘的预设存储空间的不同地址。
[0015] 可选的,该根节点数据处理方法还包括:
[0016] 控制主根节点数据和副本根节点数据通过异步的方式保持一致;
[0017] 或,
[0018] 控制主根节点数据和副本根节点数据通过同步的方式保持一致。
[0019] 可选的,在将所述待存储根节点数据存储至磁盘的预设存储空间之后,还包括:
[0020] 控制所述磁盘通过CRC和Magic Number机制对下发的待存储根节点数据与所述磁盘上实际存储的根节点数据进行一致性校验;;其中,所述CRC和所述Magic Number与所述待存储根节点数据一并存储在所述预设存储空间
[0021] 当所述一致性校验未通过时,控制所述磁盘返回重新下发根节点数据的请求
[0022] 可选的,该根节点数据处理方法,在双控制器集群中,还包括:
[0023] 当另一控制器掉线时,接收下发给所述另一控制器的请求;
[0024] 通过存储于所述磁盘中的对应于所述另一控制器的根节点数据完成对所述请求的处理;其中,每个控制器对应的存储根节点数据的磁盘中同时存储有本控制器和另一控制器的根节点数据。
[0025] 可选的,根节点数据处理方法还包括:
[0026] 在保持所述预设存储空间的大小的基础上,按周期更换所述预设存储空间的起始地址。
[0027] 为实现上述目的,本申请还提供了一种根节点数据处理装置,该装置包括:
[0028] 数据接收单元,用于接收下发的待存储根节点数据;
[0029] 磁盘存储单元,用于将所述待存储根节点数据存储至磁盘的预设存储空间;
[0030] 内存同步单元,用于当接收到所述磁盘返回的存储完成信号时,控制所述磁盘将所述预设存储空间中存储的根节点数据同步至内存。
[0031] 可选的,所述磁盘存储单元包括:
[0032] 头信息自定义字段存储子单元,用于将所述待存储根节点数据存储至所述磁盘的头信息中的自定义字段。
[0033] 可选的,所述磁盘存储单元包括:
[0034] 主副本冗余存储子单元,用于将所述待存储根节点数据以主副本的方式分别存储至所述磁盘的预设存储空间的不同地址。
[0035] 可选的,该主副本冗余存储子单元还包括:
[0036] 异步更新模,用于控制主根节点数据和副本根节点数据通过异步的方式保持一致;
[0037] 或,
[0038] 同步更新模块,用于控制主根节点数据和副本根节点数据通过同步的方式保持一致。
[0039] 可选的,该根节点数据处理装置还包括:
[0040] 一致性校验单元,用于在将所述待存储根节点数据存储至磁盘的预设存储空间之后,控制所述磁盘通过CRC和Magic Number机制对下发的待存储根节点数据与所述磁盘上实际存储的根节点数据进行一致性校验;;其中,所述CRC和所述Magic Number与所述待存储根节点数据一并存储在所述预设存储空间
[0041] 重新下发请求返回单元,用于当所述一致性校验未通过时,控制所述磁盘返回重新下发根节点数据的请求。
[0042] 可选的,该根节点数据处理装置,还包括:
[0043] 掉线控制器请求接收单元,用于在双控制器集群中,当另一控制器掉线时,接收下发给所述另一控制器的请求;
[0044] 请求接管处理单元,用于通过存储于所述磁盘中的对应于所述另一控制器的根节点数据完成对所述请求的处理;其中,每个控制器对应的存储根节点数据的磁盘中同时存储有本控制器和另一控制器的根节点数据。
[0045] 可选的,该根节点数据处理装置还包括:
[0046] 起始地址更换单元,用于在保持所述预设存储空间的大小的基础上,按周期更换所述预设存储空间的起始地址。
[0047] 为实现上述目的,本申请还提供了一种电子设备,该电子设备包括:
[0048] 存储器,用于存储计算机程序
[0049] 处理器,用于在执行所述计算机程序时实现如上述内容所描述的根节点数据处理方法的各步骤。
[0050] 为实现上述目的,本申请还提供了一种可读存储介质,所述可读存储介质上存储有计算机程序,所述计算机程序在被处理器执行时实现如上述内容所描述的根节点数据处理方法的各步骤。
[0051] 本申请提供的一种根节点数据处理方法,包括:接收下发的待存储根节点数据;将所述待存储根节点数据存储至磁盘的预设存储空间;当接收到所述磁盘返回的存储完成信号时,控制所述磁盘将所述预设存储空间中存储的根节点数据同步至内存。
[0052] 根据本申请提供的根节点数据处理方法可以看出,区别于现有技术,本申请为防止在异常掉电时因电量不足造成根节点数据的丢失,先将待存储根节点数据下发至磁盘的预设存储空间进行存储,磁盘存储完成后再通过磁盘将数据同步至内存。由于每次待存储根节点数据的下发都先更新磁盘,因此即使出现异常掉电内存中也不存在磁盘没有的最新根节点数据,且此时只需要再次由磁盘将其预设存储空间中存储的根节点数据同步至内存中即可恢复正常,将因异常掉电对根节点数据可能造成的丢失降到了最低。
[0053] 本申请同时还提供了一种根节点数据处理装置、电子设备及可读存储介质,具有上述有益效果,在此不再赘述。附图说明
[0054] 为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
[0055] 图1为本申请实施例提供的一种根节点数据处理方法的流程图
[0056] 图2为本申请实施例提供的另一种根节点数据处理方法的流程图;
[0057] 图3为本申请实施例提供的又一种根节点数据处理方法的流程图;
[0058] 图4为本申请实施例提供的再一种根节点数据处理方法的流程图;
[0059] 图5为本申请实施例提供的一种根节点数据在预设存储空间中进行存储的示意图;
[0060] 图6为本申请实施例提供的一种根节点数据处理装置的结构示意图。

具体实施方式

[0061] 本申请的目的是提供一种根节点数据处理方法、装置、电子设备及可读存储介质,旨在即使针对异常掉电的情况,根节点数据也能够尽可能的不丢失,减少为修复丢失根节点数据所带来的额外开销。
[0062] 为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本申请保护的范围。
[0063] 实施例一
[0064] 请参见图1,图1为本申请实施例提供的一种根节点数据处理方法的流程图,本申请所提供的方案适用于全闪存储的存储系统中,下述各步骤的执行主体为存储系统中负责对待存储根节点数据进行处理的控制器,其包括以下步骤:
[0065] S101:接收下发的待存储根节点数据;
[0066] 本步骤旨在由控制器接收上层下发的待存储根节点数据,其中,该待存储根节点数据可以是全新数据对应的元数据的根节点部分,也可以是原有数据在修改后的元数据的根节点部分。
[0067] S102:将待存储根节点数据存储至磁盘的预设存储空间;
[0068] 其中,该磁盘为负责对持久化根节点数据的存储设备,本申请预先在该磁盘中划分出一片固定地址的存储空间,该预设存储空间的大小可根据实际情况自行设置,以能够满足存储系统需要存储的根节点数据为准。
[0069] 具体的,该预设存储空间的起始地址在满足存储空间的大小的基础上,可以为磁盘全部逻辑地址中的任何一个,但之所以要固定,是因为如果不固定的话,在数据将随机存储在磁盘的任何一个位置的机制下,就需要额外的元数据来记录原来的根节点数据存储在磁盘的哪个位置,这就又会牵扯到要保障元数据的元数据的问题,十分麻烦。因此,为了避免这一问题所带来的不必要开销,本申请将该预设存储空间的地址固定下来,并将该地址预置在控制器中,以使每当需要将待存储根节点数据存储至磁盘时,控制器可以直接指定存储的位置,更加方便。
[0070] 进一步的,由于本申请存储的根节点数据本质上为元数据中关键的部分,而元数据的特性导致了其将会被频繁的访问和使用,因此为了尽可能的避免磁盘某个位置对应的存储介质由于受到远超于其它位置的存储介质的访问次数,所造成的存储介质老化导致出现坏道问题,还可以定期更换该预设存储空间的起始地址,以尽可能的避免这个问题的出现。
[0071] 在S101的基础上,本步骤旨在由控制器将接收到的待存储根节点数据存储至磁盘的预设存储空间,即向磁盘下发包含有待存储根节点数据的写请求,以使磁盘响应于该写请求,将包含在该写请求中的待存储根节点保存在专为其预留的存储空间中。
[0072] S103:当接收到磁盘返回的存储完成信号时,控制磁盘将预设存储空间中存储的根节点数据同步至内存。
[0073] 磁盘在完成控制器下发的写请求后,会向控制器返回存储完成信号。
[0074] 本步骤建立在控制器收到磁盘返回的存储完成信号的基础上,此时控制器将控制磁盘将存储在预设存储空间中的根节点数据同步至内存,在实际情况下,也可以由控制器发起将存储在预设存储空间的根节点数据读取至内存的操作。
[0075] 但无论具体如何实现,通过S102和S103可以看出的是,区别于现有技术先将待存储根节点数据保存在内存、再由内存下刷至磁盘进行持久化存储的方式,本申请采用了控制先将待存储根节点存储至磁盘,再使用磁盘中存储的根节点数据同步至内存的方式,由于每当有待存储根节点数据都会先落盘在磁盘中,而存储在具有掉电不易失特定的磁盘中的数据将不会因为异常掉电出现丢失现象,因此可以尽可能的避免根节点数据的丢失。
[0076] 根据本实施例提供的根节点数据处理方法可以看出,区别于现有技术,本实施例为防止在异常掉电时因电量不足造成根节点数据的丢失,先将待存储根节点数据下发至磁盘的预设存储空间进行存储,磁盘存储完成后再通过磁盘将数据同步至内存。由于每次待存储根节点数据的下发都先更新磁盘,因此即使出现异常掉电内存中也不存在磁盘没有的最新根节点数据,且此时只需要再次由磁盘将其预设存储空间中存储的根节点数据同步至内存中即可恢复正常,将因异常掉电对根节点数据可能造成的丢失降到了最低。
[0077] 实施例二
[0078] 在实施例一的基础上,本实施例针对S102,从如何选定该预设存储空间的度来尽可能的寻求一种优化方案,本实施例基于磁盘头信息的重要性和查找便利性,在磁盘的头信息的自定义字段中设置了该存储空间,以尽可能方便、快捷的存储根节点数据,同时让存储在头信息中的根节点数据也能够享受到针对头信息的安全保障措施。
[0079] 请参见图2,图2为本申请实施例提供的另一种根节点数据处理方法的流程图,具体包括以下步骤:
[0080] S201:接收下发的待存储根节点数据;
[0081] S202:将待存储根节点数据存储至磁盘的头信息中的自定义字段;
[0082] 其中,磁盘的头信息中存储着众多该磁盘的重要参数,例如容量、厂家、型号、转速、使用情况、已存储数据的索引等等。应当理解的是,头信息在使用不同的字段记录上述不同类型的参数之外,还预留有多个空白的自定义字段,以便于实现一些额外的功能。因此,本申请基于这一特性,选用某个自定义字段作为预设存储空间来存储根节点数据。根据不同自定义字段在头信息中的位置,该自定义字段的起始地址可以是该磁盘最开头的逻辑地址,即首地址,也可以为非首地址的某个地址,此处不做限定。
[0083] S203:当接收到磁盘返回的存储完成信号时,控制磁盘将预设存储空间中存储的根节点数据同步至内存。
[0084] 在实施例一方案具有的有益效果的基础上,本实施例通过选用磁盘头信息的自定义字段作为该预设存储空间,使得根节点数据得以被存储在具有磁盘最高级别的安全保障策略的头信息中,得以尽可能的保障存储在磁盘中的根节点数据的安全性。
[0085] 实施例三
[0086] 在实施例一基础上,本实施例针对S102,从如何的将待存储根节点数据以更高可靠性的方式存储在预设存储空间中的角度,给出了另一种优化的方案,即通过采用主副本的方式,将下发的待存储根节点数据一式多份(一主数据和至少一个副本数据)分别存储在预设存储空间的不同位置,以尽可能的规避磁盘坏道等原因导致某个无法读取到某个地址下存储的数据的问题。
[0087] 请参见图3,图3为本申请实施例提供的又一种根节点数据处理方法的流程图,包括如下步骤:
[0088] S301:接收下发的待存储根节点数据;
[0089] S302:将待存储根节点数据以主副本的方式分别存储至磁盘的预设存储空间的不同地址;
[0090] 其中,主副本方式是一种一式多份的冗余方案,最少可以为一个主数据和一个副本数据,也可以根据实际情况存在多个副本,且为了尽可能的避免主数据与副本数据同时出现不可用问题,还需要尽可能的将主数据和副本数据分别存储,即存储在不同的地址、不同的位置。
[0091] 具体的,以一副本为例,针对主根节点数据和副本根节点数据之间采用如何方式保持一致进行说明:
[0092] 方式一:控制主根节点数据和副本根节点数据通过异步的方式保持一致;
[0093] 异步的方式,表示副本根节点数据不与主根节点数据在同一时间更新,尤其是在出现根节点数据被修改的情况下,只会在第一时间将预设存储空间中的原主根节点数据替换为最新的根节点数据,而原副本根节点数据保持不变,在之后某个时间节点再将原副本根节点数据同步为与新主根节点数据一致。中间的这个时间节点可用于对新主根节点数据的可用性进行确认,若发现其不可用或存在异常,还可以及时使用原副本根节点数据进行回溯。
[0094] 具体的,异步同步方式下,可以采用版本号、时间戳或其它类似的方式来区别是否更新了的主根节点数据和副本根节点数据。
[0095] 方式二:控制主根节点数据和副本根节点数据通过同步的方式保持一致。
[0096] 同步的方式,表示每当有待存储根节点数据要存储,就会通过拷贝、镜像的方式得到两份一样的待存储根节点数据,分别作为主根节点数据和副本根节点数据,所以两者将会在同一时间进行修改,从而有效防止其中任一份不可用后还至少可以从另一个地址读取到相同的数据。
[0097] 上述两种方式由于特点不同,可在不同的适用场景下发挥出不同的作用,可根据实际情况选择最合适的方式,此处不做具体限定。
[0098] S303:当接收到磁盘返回的存储完成信号时,控制磁盘将预设存储空间中存储的根节点数据同步至内存。
[0099] 在实施例一方案具有的有益效果的基础上,本实施例通过将该待存储根节点数据以主副本的冗余机制保存在预设存储空间的不同位置,使得根节点数据得以更安全的存储在磁盘中,提高了根节点数据的可靠性。
[0100] 实施例四
[0101] 在实施例一的基础上,本申请额外增加了磁盘对存储的根节点数据进行一致性校验的方案,从而保障存储在自身的根节点数据与下发的待存储根节点数据时一致的,防止由于不一致出现的后续异常现象。
[0102] 请参见图4,图4为本申请实施例提供的再一种根节点数据处理方法的流程图,包括如下步骤:
[0103] S401:接收下发的待存储根节点数据;
[0104] S402:将待存储根节点数据存储至磁盘的预设存储空间;
[0105] S403:控制磁盘通过CRC和Magic Number机制对下发的待存储根节点数据与磁盘上实际存储的根节点数据进行一致性校验;
[0106] 本步骤建立在磁盘还未返回存储完成信号的基础上,即本步骤为返回存储完成信号的前置步骤,通过CRC和Magic Nunber机制来对下发的待存储根节点数据与磁盘上实际存储的根节点数据进行一致性校验。
[0107] 其中,CRC(Cyclic Redundancy Check,循环冗余校验)是一种根据网络数据包或计算机文件等数据产生简短固定位数校验码的一种信道编码技术,主要用来检测或校验数据传输或者保存后可能出现的错误,其利用除法及余数的原理来作错误侦测。
[0108] Magic Number,幻数,它可以用来标记文件或者协议的格式,很多文件都有幻数标志来表明该文件的格式。本申请也使用其来帮助CRC一并实现更好的一致性校验效果。
[0109] 此外,CRC和Magic Number也可以用于对磁盘是否因发生静默错误(指数据在磁盘中存储的过程中因存储介质异常导致数据变化的现象)导致数据错误进行判别。
[0110] S404:当一致性校验通过时,控制磁盘返回存储完成信号;
[0111] 本步骤建立在一致性校验通过的基础上,说明下发的待存储根节点数据与磁盘上实际存储的根节点数据一致,因此可以控制磁盘返回存储完成信号。
[0112] S405:当接收到磁盘返回的存储完成信号时,控制磁盘将预设存储空间中存储的根节点数据同步至内存;
[0113] S406:当一致性校验未通过时,控制磁盘返回重新下发根节点数据的请求。
[0114] 本步骤建立在一致性校验未通过的基础上,说明下发的待存储根节点数据与磁盘上实际存储的根节点数据不一致,因此控制磁盘向控制器返回重新下发根节点数据的请求,以重新执行上述步骤来试图纠正这一错误。
[0115] 在实施例一方案具有的有益效果的基础上,本步骤通过增加了CRC和Magic Number的一致性操作,进一步的保障了保存在磁盘上的根节点数据的可用性。
[0116] 为加深理解,此处还通过图5给出了一种根节点数据具体如何存储在预设存储空间的示意图。从图5中首先可以看出,预设存储空间被依次分为HEAD区、PL区、HP区和LP区,且每个区域都由若干个rootPage(内存页)组成,每个rootPage的大小为4KB,以便于分别对应于内存的Page。而对于一个rootPage,在写入磁盘时候采用主副本的冗余方式(一主一副),即对应某个rootPage,给定一个固定的起始地址和写入长度,对其副本,给定一个固定的起始长度和offset(偏移)和同样的写入长度。这样对于一份数据,就有了两个副本,从而允许在可能出现的坏道的情况下使用其副本进行恢复,增加容错率。其中,HEAD区又作为根节点数据的头字段存储一些关键信息,包括整个元数据区的公共信息,如版本号、可用状态等,而PL区、HP则分别用于保存PL树和HP树的根节点。且每个rootPage中还保存相应数据的CRC和Magic Number。因此如图5所示的方案作为同时综合上述各实施例的方案存在的一个优选方案。
[0117] 在上述任意实施例的基础上,针对双控制器的存储系统,往往还要求任一控制器均能够在另一控制异常掉线时接管其任务,因此针对这一情况,本申请还提供了下述方案:
[0118] 当另一控制器掉线时,接收下发给另一控制器的请求;
[0119] 通过存储于磁盘中的对应于另一控制器的根节点数据完成对请求的处理;其中,每个控制器对应的存储根节点数据的磁盘中同时存储有本控制器和另一控制器的根节点数据。
[0120] 由于能够接管另一控制器的任务,也就是说每个控制器都要同时存储本控制和另一控制器的元数据,因此相比于单控制器存储系统,每个控制器对应的磁盘中用于存储元数据的预设存储空间的大小至少要翻倍。
[0121] 进一步的,当掉线的控制器恢复正常后,在如何恢复其应保存的根节点数据,使其与另一个未掉线的控制器保持一致、保持主副本冗余机制的可用性,存在多种实现方式。本申请针对其中两种进行介绍:
[0122] 其一,恢复正常的控制器从一直没有掉线的另一控制器中完成缺失根节点数据的同步,其中,哪部分缺失、同步是否完成和有效,也借助包括CRC、Magic Number以及版本标识或诸如时间戳的时间标识在内的各种手段完成;
[0123] 其二,基于本申请提供的先将根节点数据保存至磁盘,再从磁盘同步至内存中的方案,在内存未经历过异常掉电的前提下,也可以直接从内存中拉取缺失的部分根节点数据,其中,哪部分缺失、同步是否完成和有效,可同样借助于包括CRC、Magic Number以及版本标识或诸如时间戳的时间标识在内的各种手段完成。
[0124] 因为情况复杂,无法一一列举进行阐述,本领域技术人员应能意识到根据本申请提供的基本方法原理结合实际情况可以存在很多的例子,在不付出足够的创造性劳动下,应均在本申请的保护范围内。
[0125] 下面请参见图6,图6为本申请实施例所提供的一种环境下服务的部署系统的结构框图,该部署系统可以包括:
[0126] 数据接收单元100,用于接收下发的待存储根节点数据;
[0127] 磁盘存储单元200,用于将待存储根节点数据存储至磁盘的预设存储空间;
[0128] 内存同步单元300,用于当接收到磁盘返回的存储完成信号时,控制磁盘将预设存储空间中存储的根节点数据同步至内存。
[0129] 其中,该磁盘存储单元200可以包括:
[0130] 头信息自定义字段存储子单元,用于将待存储根节点数据存储至磁盘的头信息中的自定义字段。
[0131] 其中,该磁盘存储单元200可以包括:
[0132] 主副本冗余存储子单元,用于将待存储根节点数据以主副本的方式分别存储至磁盘的预设存储空间的不同地址。
[0133] 进一步的,该主副本冗余存储子单元还可以包括:
[0134] 异步更新模块,用于控制主根节点数据和副本根节点数据通过异步的方式保持一致;
[0135] 或,
[0136] 同步更新模块,用于控制主根节点数据和副本根节点数据通过同步的方式保持一致。
[0137] 进一步的,该根节点数据处理装置还可以包括:
[0138] 一致性校验单元,用于在将待存储根节点数据存储至磁盘的预设存储空间之后,控制磁盘通过CRC和Magic Number机制对下发的待存储根节点数据与磁盘上实际存储的根节点数据进行一致性校验;;其中,CRC和Magic Number与待存储根节点数据一并存储在预设存储空间
[0139] 重新下发请求返回单元,用于当一致性校验未通过时,控制磁盘返回重新下发根节点数据的请求。
[0140] 进一步的,该根节点数据处理装置还可以包括:
[0141] 掉线控制器请求接收单元,用于在双控制器集群中,当另一控制器掉线时,接收下发给另一控制器的请求;
[0142] 请求接管处理单元,用于通过存储于磁盘中的对应于另一控制器的根节点数据完成对请求的处理;其中,每个控制器对应的存储根节点数据的磁盘中同时存储有本控制器和另一控制器的根节点数据。
[0143] 更进一步的,该根节点数据处理装置还可以包括:
[0144] 起始地址更换单元,用于在保持预设存储空间的大小的基础上,按周期更换预设存储空间的起始地址。
[0145] 本实施例作为对应于上述方法实施例的装置实施例,具有方法实施例的全部有益效果,此处不再一一赘述。
[0146] 基于上述实施例,本申请还提供了一种电子设备,该电子设备可以包括存储器和处理器,其中,该存储器中存有计算机程序,该处理器调用该存储器中的计算机程序时,可以实现上述实施例所提供的根节点数据处理方法的各步骤。当然,该电子设备还可以包括各种必要的网络接口、电源以及其它零部件等。该电子设备可具体为某种型号的控制器,或类似的控制设备。
[0147] 本申请还提供了一种可读存储介质,其上存有计算机程序,该计算机程序被执行终端或处理器执行时可以实现上述实施例所提供的根节点数据处理方法的各步骤。该存储介质可以包括:U盘、移动硬盘只读存储器(Read-Only Memory,ROM)、随机存取存储器(Random Access Memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
[0148] 说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。
[0149] 专业人员还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
[0150] 本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其核心思想。对于本技术领域的普通技术人员来说,在不脱离本申请原理的前提下,还可以对本申请进行若干改进和修饰,这些改进和修饰也落入本申请权利要求的保护范围内。
[0151] 还需要说明的是,在本说明书中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其它变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其它要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括要素的过程、方法、物品或者设备中还存在另外的相同要素。
高效检索全球专利

专利汇是专利免费检索,专利查询,专利分析-国家发明专利查询检索分析平台,是提供专利分析,专利查询,专利检索等数据服务功能的知识产权数据服务商。

我们的产品包含105个国家的1.26亿组数据,免费查、免费专利分析。

申请试用

分析报告

专利汇分析报告产品可以对行业情报数据进行梳理分析,涉及维度包括行业专利基本状况分析、地域分析、技术分析、发明人分析、申请人分析、专利权人分析、失效分析、核心专利分析、法律分析、研发重点分析、企业专利处境分析、技术处境分析、专利寿命分析、企业定位分析、引证分析等超过60个分析角度,系统通过AI智能系统对图表进行解读,只需1分钟,一键生成行业专利分析报告。

申请试用

QQ群二维码
意见反馈