CN109284295B - 一种数据优化的方法及装置 - Google Patents
一种数据优化的方法及装置 Download PDFInfo
- Publication number
- CN109284295B CN109284295B CN201811209843.7A CN201811209843A CN109284295B CN 109284295 B CN109284295 B CN 109284295B CN 201811209843 A CN201811209843 A CN 201811209843A CN 109284295 B CN109284295 B CN 109284295B
- Authority
- CN
- China
- Prior art keywords
- node
- factor
- rate
- vacancy
- data
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 76
- 238000005457 optimization Methods 0.000 title claims abstract description 55
- 239000011800 void material Substances 0.000 claims description 2
- 238000004422 calculation algorithm Methods 0.000 abstract description 23
- 238000003780 insertion Methods 0.000 abstract description 7
- 230000037431 insertion Effects 0.000 abstract description 7
- 238000013500 data storage Methods 0.000 description 11
- 230000006870 function Effects 0.000 description 11
- 238000010586 diagram Methods 0.000 description 10
- 230000008569 process Effects 0.000 description 7
- 230000008901 benefit Effects 0.000 description 3
- 238000004364 calculation method Methods 0.000 description 3
- 230000008859 change Effects 0.000 description 3
- 238000004590 computer program Methods 0.000 description 3
- 230000008878 coupling Effects 0.000 description 3
- 238000010168 coupling process Methods 0.000 description 3
- 238000005859 coupling reaction Methods 0.000 description 3
- 230000003287 optical effect Effects 0.000 description 3
- 238000004891 communication Methods 0.000 description 2
- 238000013461 design Methods 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 230000006872 improvement Effects 0.000 description 2
- 238000011160 research Methods 0.000 description 2
- 238000013459 approach Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 239000000835 fiber Substances 0.000 description 1
- 238000012545 processing Methods 0.000 description 1
- 238000012827 research and development Methods 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
Images
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请实施例公开了一种数据优化的方法,采用***合并与负载均衡的算法,对达到阈值的子节点进行合并或负载均衡,当树的深度较大时,可以明显减少树的深度和子节点的数量,节省存储资源开支,提高存储效率。本申请实施例方法包括:计算第一节点的空置率以及第二节点的空置率,该第一节点与该第二节点相邻,该空置率为各节点中空白因子数量占总节点因子数量的比例;若该第一节点和该第二节点中至少一个节点的空置率达到第一阈值,则生成第三节点,该第三节点包含该第一节点与该第二节点的所有非空白因子。
Description
技术领域
本申请涉及计算机领域,具体涉及一种数据优化的方法及装置。
背景技术
在存储领域,海量数据查询和存储需要占用超大的资源,严重影响了数据存储的性能。为了降低存储数据占用的资源,提高数据存储性能,目前已经产生了各种成熟并且效果非常好的查询算法。
其中,最经典的属于B+Tree算法。现有的研究机构主要致力于研究如何采用提高硬件性能和优化算法两方面进行性能提升,单纯提高硬件性能并不能发挥最大效益,需结合恰当的优化算法实现性能提升。当做数据***时,B+Tree会优先拆分叶子节点(LeafPage),随着数据的增加,还会通过增加Tree的深度来扩大存储。
在数据量比较小的时候B+Tree算法还能满足性能要求。但是当应用于海量存储时,过多的Leaf Page和过深的Tree深度,会影响数据查询的效率,且需要占用过多的资源,影响数据存储的性能。
发明内容
本申请实施例提供了一种数据优化的方法,通过采用***合并的算法,对空置率达到阈值的Leaf Page进行合并,当树的深度较大时,可以明显减少树的深度和Leaf Page的数量,节省存储资源开支,提高存储效率。进一步的对相邻Leaf Page负载均衡可以平衡各Leaf Page内的节点,平均空置率,在后续因子添加时,减少拆分页操作,进一步提高了存储的性能。
为达到上述目的,本申请实施例提供如下技术方案:
本申请第一方面提供一种数据优化的方法,该方法可采用C语言算法描述,然后通过Java的C调用方法嵌入存储***,该数据优化的方法在执行过程中涉及到的数据优化装置在智能终端中对应相应的功能实体。该方法可以包括:计算第一节点的空置率以及第二节点的空置率,该第一节点与该第二节点相邻,该空置率为各节点中空白因子数量占总节点因子数量的比例;
若该第一节点和该第二节点中至少一个节点的空置率达到第一阈值,则生成第三节点,该第三节点包含该第一节点与该第二节点的所有非空白因子。
可选的,在本申请的一些实施例中,若该第一节点或该第二节点中至少一个节点的空置率达到第一阈值,则生成第三节点之后,该方法还包括:第一根节点因子更新为第二根节点因子,该第二根节点因子为该第三节点的最后一个非空白因子,该第一根节点因子为该第一节点和该第二节点的索引因子。
可选的,在本申请的一些实施例中,该第一根节点因子更新为第二根节点因子,包括:删除该第一根节点因子;添加该第三节点的最后一个非空白因子为该第二根节点因子。
可选的,在本申请的一些实施例中,若该第一节点和该第二节点中至少一个节点的空置率达到第一阈值,则生成第三节点之后,该方法还包括:计算该第三节点的不平衡率,该第三节点的不平衡率为该第三节点的空置率占该第三节点的空置率与第四节点的空置率之和的比率,该第三节点与该第四节点相邻,该第四节点的不平衡率未达到第二阈值;若该第三节点的不平衡率达到该第二阈值,则对该第三节点进行负载均衡。
可选的,在本申请的一些实施例中,若该第三节点的不平衡率达到该第二阈值,则对该第三节点进行负载均衡之后,该方法还包括:第三根节点因子更新为第四根节点因子,该第四根节点因子为该第三节点的最后一个非空白因子,该第三根节点因子为该第一节点和该第二节点的索引因子。
第二方面,本申请实施例提供一种数据优化装置,该数据优化装置具有实现上述第一方面或第一方面任意一种可能实现方式的方法的功能。该功能可以通过硬件实现,也可以通过硬件执行相应的软件实现。该硬件或软件包括一个或多个与上述功能相对应的模块。
第三方面,本申请实施例提供另一种数据优化装置,该数据优化装置可以包括终端设备或者芯片等实体,所述数据优化装置包括:处理器、存储器;所述存储器用于存储指令;所述处理器用于执行所述存储器中的所述指令,使得所述数据优化装置执行如前述第一方面中任一项所述的方法。
第四方面,本申请提供了一种芯片***,该芯片***包括处理器,用于支持数据优化装置实现上述方面中所涉及的功能,例如,发送或处理上述方法中所涉及的数据和/或信息。在一种可能的设计中,所述芯片***还包括存储器,所述存储器,用于保存数据优化装置必要的程序指令和数据。该芯片***,既可以是数据优化装置,也可以是应用在数据优化装置中执行相应功能的***芯片。
第五方面,本申请实施例提供一种计算机程序产品,当其在计算机上运行时,使得计算机执行如前述第一方面及任一可选实现方式中所述的方法。
第六方面,本申请实施例提供一种计算机存储介质,包括指令,当其在计算机上运行时,使得计算机执行如前述第一方面及任一可选实现方式中所述的方法。
该计算机存储介质包括:U盘、移动硬盘、只读存储器(read-only memory,ROM)、随机存取存储器(random access memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
从以上技术方案可以看出,本申请实施例具有以下优点:
通过采用***合并的算法,对空置率达到阈值的Leaf Page进行合并,当树的深度较大时,可以明显减少树的深度和Leaf Page的数量,节省存储资源开支,提高存储效率。进一步的对相邻Leaf Page负载均衡可以平衡各Leaf Page内的节点,平均空置率,在后续因子添加时,减少拆分页操作,进一步提高了存储的性能。
附图说明
图1是B+Tree算法***数据的示意图;
图2是本申请实施例的一种数据优化的方法的流程图;
图3是本申请实施例中另一种数据优化的方法的流程图;
图4是本申请实施例的另一种数据优化的方法的流程图;
图5是本申请实施例的一种数据优化的方法的应用场景图;
图6是本申请实施例的另一种数据优化的方法的流程图;
图7是本申请实施例中另一种数据优化的方法的流程图;
图8是本申请实施例的另一种数据优化的方法的应用场景图;
图9是本申请实施例中一种数据优化装置的结构示意图;
图10是本申请实施例中另一种数据优化装置的结构示意图。
具体实施方式
下面结合附图,对本申请的实施例进行描述,显然,所描述的实施例仅仅是本申请一部分的实施例,而不是全部的实施例。本领域普通技术人员可知,随着技术的发展和新场景的出现,本申请实施例提供的技术方案对于类似的技术问题,同样适用。
本申请实施例提供了一种数据优化的方法,通过采用***合并的算法,对空置率达到阈值的Leaf Page进行合并,当树的深度较大时,可以明显减少树的深度和Leaf Page的数量,节省存储资源开支,提高存储效率。进一步的对相邻Leaf Page负载均衡可以平衡各Leaf Page内的节点,平均空置率,在后续因子添加时,减少拆分页操作,进一步提高了存储的性能。
在存储领域,海量数据查询和存储需要占用超大的资源,严重影响了数据存储的性能。为了降低存储数据占用的资源,提高数据存储性能,目前已经产生了各种成熟并且效果非常好的查询算法,最经典的属于B+Tree算法。现有的研究机构主要致力于研究如何采用提高硬件性能和优化算法两方面进行性能提升,单纯提高硬件性能并不能发挥最大效益,需结合恰当的优化算法实现性能提升。B+Tree在查询算法中是使用较为广泛的算法,如图1所示,是B+Tree算法***数据的示意图,但是作为通用算法,其性能仍还有很大优化空间。当做数据***时,B+Tree会优先拆分Leaf Page,在数据量比较小的时候还能满足性能要求。但是当应用于海量存储时,过多的Leaf Page和过深的Tree深度,已成为海量数据存储的性能瓶颈。
基于上述问题,本发明提出了一种包含限制因子的***和负载均衡的B+Tree优化算法,通过采用C语言完成该算法的描述,然后通过Java的C调用方法嵌入存储***。在缩短产品研发周期的同时,提高海量数据存储的性能。
本实施例提出的方法用以解决该问题,为便于理解,下面对本实施例中的具体流程进行描述,如图2所示,是本申请实施例的一种数据优化的方法的流程图,该方法包括但不限于如下步骤:
201、计算第一节点的空置率以及第二节点的空置率;
本实施例中,第一节点与第二节点相邻,应当理解的是,相邻所表达的为一种位置关系,即在数据储存中的相邻的节点。空置率为各节点中空白因子数量占总节点因子数量的比例,空白因子为未写入数据的因子位点,总节点因子为该节点可写入的数据因子的总数。其数学表达式可以为:factor=a/A,式中factor为空置率,a为空白因子数量,A为总节点因子数量。
202、第一节点和第二节点中至少一个节点的空置率达到第一阈值;
本实施例中,第一节点和第二节点中至少一个节点的空置率达到第一阈值可以为三种情况,即第一节点的空置率达到第一阈值而第二节点的空置率未达到第一阈值、第二节点的空置率达到第一阈值而第一节点的空置率未达到第一阈值、第一节点的空置率与第二节点的空置率都达到第一阈值,具体情况以实际情况而定,此处不做限定。
本实施例中,第一阈值可以是限制因子factor,应当注意的是,factor的值可以为30%也可以为40%,具体情况以实际情况而定,此处不做限定。
203、生成第三节点;
本实施例中,第三节点包含第一节点与第二节点的所有非空白因子,应当理解的是,第三节点中可写入因子的总数不会因第一节点与第二节点的所有非空白因子的写入而改变,即空白因子不会因写入数据而增加。
通过上述实施例方法可以减少节点的数量,即减少树的深度和Leaf Page的数量,从而节省存储资源开支,提高存储效率。
在一种可能的场景中,根节点因子会应节点因子的合并而改变,如图3所示,是本申请实施例中另一种数据优化的方法的流程图。
为便于理解,下面对本实施例中的具体流程进行描述,该方法包括但不限于如下步骤:
301、计算第一节点的空置率以及第二节点的空置率;
302、判断第一节点和第二节点中至少一个节点的空置率达到第一阈值;
303、生成第三节点;
本实施例中,步骤301-303与步骤201-203相似,此处不做赘述。
304、第一根节点因子更新为第二根节点因子;
本实施例中,第二根节点因子为所述第三节点的最后一个非空白因子,所述第一根节点因子为所述第一节点和所述第二节点的索引因子,即可根据第一根节点的位置判断第一节点和第二节点所在的位置。
应当注意的是,所述第三节点的最后一个非空白因子为按照写入逻辑排列的最后一个数据,例如,若数据的写入逻辑排列为按数值从小到大,依次向右排列,则第二根节点因子为第三节点最右的非空白因子;若数据的写入逻辑排列为按数值从小到大,依次向左排列,则第二根节点因子为第三节点最左的非空白因子;具体情况以实际情况而定,此处不做限定。
由于根节点的更新,在数据查询过程中可以更好的对相关数据定位,提高查找效率,可以理解的是,具体的更新方法可以为以下实施例。
本实施例提出的方法用以解决该问题,为便于理解,下面对本实施例中的具体流程进行描述,如图4所示,是本申请实施例的另一种数据优化的方法的流程图,该方法包括但不限于如下步骤:
401、计算第一节点的空置率以及第二节点的空置率;
402、判断第一节点和第二节点中至少一个节点的空置率达到第一阈值;
403、生成第三节点;
本实施例中,步骤401-403与步骤201-203相似,此处不做赘述。
404、删除第一根节点因子;
本实施例中,删除第一根节点因子可以理解为,删除第一根节点原有的数据因子,变为空白因子,可供数据的再次写入。
405、添加第三节点的最后一个非空白因子为第二根节点因子;
本实施例中,添加第三节点的最后一个非空白因子为第二根节点因子可以理解为,第三节点的最后一个非空白因子的数据写入空白因子中,成为第二根节点因子。
本实施例中,所述第三节点的最后一个非空白因子为按照写入逻辑排列的最后一个数据,例如,若数据的写入逻辑排列为按数值从小到大,依次向右排列,则第二根节点因子为第三节点最右的非空白因子;若数据的写入逻辑排列为按数值从小到大,依次向左排列,则第二根节点因子为第三节点最左的非空白因子;具体情况以实际情况而定,此处不做限定。
上述实施例方法通过对节点的合并,以及根节点的更新,减少了节点的数量,即减少树的深度和Leaf Page的数量,从而节省存储资源开支,提高存储效率,下面在一种具体的数据场景中进行说明。
本实施例提出的方法用以解决该问题,为便于理解,下面对本实施例中的具体流程进行描述,如图5所示,是本申请实施例的一种数据优化的方法的应用场景图。
本实施例中,一共有4个节点,其中第一个节点的空置率为75%,第二个节点的空置率为50%,第三个节点的空置率为0%,第四个节点的空置率为25%。
首先,设置限制因子factor为30%,用以标识空置率,则第一个节点和第二个节点的空置率达到阈值。
然后对其非空白因子进行合并,图中,数据(5)(25、30)合并到一个节点中变为(5、25、30),则原有的4个节点变为了3个节点。
由于合并后的最右因子为(30),则根节点因子由(25)变为(30),如此形成了完整的储存逻辑。
应当注意的是,本实施例举例了4个节点的情况,其中对2个节点进行了合并,但实际情况应包含更多的节点,本实施例为一种方法说明,本方法可应用于海量的数据储存优化的场景中,具体情况因实际场景而定。
在一些可能的场景中,合并之后的节点会有空置率不平衡的情况,会影响数据写入效率,下面对此场景进行说明。
本实施例提出的方法用以解决该问题,为便于理解,下面对本实施例中的具体流程进行描述,如图6所示,是本申请实施例的另一种数据优化的方法的流程图,该方法包括但不限于如下步骤:
601、计算第三节点的不平衡率;
本实施例中,第三节点的不平衡率为所述第三节点的空置率占所述第三节点的空置率与第四节点的空置率之和的比率,所述第三节点与所述第四节点相邻,所述第四节点的不平衡率未达到第二阈值;不平衡率计算的公式可以为:lv3=factor3/(factor3+factor4),式中lv3为第三节点的不平衡率,factor3为第三节点的空置率,factor4为第四节点的空置率。
602、第三节点的不平衡率达到第二阈值;
本实施例中,第二阈值可以为50%,也可以为40%,具体取值因实际情况而定,此处不做限定。
603、对第三节点进行负载均衡;
本实施例中,负载均衡为旋转第四节点中的因子至第三节点中,使两者的不平衡率接近。例如:第三节点为(5、X、X、X),第四节点为(15、20、25、X),X为空白因子,进行负载均衡后,第三节点为(5、15、X、X),第四节点为(20、25、X、X),此时第三节点与第四节点的不平衡率接近。
可以理解的是,本实施例中说明了一种2个节点负载均衡的情况,其中进行旋转的因子来自这2个节点,但在海量的数据储存中,也可以为更多数量节点的负载均衡,具体操作因实际情况而定,此处不做限定。
通过对节点的进一步负载均衡,平衡了各Leaf Page内的节点,平均空置率,在后续因子添加时,减少拆分页操作,进一步提高了存储的性能。
在一种可能的场景中,根节点因子会应节点因子的合并而改变,如图7所示,是本申请实施例中另一种数据优化的方法的流程图。
为便于理解,下面对本实施例中的具体流程进行描述,该方法包括但不限于如下步骤:
701、计算第三节点的不平衡率;
702、第三节点的不平衡率达到第二阈值;
703、对第三节点进行负载均衡;
本实施例中,步骤701-703与步骤601-603相似,此处不做赘述。
704、第三根节点因子更新为第四根节点因子;
本实施例中,第四根节点因子为所述第三节点的最后一个非空白因子,所述第三根节点因子为所述第一节点和所述第二节点的索引因子,即可根据第三根节点的位置判断第一节点和第二节点所在的位置。
应当注意的是,所述第三节点的最后一个非空白因子为按照写入逻辑排列的最后一个数据,例如,若数据的写入逻辑排列为按数值从小到大,依次向右排列,则第四根节点因子为第三节点最右的非空白因子;若数据的写入逻辑排列为按数值从小到大,依次向左排列,则第四根节点因子为第三节点最左的非空白因子;具体情况以实际情况而定,此处不做限定。
上述实施例方法通过对节点的负载均衡,以及根节点的更新,平衡了节点的非空白因子数,从而节省存储资源开支,提高存储效率,下面在一种具体的数据场景中进行说明。
本实施例提出的方法用以解决该问题,为便于理解,下面对本实施例中的具体流程进行描述,如图8所示,是本申请实施例的另一种数据优化的方法的应用场景图。
首先,本场景含有三阶节点,在第三阶节点中,包含(5、X、X、X)(10、15、25、30)(40、45、X、X)(55、60、65、70)(75、76、77、78)(80、85、86、X)(90、95、X、X)(105、110、115、120),X为空白因子。
然后,进行负载均衡操作,(5、X、X、X)变为(5、10、X、X),(10、15、25、30)变为(15、25、30、X),(40、45、X、X)变为(40、45、50、X),(55、60、65、70)变为(60、65、70、X),(90、95、X、X)变为(90、95、105、X),(105、110、115、120)变为(110、115、120、X),相应的根节点也随着节点最右因子的变化而变化。
由此实施例可见,负载均衡后,各节点的空置率更为平均,在后续因子添加时,可以减少拆分页操作,进一步提高了存储的性能。
本申请实施例可以根据上述方法示例对数据优化装置进行功能模块的划分,例如,可以对应各个功能划分各个功能模块,也可以将两个或两个以上的功能集成在一个处理模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。需要说明的是,本申请实施例中对模块的划分是示意性的,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式。
比如,以采用集成的方式划分各个功能单元的情况下,如图9所示,是本申请实施例中一种数据优化装置的结构示意图。
图9中,本申请实施例提供的数据优化装置900包括计算单元901和生成单元902;
计算单元901,用于计算第一节点的空置率以及第二节点的空置率,该第一节点与该第二节点相邻,该空置率为各节点中空白因子数量占总节点因子数量的比例;
生成单元902,用于若该第一节点和该第二节点中至少一个节点的空置率达到第一阈值,则生成第三节点,该第三节点包含该第一节点与该第二节点的所有非空白因子。
可选的,生成单元902,还用于第一根节点因子更新为第二根节点因子,该第二根节点因子为该第三节点的最后一个非空白因子,该第一根节点因子为该第一节点和该第二节点的索引因子。
可选的,生成单元902,具体用于删除该第一根节点因子;该生成单元,具体用于添加该第三节点的最右因子为该第二根节点因子。
可选的,计算单元901,还用于计算该第三节点的不平衡率,该第三节点的不平衡率为该第三节点的空置率占该第三节点的空置率与第四节点的空置率之和的比率,该第三节点与该第四节点相邻,该第四节点的不平衡率未达到第二阈值;该生成单元902,还用于若该第三节点的不平衡率达到该第二阈值时,对该第三节点进行负载均衡。
可选的,生成单元902,还用于第三根节点因子更新为第四根节点因子,该第四根节点因子为该第三节点的最后一个非空白因子,该第三根节点因子为该第一节点和该第二节点的索引因子。
其中,上述方法实施例涉及的各步骤的所有相关内容均可以援引到对应功能单元的功能描述,在此不再赘述。
在本实施例中,数据优化装置900可以采用集成的方式划分各个功能模块的形式来呈现。这里的“模块”可以指特定应用集成电路(application-specific integratedcircuit,ASIC),电路,执行一个或多个软件或固件程序的处理器和存储器,集成逻辑电路,和/或其他可以提供上述功能的器件。在一个简单的实施例中,本领域的技术人员可以想到数据优化装置900可以采用图10所示的形式,如图10所示,是本申请实施例中另一种数据优化装置的结构示意图。
数据优化装置1000包括:输入/输出(I/O)接口1001、处理器1002、存储器1003。具体的,图10中的处理器1002可以通过调用存储器1003中存储的计算机执行指令,使得数据优化装置1000执行上述方法实施例中的实现数据优化电路控制的方法。
具体的,图9中的计算单元901和生成单元902的功能/实现过程可以通过图10中的处理器1002调用存储器1003中存储的计算机执行指令来实现。或者,图9中的计算单元901和生成单元902的功能/实现过程可以通过图10中的输入/输出(I/O)接口1001来实现。
由于本申请实施例提供的数据优化装置1000可用于执行数据优化电路控制的方法,因此其所能获得的技术效果可参考上述方法实施例,在此不再赘述。
可选的,本申请实施例提供了一种芯片***,该芯片***包括处理器,用于支持数据优化装置实现上述数据优化的方法。在一种可能的设计中,该芯片***还包括存储器。该存储器,用于保存数据优化装置必要的程序指令和数据。该芯片***,可以由芯片构成,也可以包含芯片和其他分立器件,本申请实施例对此不作具体限定。
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。
所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机程序指令时,全部或部分地产生按照本申请实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(DSL))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存储的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,DVD)、或者半导体介质(例如固态硬盘Solid State Disk(SSD))等。
本申请的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的实施例能够以除了在这里图示或描述的内容以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或模块的过程、方法、***、产品或设备不必限于清楚地列出的那些步骤或模块,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或模块。在本申请中出现的对步骤进行的命名或者编号,并不意味着必须按照命名或者编号所指示的时间/逻辑先后顺序执行方法流程中的步骤,已经命名或者编号的流程步骤可以根据要实现的技术目的变更执行次序,只要能达到相同或者相类似的技术效果即可。本申请中所出现的模块的划分,是一种逻辑上的划分,实际应用中实现时可以有另外的划分方式,例如多个模块可以结合成或集成在另一个***中,或一些特征可以忽略,或不执行,另外,所显示的或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,模块之间的间接耦合或通信连接可以是电性或其他类似的形式,本申请中均不作限定。并且,作为分离部件说明的模块或子模块可以是也可以不是物理上的分离,可以是也可以不是物理模块,或者可以分布到多个电路模块中,可以根据实际的需要选择其中的部分或全部模块来实现本申请方案的目的。
本领域普通技术人员可以理解上述实施例的各种方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,该程序可以存储于一计算机可读存储介质中,存储介质可以包括:ROM、RAM、磁盘或光盘等。
以上对本申请实施例所提供的数据优化的方法、装置以及***进行了详细介绍,本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其核心思想;同时,对于本领域的一般技术人员,依据本申请的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本申请的限制。
Claims (2)
1.一种数据优化方法,其特征在于,包括:
计算第一节点的空置率以及第二节点的空置率,所述第一节点与所述第二节点相邻,所述空置率为各节点中空白因子数量占总节点因子数量的比例;所述空白因子为未写入数据的因子位点,所述总节点因子为节点可写入的数据因子的总数;
若所述第一节点和所述第二节点中至少一个节点的空置率达到第一阈值,则生成第三节点,所述第三节点包含所述第一节点与所述第二节点的所有非空白因子;若所述第一节点和所述第二节点中至少一个节点的空置率达到第一阈值,则生成第三节点之后,所述方法还包括:删除第一根节点因子;添加所述第三节点的最后一个非空白因子为第二根节点因子,所述第二根节点因子为所述第三节点的最后一个非空白因子,所述第一根节点因子为所述第一节点和所述第二节点的索引因子;
若所述第一节点和所述第二节点中至少一个节点的空置率达到第一阈值,则生成第三节点之后,所述方法还包括:
计算所述第三节点的不平衡率,所述第三节点的不平衡率为所述第三节点的空置率占所述第三节点的空置率与第四节点的空置率之和的比率,所述第三节点与所述第四节点相邻,所述第四节点的不平衡率未达到第二阈值;
若所述第三节点的不平衡率达到所述第二阈值,则对所述第三节点进行负载均衡;第三根节点因子更新为第四根节点因子,所述第四根节点因子为所述第三节点的最后一个非空白因子,所述第三根节点因子为所述第一节点和所述第二节点的索引因子。
2.一种数据优化装置,其特征在于,包括:
计算单元,用于计算第一节点的空置率以及第二节点的空置率,所述第一节点与所述第二节点相邻,所述空置率为各节点中空白因子数量占总节点因子数量的比例;所述空白因子为未写入数据的因子位点,所述总节点因子为节点可写入的数据因子的总数;
生成单元,用于若所述第一节点和所述第二节点中至少一个节点的空置率达到第一阈值,则生成第三节点,所述第三节点包含所述第一节点与所述第二节点的所有非空白因子;所述生成单元,还用于删除第一根节点因子;添加所述第三节点的最后一个非空白因子为第二根节点因子,所述第二根节点因子为所述第三节点的最后一个非空白因子,所述第一根节点因子为所述第一节点和所述第二节点的索引因子;
所述计算单元,还用于计算所述第三节点的不平衡率,所述第三节点的不平衡率为所述第三节点的空置率占所述第三节点的空置率与第四节点的空置率之和的比率,所述第三节点与所述第四节点相邻,所述第四节点的不平衡率未达到第二阈值;
所述生成单元,还用于若所述第三节点的不平衡率达到所述第二阈值时,对所述第三节点进行负载均衡;还用于第三根节点因子更新为第四根节点因子,所述第四根节点因子为所述第三节点的最后一个非空白因子,所述第三根节点因子为所述第一节点和所述第二节点的索引因子。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811209843.7A CN109284295B (zh) | 2018-10-17 | 2018-10-17 | 一种数据优化的方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811209843.7A CN109284295B (zh) | 2018-10-17 | 2018-10-17 | 一种数据优化的方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109284295A CN109284295A (zh) | 2019-01-29 |
CN109284295B true CN109284295B (zh) | 2021-09-17 |
Family
ID=65178019
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811209843.7A Active CN109284295B (zh) | 2018-10-17 | 2018-10-17 | 一种数据优化的方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109284295B (zh) |
Citations (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102542057A (zh) * | 2011-12-29 | 2012-07-04 | 北京大学 | 基于固态硬盘的高维数据索引结构设计方法 |
CN103049554A (zh) * | 2012-12-31 | 2013-04-17 | 吴立新 | 一种矢量qr树并行索引技术 |
CN104281517A (zh) * | 2014-10-16 | 2015-01-14 | 浙江宇视科技有限公司 | 一种基于日志方式的存储空间管理方法和装置 |
CN104321970A (zh) * | 2012-06-26 | 2015-01-28 | 英特尔公司 | 层间编码单元四叉树模式预测 |
CN105653668A (zh) * | 2015-12-29 | 2016-06-08 | 武汉理工大学 | 云环境中基于DOMTree的网页内容分析提取优化方法 |
CN105930280A (zh) * | 2016-05-27 | 2016-09-07 | 诸葛晴凤 | 一种面向非易失性内存的高效的页面组织和管理方法 |
CN106534359A (zh) * | 2016-12-13 | 2017-03-22 | 中科院成都信息技术股份有限公司 | 一种基于存储熵的存储负载均衡方法 |
CN106897119A (zh) * | 2017-02-28 | 2017-06-27 | 郑州云海信息技术有限公司 | 一种虚拟化平台中磁盘树优化方法及*** |
CN107507276A (zh) * | 2016-06-14 | 2017-12-22 | 中国石油化工股份有限公司 | 用于任意方向的岩心切片显示的三维数字岩心存储方法 |
CN108154294A (zh) * | 2017-12-22 | 2018-06-12 | 鲁东大学 | 一种异构集群安监设备的安全负载均衡的方法 |
CN108200156A (zh) * | 2017-12-29 | 2018-06-22 | 南京邮电大学 | 一种云环境下分布式文件***的动态负载均衡方法 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9792328B2 (en) * | 2014-03-13 | 2017-10-17 | Sybase, Inc. | Splitting of a join operation to allow parallelization |
-
2018
- 2018-10-17 CN CN201811209843.7A patent/CN109284295B/zh active Active
Patent Citations (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102542057A (zh) * | 2011-12-29 | 2012-07-04 | 北京大学 | 基于固态硬盘的高维数据索引结构设计方法 |
CN104321970A (zh) * | 2012-06-26 | 2015-01-28 | 英特尔公司 | 层间编码单元四叉树模式预测 |
CN103049554A (zh) * | 2012-12-31 | 2013-04-17 | 吴立新 | 一种矢量qr树并行索引技术 |
CN104281517A (zh) * | 2014-10-16 | 2015-01-14 | 浙江宇视科技有限公司 | 一种基于日志方式的存储空间管理方法和装置 |
CN105653668A (zh) * | 2015-12-29 | 2016-06-08 | 武汉理工大学 | 云环境中基于DOMTree的网页内容分析提取优化方法 |
CN105930280A (zh) * | 2016-05-27 | 2016-09-07 | 诸葛晴凤 | 一种面向非易失性内存的高效的页面组织和管理方法 |
CN107507276A (zh) * | 2016-06-14 | 2017-12-22 | 中国石油化工股份有限公司 | 用于任意方向的岩心切片显示的三维数字岩心存储方法 |
CN106534359A (zh) * | 2016-12-13 | 2017-03-22 | 中科院成都信息技术股份有限公司 | 一种基于存储熵的存储负载均衡方法 |
CN106897119A (zh) * | 2017-02-28 | 2017-06-27 | 郑州云海信息技术有限公司 | 一种虚拟化平台中磁盘树优化方法及*** |
CN108154294A (zh) * | 2017-12-22 | 2018-06-12 | 鲁东大学 | 一种异构集群安监设备的安全负载均衡的方法 |
CN108200156A (zh) * | 2017-12-29 | 2018-06-22 | 南京邮电大学 | 一种云环境下分布式文件***的动态负载均衡方法 |
Also Published As
Publication number | Publication date |
---|---|
CN109284295A (zh) | 2019-01-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP3113043B1 (en) | Method, device and host for updating metadata stored in columns in distributed file system | |
US8677366B2 (en) | Systems and methods for processing hierarchical data in a map-reduce framework | |
JP2020531949A (ja) | ブロックチェーン内のデータベース・ハッシュコードの遅延更新 | |
JP2015118609A (ja) | 予め決められた複数のビット幅のデータに対して操作を行う命令を使用してツリーの検索を行うための方法、並びに、当該命令を使用してツリーの検索を行うためのコンピュータ及びそのコンピュータ・プログラム | |
CN109542911B (zh) | 一种元数据组织方法、***、设备及计算机可读存储介质 | |
CN106897119B (zh) | 一种虚拟化平台中磁盘树优化方法及*** | |
CN111241353A (zh) | 一种图数据的分区方法、装置以及设备 | |
CN107330014A (zh) | 一种数据表的创建方法与设备 | |
CN115599764A (zh) | 一种表格数据的迁移方法、设备及介质 | |
CN110019528A (zh) | 数据库操作负载均衡方法、装置、设备及介质 | |
CN115525580A (zh) | 一种namespace设置方法、装置及可读存储介质 | |
CN113918126B (zh) | 一种基于图算法的ai建模流程编排方法和*** | |
CN113744062B (zh) | 在区块链中执行交易的方法、区块链节点和区块链 | |
CN105468793A (zh) | 一种仿真模型数据的自动化管理方法 | |
US9715514B2 (en) | K-ary tree to binary tree conversion through complete height balanced technique | |
US9275091B2 (en) | Database management device and database management method | |
CN109284295B (zh) | 一种数据优化的方法及装置 | |
CN112925586B (zh) | 一种小程序路由方法、装置、计算机设备及存储介质 | |
WO2016192057A1 (zh) | 索引表的更新方法和设备 | |
WO2019179252A1 (zh) | 一种样本回放数据存取方法及装置 | |
US10146791B2 (en) | Open file rebalance | |
JP2019008799A (ja) | ソースアプリケーションからのソースデータをターゲットアプリケーションのターゲットデータへとマージするためのシステムおよび方法 | |
CN104932982A (zh) | 一种消息访存的编译方法及相关装置 | |
CN110222105B (zh) | 数据汇总处理方法及装置 | |
CN113806431A (zh) | 一种传输仿真数据的方法、电子***及存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |