一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

存储容量校正方法、装置、计算机设备以及存储介质与流程

2022-02-22 09:07:19 来源:中国专利 TAG:


1.本发明涉及计算机技术领域,具体涉及一种存储容量校正方法、装置、计算机设备以及存储介质。


背景技术:

2.在计算机存储技术中,通常采用元数据对存储的数据进行相应的管理。其中,元数据,又称中介数据、中继数据,为描述数据的数据,主要是描述数据属性的信息,用来支持如指示存储位置、历史数据、资源查找、文件记录等功能。元数据算是一种电子式目录,为了达到编制目录的目的,必须在描述并收藏数据的内容或特色,进而达成协助数据检索的目的。
3.元数据在存储过程中,可能会发生局部损坏。元数据局部损坏是指系统元数据管理模块在读盘中可能会因存储介质存在坏块等原因,导致根据元数据读取存储空间中局部数据错误。当元数据发生损坏之后,此时需要通过元数据局部修复功能来重新修复元数据的局部错误。元数据局部修复完成之后,可能会造成系统统计的存储容量信息不准确,容量信息不准确可能会触发容量告警误报等问题。
4.因此,如何对系统的存储容量进行校正,成为了至关重要的问题。


技术实现要素:

5.有鉴于此,本发明实施例提供了一种存储容量校正方法、装置、计算机设备以及存储介质,以解决如何对系统的存储容量进行校正的问题。
6.根据第一方面,本发明实施例提供了一种存储容量校正方法,该方法包括:确定出现局部错误的存储空间和对应的标识信息,并将出现局部错误的存储空间的地址标记为无效;根据标识信息重构第一结构树,第一结构树对应出现局部错误的存储空间;统计第一结构树对应的第一存储容量;获取系统当前对应的总存储容量;利用总存储容量以及第一存储容量,对系统的存储容量进行校正,得到校正后的系统存储容量。
7.在本技术实施例中,计算机设备确定出现局部错误的存储空间和对应的标识信息,然后根据标识信息重构第一结构树。由于计算机设备重构的第一结构树与出现局部错误的存储空间内发生局部损失的元数据相对应,因此,计算机设备通过重构第一结构树,实现对局部损失的元数据进行修复。由于局部错误的存储空间的存储容量无法计算,但是可以通过计算第一结构树的第一容量间接计算出现局部错误的存储空间的存储容量。因此,计算机设备对第一结构树的第一容量进行计算,并获取系统当前对应的总存储容量。计算机设备利用总存储容量以及第一存储容量,对系统的存储容量进行校正,得到校正后的系统存储容量。上述方法,不仅实现了对损坏的元数据进行修改,并对元数据修复后系统的存储容量进行校正,从而保证校正后的存储容量的准确性,进一步避免由于存储容量不准确导致触发的容量告警误报问题。
8.结合第一方面,在第一方面第一实施方式中,根据标识信息重新重构第一结构树,包括:基于标识信息确定出现局部错误的存储空间对应的损坏后的元数据;确定损坏后的
元数据对应的第二结构树,基于第二结构树构建第一结构树,其中,第二结构树与第一结构树的树结构类型相反。
9.在本实施例中,计算机设备基于标识信息确定出现局部错误的存储空间对应的损坏后的元数据,然后计算机设备确定损坏后的元数据对应的第二结构树,基于第二结构树构建第一结构树。由于第二结构树与第一结构树的树结构类型相反,因此,计算机设备基于第二结构数据重建的第一结构树准确性较高,进而可以保证计算得到的第一结构数据的第一存储容量准确,有利于保证校正后的系统存储容量的准确性。
10.结合第一方面,在第一方面第二实施方式中,标识信息包括存储空间id、第二结构树类型和第二结构树id。
11.在本实施例中,标识信息包括存储空间id、第二结构树类型和第二结构树id,从而使得可以根据标识信息构建第一结构树,进一步保证构建的第一结构树的准确性。
12.结合第一方面,在第一方面第三实施方式中,获取系统当前对应的总存储容量,包括:依次遍历当前存储空间内所有的结构树,统计每颗结构树的各第一叶子节点对应的第一键值对的数量以及各第一键值对对应的数据容量,计算当前存储空间的总存储容量。
13.在本实施例中,计算机设备依次遍历当前存储空间内所有的结构树,保证不会因为遗漏结构树造成的总存储容量出现错误。然后,计算机设备统计每颗结构树的各第一叶子节点对应的第一键值对的数量以及各第一键值对对应的数据容量,计算每颗结构树的存储容量,从而可以保证计算得到的每颗结构树的存储容量的准确性。进一步保证根据各结构树的存储容量计算得到当前存储空间的总存储容量的准确性,从而避免因为系统当前存储空间的总存储容量计算不准确而触发容量告警误报的问题。
14.结合第一方面,在第一方面第四实施方式中,利用总存储容量以及第一存储容量,对系统的存储容量进行校正,得到校正后的系统存储容量,包括:利用总存储容量减去第一存储容量,得到校正后的系统存储容量。
15.在本实施例中,由于当前系统的总存储容量中对出现局部错误的存储空间对应的存储容量进行了两次,且由于计算机设备不能直接计算出现局部错误的存储容量对应的存储容量。然而,计算机设备通过计算第一结构树的第一存储容量计算得到出现局部错误的存储容量对应的存储容量,因此,计算机设备利用总存储容量减去第一存储容量,得到校正后的系统存储容量。可以保证校正后的系统存储容量的准确性,进而避免由于系统的存储容量不准确导致触发的容量告警误报问题结合第一方面,在第一方面第五实施方式中,统计第一结构树对应的第一存储容量,包括:计算第一结构树的各第二叶子节点对应的第二键值对的数量以及各第二键值对对应的数据容量;根据各第二叶子节点对应的第二键值对的数量以及各第二键值对对应的数据容量,计算第一存储容量。
16.在本实施例中,计算机设备计算第一结构树的各第二叶子节点对应的第二键值对的数量以及各第二键值对对应的数据容量,并根据各第二叶子节点对应的第二键值对的数量以及各第二键值对对应的数据容量,计算第一存储容量。从而可以保证计算得到的第一结构树的第一存储容量的准确性。
17.结合第一方面第五实施方式,在第一方面第六实施方式中,根据各第二叶子节点对应的第二键值对的数量以及各第二键值对对应的数据容量,计算第一存储容量,包括:将各第二键值对对应的数据容量进行相加,得到各第二叶子节点对应的数据容量;将各第二
叶子节点对应的数据容量进行相加,得到第一存储容量。
18.在本实施例中,计算机设备将各第二键值对对应的数据容量进行相加,得到各第二叶子节点对应的数据容量,可以保证计算得到的各叶子节点对应的数据容量的准确性。计算机设备将各第二叶子节点对应的数据容量进行相加,得到第一存储容量,可以保证计算得到的第一存储容量的准确性。
19.根据第二方面,本发明实施例提供了一种存储容量校正装置,装置包括:
20.确定模块,用于确定出现局部错误的存储空间和对应的标识信息,并将出现局部错误的存储空间的地址标记为无效;
21.重构模块,用于根据标识信息重构第一结构树,第一结构树对应出现局部错误的存储空间;
22.统计模块,用于统计第一结构树对应的第一存储容量;
23.获取模块,用于获取系统当前对应的总存储容量;
24.校正模块,用于利用总存储容量以及第一存储容量,对系统的存储容量进行校正,得到校正后的系统存储容量。
25.结合第二方面,在第二方面第一实施方式中,上述重构模块,具体用于基于标识信息确定出现局部错误的存储空间对应的损坏后的元数据;确定损坏后的元数据对应的第二结构树,基于第二结构树构建第一结构树,其中,第二结构树与第一结构树的树结构类型相反。
26.结合第二方面,在第二方面第二实施方式中,标识信息包括存储空间id、第二结构树类型和第二结构树id。
27.结合第二方面,在第二方面第三实施方式中,上述获取模块,具体用于依次遍历当前存储空间内所有的结构树,统计每颗结构树的各第一叶子节点对应的第一键值对的数量以及各第一键值对对应的数据容量,计算当前存储空间的总存储容量。
28.结合第二方面,在第二方面第四实施方式中,上述校正模块,具体用于利用总存储容量减去第一存储容量,得到校正后的系统存储容量。
29.结合第二方面,在第二方面第五实施方式中,上述统计模块,包括:
30.第一计算单元,用于计算第一结构树的各第二叶子节点对应的第二键值对的数量以及各第二键值对对应的数据容量;
31.第二计算单元,用于根据各第二叶子节点对应的第二键值对的数量以及各第二键值对对应的数据容量,计算第一存储容量。
32.结合第二方面第五实施方式,在第二方面第六实施方式中,上述第二计算单元,具体用于将各第二键值对对应的数据容量进行相加,得到各第二叶子节点对应的数据容量;将各第二叶子节点对应的数据容量进行相加,得到第一存储容量。
33.根据第三方面,本发明实施例提供了一种计算机设备,包括:存储器和处理器,存储器和处理器之间互相通信连接,存储器中存储有计算机指令,处理器通过执行计算机指令,从而执行第一方面或者第一方面的任意一种实施方式中的存储容量校正方法。
34.根据第四方面,本发明实施例提供了一种计算机可读存储介质,计算机可读存储介质存储计算机指令,计算机指令用于使计算机执行第一方面或者第一方面的任意一种实施方式中的存储容量校正方法。
35.根据第五方面,本发明实施例提供了一种计算机程序产品,计算机程序产品包括存储在计算机可读存储介质上的计算机程序,计算机程序包括程序指令,当程序指令被计算机执行时,使计算机执行第一方面或者第一方面的任意一种实施方式中的存储容量校正方法。
附图说明
36.通过参考附图会更加清楚的理解本发明的特征和优点,附图是示意性的而不应理解为对本发明进行任何限制,在附图中:
37.图1示出了一个实施例中存储容量校正方法的步骤流程图;
38.图2示出了一个实施例中存储容量校正方法的步骤流程图;
39.图3示出了一个实施例中存储容量校正方法的步骤流程图;
40.图4示出了一个实施例中存储容量校正方法的步骤流程图;
41.图5示出了一个实施例中存储容量校正方法的步骤流程图;
42.图6示出了一个实施例中存储容量校正装置的结构框图;
43.图7示出了一个实施例中存储容量校正装置的结构框图;
44.图8示出了一个实施例计算机设备为服务器时的内部结构图;
45.图9示出了一个实施例计算机设备为终端时的内部结构图。
具体实施方式
46.为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
47.在计算机存储技术中,通常采用元数据对存储的数据进行相应的管理。主要是描述数据属性的信息,用来支持如指示存储位置、历史数据、资源查找、文件记录等功能。
48.元数据在存储过程中,可能会发生局部损坏。元数据局部损坏是指系统元数据管理模块在读盘中可能会因存储介质存在坏块等原因,导致根据元数据读取存储空间中的局部数据错误,出现该局部错误时会触发系统的池和卷离线,此时需要通过元数据局部修复功能来重新修复局部错误。
49.当前系统池和卷的容量统计是按照页粒度来统计,每个页中包含512棵树,在元数据局部修复过程中首先会把损坏的元数据对应的结构树的根地址置为无效,也就是说将出现局部错误的存储空间的地址设置为无效,然后再通过配对修复来重新生成一棵与原来损坏的结构树对应的新的结构树,由于把损坏的结构树的根地址置为无效,因此,计算机设备无法完整遍历该结构树,也就是说计算机设备无法统计出现局部错误的存储空间的存储容量。所以,此时计算机设备无法正确统计该损坏的结构树的容量,但是通过重新配对修复来重新生成一棵新的结构树时,计算机设备会重新统计该新的结构树的容量,这样在局部修复完成后可能会导致系统的池和卷容量信息不准确,容量信息不准确可能会触发容量告警误报问题。
50.因此,基于上述问题,本技术实施例提供了一种存储容量校正方法,能够对元数据
修复后的系统的存储容量进行校正,从而避免因为容量信息不准确而导致触发容量告警误报的问题。
51.需要说明的是,本技术实施例提供的存储容量校正的方法,其执行主体可以是存储容量校正的装置,该存储容量校正的装置可以通过软件、硬件或者软硬件结合的方式实现成为计算机设备的部分或者全部,其中,该计算机设备可以是服务器或者终端,其中,本技术实施例中的服务器可以为一台服务器,也可以为由多台服务器组成的服务器集群,本技术实施例中的终端可以是智能手机、个人电脑、平板电脑、可穿戴设备以及智能机器人等其他智能硬件设备。下述方法实施例中,均以执行主体是计算机设备为例来进行说明。
52.在本技术一个实施里中,如图1所示,提供了一种存储容量校正方法,以该方法应用于计算机设备为例进行说明,包括以下步骤:
53.步骤101,确定出现局部错误的存储空间和对应的标识信息,并将出现局部错误的存储空间的地址标记为无效。
54.其中,标识信息包括存储空间id、第二结构树类型和第二结构树id。
55.此处的结构树是指树型存储结构,是存储领域的一种常见结构,树是指由结点或顶点和边组成的且不存在着任何环的一种数据结构。第二结构树的类型可以是常见的平衡二叉树、b树、b 树或者b-树等树结构中的一种,第二结构树id是用于表示该存储空间如当前存储卷的标识信息。
56.具体地,计算机设备可以根据元数据对存储空间内的数据进行读写,在对某些数据读写不成功的情况,计算机设备可以确定当前正在读写的数据对应的存储空间可能发生异常。计算机设备可以根据当前正在读写的数据,确定出现错误的存储空间。
57.在确定出现局部错误的存储空间之后,计算机设备可确定出现局部错误的存储空间对应的存储空间id,其中,存储空间id可以包括存储空间中的存储池id、存储卷id。计算机设备可以根据存储空间id确定出现局部错误的存储空间对应的第二结构树,并确定第二结构树类型和第二结构树id等信息。其中,第二结构数据可以用来对出现局部错误的存储空间对应的损坏的元数据进行修复。
58.由于存储空间已经出现局部错误,且出现局部错误的存储空间的数据已经不能进行读写,因此,计算机设备已经无法在局部错误的存储空间中查找到需要的数据。因此,计算机设备可以将出现局部错误的存储空间的地址标记为无效。
59.一种可选的实施方式中,计算机设备可以将出现局部错误的存储空间的地址进行隐藏,从而将出现局部错误的存储空间的地址标记为无效。
60.另一种可选的实施方式中,计算机设备可以将局部错误的存储空间的地址添加特定的标识信息,例如“无效”等标识信息,从而可以将出现局部错误的存储空间的地址标记为无效。
61.另一种可选的实施方式中,计算机设备可以将局部错误的存储空间对应的元数据构建的结构树的根地址设置为无效,使得计算机设备不能根据局部错误的存储空间对应的元数据访问到局部错误的存储空间。
62.步骤102,根据标识信息重构第一结构树。
63.其中,第一结构树对应出现局部错误的存储空间。可选的,第一结构树可以是b 树,b 树是一种树数据结构,是一个n叉树,每个节点通常有多个孩子,一棵b 树包含根节
点、中间节点和叶子节点。b 树通常用于数据库和操作系统的文件系统中。b 树的特点是能够保持数据稳定有序,其插入与修改拥有较稳定的对数时间复杂度。
64.具体地,在确定了出现局部错误的存储空间以及对应的标识信息之后,计算机设备可以根据标识信息确定当前失效的元数据,然后根据当前失效的元数据重构第一结构树。
65.步骤103,统计第一结构树对应的第一存储容量。
66.具体地,计算机设备在重构第一结构树之后,可以根据第一结构的叶子节点计算第一结构树对应的第一存储容量。
67.步骤104,获取系统当前对应的总存储容量。
68.一种可选的实施方式中,在重构完第一结构树之后,计算机设备可以对系统当前存储的所有结构树进行统计,从而计算得到系统当前对应的总存储容量。
69.另一种可选的实施方式中,在重构完第一结构树,并计算得到第一结构树对应的第一存储容量之后,计算机设备可以获取系统在重构第一结构树之前的历史存储容量,然后计算机设备将获取到的历史存储容量与计算得到的第一存储容量相加,得到系统当前对应的总存储容量。
70.步骤105,利用总存储容量以及第一存储容量,对系统的存储容量进行校正,得到校正后的系统存储容量。
71.具体地,由于在步骤101中,计算机设备将出现局部错误的存储空间的地址标记为无效。因此,计算机设备无法判断出现局部错误的存储空间内的存储容量,因此,计算机设备计算得到的总存储容量可能存在错误。
72.然而,第一结构树是基于出现局部错误的存储空间生成的,由此可知,第一结构树对应的第一存储容量与出现局部错误的存储空间对应的存储容量相同。
73.因此,计算机设备可以利用总存储容量以及第一存储容量,对系统的存储容量进行校正,从而得到校正后的系统存储容量。
74.在本技术实施例中,计算机设备确定出现局部错误的存储空间和对应的标识信息,然后根据标识信息重构第一结构树。由于计算机设备重构的第一结构树与出现局部错误的存储空间内发生局部损失的元数据相对应,因此,计算机设备通过重构第一结构树,实现对局部损失的元数据进行修复。由于局部错误的存储空间的存储容量无法计算,但是可以通过计算第一结构树的第一容量间接计算出现局部错误的存储空间的存储容量。因此,计算机设备对第一结构树的第一容量进行计算,并获取系统当前对应的总存储容量。计算机设备利用总存储容量以及第一存储容量,对系统的存储容量进行校正,得到校正后的系统存储容量。上述方法,不仅实现了对损坏的元数据进行修改,并对元数据修复后系统的存储容量进行校正,从而保证校正后的系统的存储容量的准确性,进一步避免由于存储容量不准确导致触发的容量告警误报问题。
75.在本技术一个可选的实施例中,如图2所示,上述步骤102中的“根据标识信息重新重构第一结构树”,可以包括以下步骤:
76.步骤201,基于标识信息确定出现局部错误的存储空间对应的损坏后的元数据。
77.其中,标识信息包括存储空间id、第二结构树类型和第二结构树id。
78.具体地,计算机设备基于标识信息可以确定出现局部错误的存储空间对应的损坏
后的元数据。
79.步骤202,确定损坏后的元数据对应的第二结构树,基于第二结构树构建第一结构树。
80.其中,第二结构树与第一结构树的树结构类型相反。
81.在一种可选的实施方式中,当第一结构树是lp树时,那么,第二结构树可以是pl树;当第一结构树是pl树,那么,第二结构树可以是lp树。其中,lp(lba-pba)树记录的是lba(logical block address,逻辑区块地址)到pba(physics block address,物理区块地址)的映射,其中的键值信息就是lba为key值,pba为value值。相应的,pl(pba-lba)树记录的是pba到lba的映射,其中的键值信息就是pba为key值,lba为value值。hp树记录的就是哈希值到pba的映射。
82.具体地,计算机设备可以将全部的第一结构树和全部的第二结构树进行对比,当某一棵或者多棵第二结构数据与第一结构树无法对应的情况下,计算机设备确定这一棵或者多棵第二结构树对应损坏后的元数据。
83.计算机设备对一棵或者多棵第二结构树进行遍历获取到所有对应的叶子节点的键值信息,然后根据所有的键值信息构建出对应的第一结构树,也就是将该键值信息作为重建树中的键值数据进行构建,最后得到构建的第一结构树。
84.在图1实施例的基础上,在本实施例中,计算机设备基于标识信息确定出现局部错误的存储空间对应的损坏后的元数据,然后计算机设备确定损坏后的元数据对应的第二结构树,基于第二结构树构建第一结构树。由于第二结构树与第一结构树的树结构类型相反,因此,计算机设备基于第二结构数据重建的第一结构树准确性较高,进而可以保证计算得到的第一结构数据的第一存储容量准确,有利于保证校正后的系统存储容量的准确性。
85.在本技术一个可选的实施例中,上述步骤104中的“获取系统当前对应的总存储容量”,可以包括以下内容:
86.依次遍历当前存储空间内所有的结构树,统计每颗结构树的各第一叶子节点对应的第一键值对的数量以及各第一键值对对应的数据容量,计算当前存储空间的总存储容量。
87.一种可选的实现方式中,计算机设备重构第一结构树之后,可以先统计第一结构树对应的第一存储容量,然后再获取系统当前对应的总存储容量。
88.另一种可选的实现方式中,计算机设备重构第一结构树之后,可以先获取系统当前对应的总存储容量,然后再统计第一结构树对应的第一存储容量。本技术实施例对计算机设备获取第一存储容量和总存储容量的顺序不做具体限定。
89.具体地,当前系统池和卷的容量统计是按照页粒度来统计,每个页中包含512棵结构树。在获取系统当前总存储容量时,计算机设备可以依次遍历每页中的全部结构树,计算每颗结构树的每个第一叶子节点对应的第一键值对的数量以及各第一键值对对应的数据容量。计算机设备可以根据各结构树的每个第一叶子节点对应的键值对的数量以及各第一键值对对应的数据容量,计算每页中的每一颗结构树对应的存储容量。然后计算机设备将每页中512棵结构树对应的存储容量进行相加,得到各页对应的存储容量,然后再计算系统池和卷的存储容量,最终计算得到系统当前对应的总存储容量。
90.在本实施例中,计算机设备依次遍历当前存储空间内所有的结构树,保证不会因
为遗漏结构树造成的总存储容量出现错误。然后,计算机设备统计每颗结构树的各第一叶子节点对应的第一键值对的数量以及各第一键值对对应的数据容量,计算每颗结构树的存储容量,从而可以保证计算得到的每颗结构树的存储容量的准确性。进一步保证根据各结构树的存储容量计算得到当前存储空间的总存储容量的准确性,从而避免因为系统当前存储空间的总存储容量计算不准确而触发容量告警误报的问题。
91.在本技术一个可选的实施例中,上述步骤105中的“利用总存储容量以及第一存储容量,对系统的存储容量进行校正,得到校正后的系统存储容量”,可以包括以下内容:
92.利用总存储容量减去第一存储容量,得到校正后的系统存储容量。
93.具体地,由于第一结构树是基于出现局部错误的存储空间生成的,由此可知,第一结构树对应的第一存储容量与出现局部错误的存储空间对应的存储容量相同。
94.然而,计算机设备在构建第一结构树之前,已经计算过出现局部错误的存储空间对应的存储容量,而构建完第一结构树是对出现局部错误的存储空间对应的元数据进行修复。在完成修复之后,计算机设备又对重新构建的第一结构树对应的第一存储容量进行了计算,也就是说,计算机设备对出现局部错误的存储空间对应的存储容量进行两次计算。
95.因此,计算机设备需要利用当前系统的总存储容量减去第一结构树对应的第一存储容量,从而得到当前系统准确地总存储容量,完成对系统的存储容量的校正。
96.在本实施例中,由于当前系统的总存储容量中对出现局部错误的存储空间对应的存储容量进行了两次计算,且由于计算机设备不能直接计算出现局部错误的存储容量对应的存储容量,但是,计算机设备可以通过计算第一结构树的第一存储容量计算得到出现局部错误的存储容量对应的存储容量。因此,计算机设备利用总存储容量减去第一存储容量,得到校正后的系统存储容量。可以保证校正后的系统存储容量的准确性,进而避免由于系统的存储容量不准确导致触发的容量告警误报问题。
97.在本技术一个可选的实施例中,如图3所示,上述步骤103中的“统计第一结构树对应的第一存储容量”,可以包括以下步骤:
98.步骤301,计算第一结构树的各第二叶子节点对应的第二键值对的数量以及各第二键值对对应的数据容量。
99.具体地,计算机设备可以对第一结构树的第二叶子节点进行统计,然后计算每个第二叶子节点上对应的第二键值对的数量,并统计每一个第二键值对对应的数据容量。
100.步骤302,根据各第二叶子节点对应的第二键值对的数量以及各第二键值对对应的数据容量,计算第一存储容量。
101.具体地,计算机设备可以将各第二叶子节点对应的第二键值对的数量以及各第二键值对对应的数据容量输入至预设的算法,输出第一存储容量。其中,预设的算法可以是加、减、乘、除、平方、开方以及立方等数学算法组合生成的,也可以是基于深度学习网络训练得到的,本技术实施例对预设的算法不做具体限定。
102.在本实施例中,计算机设备计算第一结构树的各第二叶子节点对应的第二键值对的数量以及各第二键值对对应的数据容量,并根据各第二叶子节点对应的第二键值对的数量以及各第二键值对对应的数据容量,计算第一存储容量。从而可以保证计算得到的第一结构树的第一存储容量的准确性。
103.在本技术一个可选的实施例中,如图4所示,上述步骤302中的“根据各第二叶子节
点对应的第二键值对的数量以及各第二键值对对应的数据容量,计算第一存储容量”,可以包括以下步骤:
104.步骤401,将各第二键值对对应的数据容量进行相加,得到各第二叶子节点对应的数据容量。
105.具体地,计算机设备将同一第二叶子节点对应的第二键值对的数据容量进行相加,得到各第二叶子节点对应的数据容量。
106.示例性的,第一个第二叶子节点对应的第二键值对的数据为5个,其中,第一个第二键值对的数据容量为23k,第二个第二键值对的数据容量为35k,第三个第二键值对的数据容量为15,第四个第二键值对的数据容量为67k,第五个第二键值对的数据容量为103k,计算机设备将5个第二键值对对应的数据容量进行相加,得到第一个第二叶子节点对应的数据容量为243k。
107.步骤402,将各第二叶子节点对应的数据容量进行相加,得到第一存储容量。
108.具体地,计算机设备在计算得到第一结构树上各第二叶子节点对应的数据容量之后,计算机设备将各第二叶子节点对应的数据容量进行相加,得到第一结构树对应的第一容量。
109.示例性的,第一结构树有三个第二叶子节点,其中,第一个第二叶子节点对应的数据容量为243k,第二个第二叶子节点对应的数据容量为362k,第三个第二叶子节点对应的数据容量为229k,计算机设备将三个第二叶子节点对应的数据容量进行相加,得到第一结构树对应的第一容量为834k。
110.在本实施例中,计算机设备将各第二键值对对应的数据容量进行相加,得到各第二叶子节点对应的数据容量,可以保证计算得到的各第二叶子节点对应的数据容量的准确性。计算机设备将各第二叶子节点对应的数据容量进行相加,得到第一存储容量,可以保证计算得到的第一存储容量的准确性。
111.为了更好的说明本技术实施例提供的存储容量校正方法,如图5所示,本技术实施例提供了一种存储容量校正方法的整体流程图,具体包括以下步骤:
112.步骤501,确定出现局部错误的存储空间和对应的标识信息,并将出现局部错误的存储空间的地址标记为无效。
113.步骤502,基于标识信息确定出现局部错误的存储空间对应的损坏后的元数据。
114.步骤503,确定损坏后的元数据对应的第二结构树,基于第二结构树构建第一结构树。
115.步骤504,计算第一结构树的各第二叶子节点对应的第二键值对的数量以及各第二键值对对应的数据容量。
116.步骤505,将各第二键值对对应的数据容量进行相加,得到各第二叶子节点对应的数据容量。
117.步骤506,将各第二叶子节点对应的数据容量进行相加,得到第一存储容量。
118.步骤507,依次遍历当前存储空间内所有的结构树,统计每颗结构树的各第一叶子节点对应的第一键值对的数量以及各第一键值对对应的数据容量,计算当前存储空间的总存储容量。
119.步骤508,利用总存储容量减去第一存储容量,得到校正后的系统存储容量。
120.应该理解的是,虽然图1-5的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,图1-5中的至少一部分步骤可以包括多个步骤或者多个阶段,这些步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤中的步骤或者阶段的至少一部分轮流或者交替地执行。
121.相应地,请参考图6,本发明实施例提供一种存储容量校正装置600,该存储容量校正装置600,包括:确定模块610、重构模块620、统计模块630、获取模块640以及校正模块650,其中:
122.确定模块610,用于确定出现局部错误的存储空间和对应的标识信息,并将出现局部错误的存储空间的地址标记为无效;
123.重构模块620,用于根据标识信息重构第一结构树,第一结构树对应出现局部错误的存储空间;
124.统计模块630,用于统计第一结构树对应的第一存储容量;
125.获取模块640,用于获取系统当前对应的总存储容量;
126.校正模块650,用于利用总存储容量以及第一存储容量,对系统的存储容量进行校正,得到校正后的系统存储容量。
127.在本技术一个实施例中,上述重构模块620,具体用于基于标识信息确定出现局部错误的存储空间对应的损坏后的元数据;确定损坏后的元数据对应的第二结构树,基于第二结构树构建第一结构树,其中,第二结构树与第一结构树的树结构类型相反。
128.在本技术一个实施例中,标识信息包括存储空间id、第二结构树类型和第二结构树id。
129.在本技术一个实施例中,上述获取模块640,具体用于依次遍历当前存储空间内所有的结构树,统计每颗结构树的各第一叶子节点对应的第一键值对的数量以及各第一键值对对应的数据容量,计算当前存储空间的总存储容量。
130.在本技术一个实施例中,上述校正模块650,具体用于利用总存储容量减去第一存储容量,得到校正后的系统存储容量。
131.在本技术一个实施例中,如图7所示,上述统计模块630,包括:第一计算单元631和第二计算单元632,其中:
132.第一计算单元631,用于计算第一结构树的各第二叶子节点对应的第二键值对的数量以及各第二键值对对应的数据容量;
133.第二计算单元632,用于根据各第二叶子节点对应的第二键值对的数量以及各第二键值对对应的数据容量,计算第一存储容量。
134.在本技术一个实施例中,上述第二计算单元632,具体用于将各第二键值对对应的数据容量进行相加,得到各第二叶子节点对应的数据容量;将各第二叶子节点对应的数据容量进行相加,得到第一存储容量。
135.关于存储容量校正装置的具体限定以及有益效果可以参见上文中对于存储容量校正方法的限定,在此不再赘述。上述存储容量校正装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处
理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
136.在一个实施例中,提供了一种计算机设备,该计算机设备可以是终端,其内部结构图可以如图8所示。该计算机设备包括通过系统总线连接的处理器、存储器、通信接口、显示屏和输入装置。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统和计算机程序。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的通信接口用于与外部的终端进行有线或无线方式的通信,无线方式可通过wifi、运营商网络、nfc(近场通信)或其他技术实现。该计算机程序被处理器执行时以实现一种存储容量校正方法。该计算机设备的显示屏可以是液晶显示屏或者电子墨水显示屏,该计算机设备的输入装置可以是显示屏上覆盖的触摸层,也可以是计算机设备外壳上设置的按键、轨迹球或触控板,还可以是外接的键盘、触控板或鼠标等。
137.本领域技术人员可以理解,图8中示出的结构,仅仅是与本技术方案相关的部分结构的框图,并不构成对本技术方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
138.在一个实施例中,提供了一种计算机设备,该计算机设备可以是服务器,其内部结构图可以如图9所示。该计算机设备包括通过系统总线连接的处理器、存储器和网络接口。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统、计算机程序和数据库。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的数据库用于存储模型量化数据。该计算机设备的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现一种存储容量校正方法。
139.本领域技术人员可以理解,图9中示出的结构,仅仅是与本技术方案相关的部分结构的框图,并不构成对本技术方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
140.在本技术一个实施例中,提供了一种计算机设备,包括存储器和处理器,存储器中存储有计算机程序,该处理器执行计算机程序时实现以下步骤:确定出现局部错误的存储空间和对应的标识信息,并将出现局部错误的存储空间的地址标记为无效;根据标识信息重构第一结构树,第一结构树对应出现局部错误的存储空间;统计第一结构树对应的第一存储容量;获取系统当前对应的总存储容量;利用总存储容量以及第一存储容量,对系统的存储容量进行校正,得到校正后的系统存储容量。
141.在本技术一个实施例中,处理器执行计算机程序时还实现以下步骤:基于标识信息确定出现局部错误的存储空间对应的损坏后的元数据;确定损坏后的元数据对应的第二结构树,基于第二结构树构建第一结构树,其中,第二结构树与第一结构树的树结构类型相反。
142.在本技术一个实施例中,处理器执行计算机程序时还实现以下步骤:标识信息包括存储空间id、第二结构树类型和第二结构树id。
143.在本技术一个实施例中,处理器执行计算机程序时还实现以下步骤:依次遍历当前存储空间内所有的结构树,统计每颗结构树的各第一叶子节点对应的第一键值对的数量
以及各第一键值对对应的数据容量,计算当前存储空间的总存储容量。
144.在本技术一个实施例中,处理器执行计算机程序时还实现以下步骤:利用总存储容量减去第一存储容量,得到校正后的系统存储容量。
145.在本技术一个实施例中,处理器执行计算机程序时还实现以下步骤:
146.计算第一结构树的各第二叶子节点对应的第二键值对的数量以及各第二键值对对应的数据容量;根据各第二叶子节点对应的第二键值对的数量以及各第二键值对对应的数据容量,计算第一存储容量。
147.在本技术一个实施例中,处理器执行计算机程序时还实现以下步骤:将各第二键值对对应的数据容量进行相加,得到各第二叶子节点对应的数据容量;将各第二叶子节点对应的数据容量进行相加,得到第一存储容量。
148.在本技术一个实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现以下步骤:确定出现局部错误的存储空间和对应的标识信息,并将出现局部错误的存储空间的地址标记为无效;根据标识信息重构第一结构树,第一结构树对应出现局部错误的存储空间;统计第一结构树对应的第一存储容量;获取系统当前对应的总存储容量;利用总存储容量以及第一存储容量,对系统的存储容量进行校正,得到校正后的系统存储容量。
149.在本技术一个实施例中,计算机程序被处理器执行时还实现以下步骤:基于标识信息确定出现局部错误的存储空间对应的损坏后的元数据;确定损坏后的元数据对应的第二结构树,基于第二结构树构建第一结构树,其中,第二结构树与第一结构树的树结构类型相反。
150.在本技术一个实施例中,计算机程序被处理器执行时还实现以下步骤:标识信息包括存储空间id、第二结构树类型和第二结构树id。
151.在本技术一个实施例中,计算机程序被处理器执行时还实现以下步骤:依次遍历当前存储空间内所有的结构树,统计每颗结构树的各第一叶子节点对应的第一键值对的数量以及各第一键值对对应的数据容量,计算当前存储空间的总存储容量。
152.在本技术一个实施例中,计算机程序被处理器执行时还实现以下步骤:利用总存储容量减去第一存储容量,得到校正后的系统存储容量。
153.在本技术一个实施例中,计算机程序被处理器执行时还实现以下步骤:
154.计算第一结构树的各第二叶子节点对应的第二键值对的数量以及各第二键值对对应的数据容量;根据各第二叶子节点对应的第二键值对的数量以及各第二键值对对应的数据容量,计算第一存储容量。
155.在本技术一个实施例中,计算机程序被处理器执行时还实现以下步骤:将各第二键值对对应的数据容量进行相加,得到各第二叶子节点对应的数据容量;将各第二叶子节点对应的数据容量进行相加,得到第一存储容量。
156.本领域技术人员可以理解,实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,所述存储介质可为磁碟、光盘、只读存储记忆体(read-only memory,rom)、随机存储记忆体(random access memory,ram)、快闪存储器(flash memory)、硬盘(hard disk drive,缩写:hdd)或固态硬盘
(solid-state drive,ssd)等;所述存储介质还可以包括上述种类的存储器的组合。
157.虽然结合附图描述了本发明的实施例,但是本领域技术人员可以在不脱离本发明的精神和范围的情况下作出各种修改和变型,这样的修改和变型均落入由所附权利要求所限定的范围之内。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献