CN117312327B - 一种数据存储方法、装置、设备及计算机可读存储介质 - Google Patents
一种数据存储方法、装置、设备及计算机可读存储介质 Download PDFInfo
- Publication number
- CN117312327B CN117312327B CN202311598779.7A CN202311598779A CN117312327B CN 117312327 B CN117312327 B CN 117312327B CN 202311598779 A CN202311598779 A CN 202311598779A CN 117312327 B CN117312327 B CN 117312327B
- Authority
- CN
- China
- Prior art keywords
- node
- split
- data
- tree
- condition
- 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 90
- 238000013500 data storage Methods 0.000 title claims abstract description 72
- 230000005012 migration Effects 0.000 claims description 169
- 238000013508 migration Methods 0.000 claims description 169
- 238000012544 monitoring process Methods 0.000 claims description 68
- 238000004422 calculation algorithm Methods 0.000 claims description 23
- 238000012545 processing Methods 0.000 claims description 20
- 230000008569 process Effects 0.000 claims description 15
- 238000004590 computer program Methods 0.000 claims description 14
- 238000012546 transfer Methods 0.000 claims description 8
- 238000004364 calculation method Methods 0.000 claims description 4
- 238000010586 diagram Methods 0.000 description 10
- 230000001960 triggered effect Effects 0.000 description 6
- 238000004891 communication Methods 0.000 description 4
- 238000003780 insertion Methods 0.000 description 4
- 230000037431 insertion Effects 0.000 description 4
- 230000009471 action Effects 0.000 description 3
- 230000003321 amplification Effects 0.000 description 3
- 238000013473 artificial intelligence 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
- 230000000694 effects Effects 0.000 description 3
- 238000003199 nucleic acid amplification method Methods 0.000 description 3
- 239000000725 suspension Substances 0.000 description 3
- 230000006978 adaptation Effects 0.000 description 2
- 230000008859 change Effects 0.000 description 2
- 230000006872 improvement Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000009877 rendering Methods 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000003111 delayed effect Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 238000010801 machine learning Methods 0.000 description 1
- 238000007726 management method Methods 0.000 description 1
- 230000005055 memory storage Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000008520 organization Effects 0.000 description 1
- 230000000750 progressive effect Effects 0.000 description 1
- 230000001052 transient effect Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/22—Indexing; Data structures therefor; Storage structures
- G06F16/2228—Indexing structures
- G06F16/2246—Trees, e.g. B+trees
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/22—Indexing; Data structures therefor; Storage structures
- G06F16/2291—User-Defined Types; Storage management thereof
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0638—Organizing or formatting or addressing of data
- G06F3/064—Management of blocks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Human Computer Interaction (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明涉及存储技术领域,具体公开了一种数据存储方法、装置、设备及计算机可读存储介质,通过根据所在设备的数据块大小和单位待存储数据的大小确定待创建B+树的阶数以调用B+树创建脚本创建阶数合理的B+树,并通过监控B+树的节点资源利用情况,在B+树满足节点***条件时先查询待***节点的兄弟节点是否满足接收待***节点的数据的迁移条件,如果满足则禁止B+树创建脚本执行节点***任务并将待***节点的数据迁移至兄弟节点,如果不满足才允许B+树执行节点***任务,从而通过延迟B+树的节点***、阻止B+树的不必要节点***,来提高B+树存储的节点资源利用情况利用率,进而提高了应用B+树进行数据存储时的存储资源利用率。
Description
技术领域
本发明涉及存储技术领域,特别是涉及一种数据存储方法、装置、设备及计算机可读存储介质。
背景技术
在数据存储***中,对于元数据等数据单元较小但数据数量较多的数据,存在大量且高并发的数据访问和查询问题,为有效管理这些小型数据的存储,目前的存储策略是采用B+树操作算法执行数据存储。目前的B+树的节点在即将满时,采用的策略是立即对该节点进行***,以维护B+树的平衡结构,但是由此导致***后节点的利用率可能只有50%,对于存储***中大批量频繁更新数据的情况下非常浪费存储资源。
改进B+树的数据存储方案以提高存储资源利用率,是本领域技术人员需要解决的技术问题。
发明内容
本发明的目的是提供一种数据存储方法、装置、设备及计算机可读存储介质,用于提高应用B+树进行数据存储时的存储资源利用率。
为解决上述技术问题,本发明提供一种数据存储方法,包括:
根据所在设备的数据块大小和单位待存储数据的大小,计算得到待创建B+树的阶数;
将所述待创建B+树的阶数写入所述设备的B+树创建脚本,以调用所述B+树创建脚本创建用于存储待存储数据的B+树;
启动对所述B+树的节点资源监控程序;
当监测到所述B+树满足节点***条件时,查询待***节点的兄弟节点的节点资源利用情况;
若所述兄弟节点的节点资源利用情况满足接收所述待***节点的数据的迁移条件,则禁止所述B+树创建脚本执行节点***任务并将所述兄弟节点的信息和所述待***节点的信息写入所述B+树创建脚本,以调用所述B+树创建脚本将所述待***节点的数据迁移至所述兄弟节点后,根据所述兄弟节点的数据信息和所述待***节点的数据信息更新父节点;
若所述待***节点的所有所述兄弟节点的节点资源利用情况均满足所述迁移条件,则将不满足所述迁移条件的信息写入所述B+树创建脚本,以使所述B+树创建脚本执行对所述待***节点的所述节点***任务。
在一些实施中,所述兄弟节点的节点资源利用情况满足接收所述待***节点的数据的迁移条件,包括:
若所述兄弟节点为所述待***节点的相邻节点且所述兄弟节点的节点资源利用率未达到第一利用率阈值,则确定所述兄弟节点满足所述迁移条件。
在一些实施中,所述兄弟节点的节点资源利用情况满足接收所述待***节点的数据的迁移条件,包括:
若所述兄弟节点与所述待***节点间隔不超出一个节点且所述兄弟节点的节点资源利用率未达到第一利用率阈值,则确定所述兄弟节点满足所述迁移条件。
在一些实施中,还包括:
监测调用所述B+树创建脚本对所述B+树各叶子节点的写入频率;
根据所述写入频率计算得到与所述叶子节点对应的所述第一利用率阈值;
其中,所述第一利用率阈值与所述写入频率成负相关。
在一些实施中,所述兄弟节点的节点资源利用情况满足接收所述待***节点的数据的迁移条件,包括:
若所述待***节点的所有所述兄弟节点的节点空间利用率平均值未超出第二利用率阈值,则确定所述兄弟节点满足所述迁移条件。
在一些实施中,所述监测到所述B+树满足节点***条件,包括:
监测到调用所述B+树创建脚本计算得到待写入数据要写入的节点满足所述节点***条件,确定所述待写入数据要写入的节点为所述待***节点。
在一些实施中,所述待写入数据要写入的节点满足所述节点***条件,包括:
所述待写入数据要写入的节点的已写入数据的数量为所述B+树的阶数减一。
在一些实施中,所述待写入数据要写入的节点满足所述节点***条件,包括:
所述待写入数据要写入的节点的已写入数据的数量达到所述B+树的阶数。
在一些实施中,所述查询待***节点的兄弟节点的节点资源利用情况,包括:
查询所述待写入数据在所述待***节点中待写入位置所处的区域;
若所述待写入位置位于所述待***节点的左半部分区域,则查询所述待***节点左侧的所述兄弟节点的节点资源利用情况;
若所述待写入位置位于所述待***节点的右半部分区域,则查询所述待***节点右侧的所述兄弟节点的节点资源利用情况;
所述兄弟节点的节点资源利用情况满足接收所述待***节点的数据的所述迁移条件,包括:
所述右半部分区域所在侧的所述兄弟节点的节点资源利用情况满足所述迁移条件。
在一些实施中,所述查询待***节点的兄弟节点的节点资源利用情况,包括:
查询所述待写入数据在所述待***节点中待写入位置所处的区域;
若所述待写入位置位于所述待***节点的左半部分区域,则查询所述待***节点左侧的所述兄弟节点的节点资源利用情况,若左侧的所述兄弟节点的节点资源利用情况满足所述迁移条件,则将左侧的所述兄弟节点的信息和所述待***节点的信息写入所述B+树创建脚本;若左侧的所述兄弟节点的节点资源利用情况不满足所述迁移条件,则查询所述待***节点右侧的所述兄弟节点的节点资源利用情况,若右侧的所述兄弟节点的节点资源利用情况满足所述迁移条件,则将右侧的所述兄弟节点的信息和所述待***节点的信息写入所述B+树创建脚本;若所述待***节点左侧的所述兄弟节点的节点资源利用情况和所述待***节点右侧的所述兄弟节点的节点资源利用情况均不满足所述迁移条件,则进入所述将不满足所述迁移条件的信息写入所述B+树创建脚本的步骤;
若所述待写入位置位于所述待***节点的右半部分区域,则查询所述待***节点右侧的所述兄弟节点的节点资源利用情况,若右侧的所述兄弟节点的节点资源利用情况满足所述迁移条件,则将右侧的所述兄弟节点的信息和所述待***节点的信息写入所述B+树创建脚本;若右侧的所述兄弟节点的节点资源利用情况不满足所述迁移条件,则查询所述待***节点左侧的所述兄弟节点的节点资源利用情况,若左侧的所述兄弟节点的节点资源利用情况满足所述迁移条件,则将左侧的所述兄弟节点的信息和所述待***节点的信息写入所述B+树创建脚本;若所述待***节点左侧的所述兄弟节点的节点资源利用情况和所述待***节点右侧的所述兄弟节点的节点资源利用情况均不满足所述迁移条件,则进入所述将不满足所述迁移条件的信息写入所述B+树创建脚本的步骤。
在一些实施中,所述监测到所述B+树满足节点***条件,包括:
监测到所述B+树存在节点资源利用率达到第三利用率阈值的所述待***节点。
在一些实施中,所述监测到所述B+树存在节点资源利用率达到第三利用率阈值的所述待***节点,包括:
监测到所述B+树出现已写入数据的数量达到B+树的阶数减一的所述待***节点。
在一些实施中,所述监测到所述B+树存在节点资源利用率达到第三利用率阈值的所述待***节点,包括:
监测到所述B+树出现已写入数据的数量达到B+树的阶数的所述待***节点。
在一些实施中,所述查询待***节点的兄弟节点的节点资源利用情况,包括:
分别查询所述待***节点左侧的所有所述兄弟节点的节点资源分布情况和所述待***节点右侧的所有所述兄弟节点的节点资源分布情况;
所述若所述兄弟节点的节点资源利用情况满足接收所述待***节点的数据的迁移条件,则将所述兄弟节点的信息和所述待***节点的信息写入所述B+树创建脚本,以调用所述B+树创建脚本将所述待***节点的数据迁移至所述兄弟节点后,根据所述兄弟节点的数据信息和所述待***节点的数据信息更新父节点,包括:
若存在一侧所述兄弟节点的节点资源分布情况满足所述迁移条件,则采用节点资源均衡算法将所述待***节点的信息和满足所述迁移条件的一侧所述兄弟节点的信息写入所述B+树创建脚本,以调用所述B+树创建脚本对所述待***节点和满足所述迁移条件的一侧所述兄弟节点进行节点资源均衡处理。
在一些实施中,还包括:
监测所述B+树的各叶子节点的节点资源分布情况;
采用节点资源均衡算法根据各所述叶子节点的节点资源分布情况对各所述叶子节点进行节点资源均衡处理。
在一些实施中,所述将所述兄弟节点的信息和所述待***节点的信息写入所述B+树创建脚本,以调用所述B+树创建脚本将所述待***节点的数据迁移至所述兄弟节点后,根据所述兄弟节点的数据信息和所述待***节点的数据信息更新父节点,包括:
确定所述待***节点的待迁移数据以使迁移后所述待***节点和迁移到的所述兄弟节点均不达到所述节点***条件;
将所述待***节点的标识、迁移到的所述兄弟节点的标识和所述待迁移数据的信息写入所述B+树创建脚本,以调用所述B+树创建脚本将所述待迁移数据自所述待***节点对应的存储位置迁移至所述兄弟节点对应的存储位置,并根据迁移后所述待***节点的首个数据和所述兄弟节点的首个数据更新所述父节点。
在一些实施中,所述将不满足所述迁移条件的信息写入所述B+树创建脚本,以使所述B+树创建脚本执行对所述待***节点的所述节点***任务,包括:
将不满足所述迁移条件的信息写入所述B+树创建脚本,以调用所述B+树创建脚本采用节点***算法计算得到所述待***节点的待迁移数据以及新节点的位置,将所述待迁移数据迁移至临时存储空间并在创建所述新节点后将所述待迁移数据迁移至所述新节点,而后根据所述待***节点的首个数据和所述新节点的首个数据更新所述父节点。
在一些实施中,应用于分布式存储***,所述待存储数据为元数据,且所述B+树与所述分布式存储***的其他数据分离存储。
在一些实施中,所述根据所在设备的数据块大小和单位待存储数据的大小,计算得到待创建B+树的阶数,包括:
运行节点资源监控进程,将所述设备的数据块大小除以所述单位待存储数据的大小,得到所述待创建B+树的阶数;
所述将所述待创建B+树的阶数写入所述设备的B+树创建脚本,以调用所述B+树创建脚本创建用于存储待存储数据的B+树,包括:
基于所述节点资源监控进程,将所述待创建B+树的阶数写入B+树创建进程以将所述待创建B+树的阶数写入所述B+树创建脚本,以运行所述B+树创建进程调用所述B+树创建脚本创建所述B+树;
所述当监测到所述B+树满足节点***条件时,查询待***节点的兄弟节点的节点资源利用情况,包括:
监测到调用所述B+树创建脚本计算得到待写入数据要写入的节点满足所述节点***条件,确定所述待写入数据要写入的节点为所述待***节点;
查询与所述待***节点间隔不超出一个节点的所述兄弟节点的节点资源利用情况;
所述若所述兄弟节点的节点资源利用情况满足接收所述待***节点的数据的迁移条件,则禁止所述B+树创建脚本执行节点***任务并将所述兄弟节点的信息和所述待***节点的信息写入所述B+树创建脚本,以调用所述B+树创建脚本将所述待***节点的数据迁移至所述兄弟节点后,根据所述兄弟节点的数据信息和所述待***节点的数据信息更新父节点,包括:
若查询的所述兄弟节点满足所述迁移条件,则禁止所述B+树创建脚本所述执行节点***任务;
确定所述待***节点的待迁移数据以使迁移后所述待***节点和迁移到的所述兄弟节点均不达到所述节点***条件;
将所述待***节点的标识、迁移到的所述兄弟节点的标识和所述待迁移数据的信息写入所述B+树创建脚本,以调用所述B+树创建脚本将所述待迁移数据自所述待***节点对应的存储位置迁移至所述兄弟节点对应的存储位置,并根据迁移后所述待***节点的首个数据和所述兄弟节点的首个数据更新所述父节点;
所述若所述待***节点的所有所述兄弟节点的节点资源利用情况均满足所述迁移条件,则将不满足所述迁移条件的信息写入所述B+树创建脚本,以使所述B+树创建脚本执行对所述待***节点的所述节点***任务,包括:
若查询的所述兄弟节点均不满足所述迁移条件,则将不满足所述迁移条件的信息写入所述B+树创建脚本,以调用所述B+树创建脚本采用节点***算法计算得到所述待***节点的所述待迁移数据以及新节点的位置,将所述待迁移数据迁移至临时存储空间并在创建所述新节点后将所述待迁移数据迁移至所述新节点,而后根据所述待***节点的首个数据和所述新节点的首个数据更新所述父节点。
为解决上述技术问题,本发明还提供一种数据存储装置,包括:
第一计算单元,用于根据所在设备的数据块大小和单位待存储数据的大小,计算得到待创建B+树的阶数;
第一写单元,用于将所述待创建B+树的阶数写入所述设备的B+树创建脚本,以调用所述B+树创建脚本创建用于存储待存储数据的B+树;
启动控制单元,用于启动对所述B+树的节点资源监控程序;
第一查询单元,用于当监测到所述B+树满足节点***条件时,查询待***节点的兄弟节点的节点资源利用情况;
第二写单元,用于若所述兄弟节点的节点资源利用情况满足接收所述待***节点的数据的迁移条件,则禁止所述B+树创建脚本执行节点***任务并将所述兄弟节点的信息和所述待***节点的信息写入所述B+树创建脚本,以调用所述B+树创建脚本将所述待***节点的数据迁移至所述兄弟节点后,根据所述兄弟节点的数据信息和所述待***节点的数据信息更新父节点;若所述待***节点的所有所述兄弟节点的节点资源利用情况均满足所述迁移条件,则将不满足所述迁移条件的信息写入所述B+树创建脚本,以使所述B+树创建脚本执行对所述待***节点的所述节点***任务。
为解决上述技术问题,本发明还提供一种数据存储设备,包括:
存储器,用于存储计算机程序;
处理器,用于执行所述计算机程序,所述计算机程序被所述处理器执行时实现如上述任意一项所述数据存储方法的步骤。
为解决上述技术问题,本发明还提供一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现如上述任意一项所述数据存储方法的步骤。
本发明所提供的数据存储方法,通过根据所在设备的数据块大小和单位待存储数据的大小确定待创建B+树的阶数以调用B+树创建脚本创建阶数合理的B+树,并通过监控B+树的节点资源利用情况,在B+树满足节点***条件时先查询待***节点的兄弟节点是否满足接收待***节点的数据的迁移条件,如果满足则禁止B+树创建脚本执行节点***任务并将待***节点的数据迁移至兄弟节点,如果不满足才允许B+树执行节点***任务,从而通过延迟B+树的节点***、阻止B+树的不必要节点***,来提高B+树存储的节点资源利用率,进而提高了应用B+树进行数据存储时的存储资源利用率。
本发明通过在将待写入数据写入B+树而待写入节点满足节点***条件时预知节点***,此时通过监测待写入节点左右两侧的兄弟节点是否满足迁移条件来延迟写入B+树过程的节点***,在提高B+树的节点资源利用率的同时减少节点***任务带来的申请新节点等消耗,提高了写入效率。
本发明通过监测B+树的各节点的节点资源利用率是否满足节点***条件来预知节点***,此时通过监测该节点左右两侧的兄弟节点是否满足迁移条件来延迟将会触发的B+树节点***,进一步避免在有新数据写入B+树时触发数据迁移或节点***造成的写延迟。
本发明通过监测B+树的各叶子节点的数据分布情况来执行节点资源均衡算法,通过均衡各叶子节点的节点资源的方式来减少对B+树节点***的触发。
本发明还提供了一种数据存储装置、设备及计算机可读存储介质,具有上述有益效果,在此不再赘述。
附图说明
为了更清楚的说明本发明实施例或现有技术的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单的介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例提供的一种数据存储方法的流程图;
图2为一种原有B+树***操作示意图;
图3为一种原有B+树***操作示意图;
图4为本发明实施例提供的一种B+树***操作过程中暂缓***示意图;
图5为本发明实施例提供的一种数据存储装置的结构示意图;
图6为本发明实施例提供的一种数据存储设备的结构示意图。
具体实施方式
本发明的核心是提供一种数据存储方法、装置、设备及计算机可读存储介质,用于提高应用B+树进行数据存储时的存储资源利用率。
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
下面对本发明实施例一进行说明。
为便于理解,首先对本发明适用的***架构进行介绍。本发明实施例提供的具体实施方式可以适用于单台存储设备或存储***,如分布式存储***。本发明实施例所利用B+树存储的数据可以为元数据或其他小型数据。
在利用B+树存储元数据时,在存储***中分配专有空间和磁盘阵列(RAID),将B+树元数据存储与数据读写分离,以通过专有空间减少元数据写放大、带宽抢占等,有助于性能提升。
在上述架构的基础上,下面结合附图对本发明实施例提供的数据存储方法进行说明。
下面对本发明实施例二进行说明。
图1为本发明实施例提供的一种数据存储方法的流程图。
如图1所示,本发明实施例提供的数据存储方法包括:
S101:根据所在设备的数据块大小和单位待存储数据的大小,计算得到待创建B+树的阶数。
S102:将待创建B+树的阶数写入设备的B+树创建脚本,以调用B+树创建脚本创建用于存储待存储数据的B+树。
S103:启动对B+树的节点资源监控程序。
S104:当监测到B+树满足节点***条件时,查询待***节点的兄弟节点的节点资源利用情况。
S105:若兄弟节点的节点资源利用情况满足接收待***节点的数据的迁移条件,则禁止B+树创建脚本执行节点***任务并将兄弟节点的信息和待***节点的信息写入B+树创建脚本,以调用B+树创建脚本将待***节点的数据迁移至兄弟节点后,根据兄弟节点的数据信息和待***节点的数据信息更新父节点。
S106:若待***节点的所有兄弟节点的节点资源利用情况均满足迁移条件,则将不满足迁移条件的信息写入B+树创建脚本,以使B+树创建脚本执行对待***节点的节点***任务。
在具体实施中,本发明实施例提供的数据存储方法可以应用于单台存储设备或存储***,具体可以基于存储设备的中央处理器执行。在存储设备中应用B+树存储数据时,是采用读写进程调用B+树创建脚本进行B+树的创建以及管理,本发明实施例提供的数据存储方法无需对设备原有的B+树创建脚本进行改动,即无需改动B+树的创建、节点***算法等,而是通过预先部署对B+树的节点资源监控程序来对B+树的创建以及管理过程进行监控,阻止原有的B+树创建脚本对B+树进行过多的节点***操作。
本发明实施例提供的数据存储方法若应用于分布式存储***,待存储数据为元数据,则可以将B+树与分布式存储***的其他数据分离存储,即对B+树分配专有空间和磁盘阵列(RAID),将B+树元数据存储与数据读写分离,以通过专有空间减少元数据写放大、带宽抢占等,有助于性能提升。
对于S101和S102,B+树作为块结构存储的优选数据组织结构,在存储领域有不可替代性。但是B+树的阶数(节点的大小)选择也非常重要,节点大小对于写放大,性能都有非常大的影响。故在本发明实施例提供的数据存储方法中,通过根据所在设备的数据块大小和单位待存储数据的大小,计算得到待创建B+树的阶数来给B+树创建脚本创建B+树的依据,以对块结构存储的存储空间进行合理利用。
对于S103,启动对B+树的节点资源监控程序,具体将已创建的B+树列入节点资源监控程序的监控对象,在该B+树写入新数据时触发读取B+树的节点资源利用情况或定时读取B+树的节点资源利用情况。
对于S104,监测到B+树满足节点***条件,可以包括:当监测到B+树创建脚本被调用执行写命令时,检查确定到待写入B+树中的待写入数据的待写入节点满足节点***条件;定时监测B+树的各叶子节点的节点资源利用情况,监测到存在满足节点***条件的叶子节点。其中,叶子节点满足节点资源利用情况,根据B+树创建脚本的配置,可以为叶子节点的已写入数据的数量等于B+树的阶数,或叶子节点的已写入数据的数量等于B+树的阶数减一。
在监测到B+树满足节点***条件,按B+树创建脚本的算法将对B+树执行节点***任务时,暂缓B+树创建脚本执行节点***任务,而是先查询待***节点的兄弟节点的节点资源利用情况。
对于S105,若兄弟节点的节点资源利用情况可以允许接收待***节点的数据,即将待***节点的一个或多个数据迁移至兄弟节点的迁移条件,则通过节点资源监控程序向选定的兄弟节点发送禁止B+树创建脚本执行节点***任务,并将选定的兄弟节点的信息和待***节点的信息写入B+树创建脚本,以调用B+树创建脚本将待***节点的数据迁移至兄弟节点后,根据兄弟节点的数据信息和待***节点的数据信息更新父节点。
根据B+树创建规则,所有数据存储在叶子节点,各节点中的数据从小到大排布,父节点存储其下所有子节点的首个关键字,故在对待***节点执行数据迁移后,还需根据待***节点的首个数据和迁移到的兄弟节点的首个数据更新其所对应的父节点中的关键字,如果涉及到父节点的首个数据,还需在B+树向上递归式更新,直至根节点。
则将兄弟节点的信息和待***节点的信息写入B+树创建脚本,以调用B+树创建脚本将待***节点的数据迁移至兄弟节点后,根据兄弟节点的数据信息和待***节点的数据信息更新父节点,可以包括:确定待***节点的待迁移数据以使迁移后待***节点和迁移到的兄弟节点均不达到节点***条件;将待***节点的标识、迁移到的兄弟节点的标识和待迁移数据的信息写入B+树创建脚本,以调用B+树创建脚本将待迁移数据自待***节点对应的存储位置迁移至兄弟节点对应的存储位置,并根据迁移后待***节点的首个数据和兄弟节点的首个数据更新父节点。
兄弟节点的节点资源利用情况满足接收待***节点的数据的迁移条件,可以包括:若兄弟节点为待***节点的相邻节点且兄弟节点的节点资源利用率未达到第一利用率阈值,则确定兄弟节点满足迁移条件。第一利用率阈值可以为75%,即是说,若待***节点的左右相邻兄弟节点中存在节点资源利用率不足75%的兄弟节点,即可将待***节点的数据迁移至该兄弟节点。
或者,兄弟节点的节点资源利用情况满足接收待***节点的数据的迁移条件,也可以包括:若兄弟节点与待***节点间隔不超出一个节点且兄弟节点的节点资源利用率未达到第一利用率阈值,则确定兄弟节点满足迁移条件。第一利用率阈值可以为75%。即是说,若考虑将待***节点的数据迁移至相隔一个节点的兄弟节点,则需要进行两次节点数据迁移,相隔更多的节点则需要迁移更多的次数,若B+树创建脚本正在执行数据写入任务,则需要等待较长时间,故若在待***节点的左右相邻兄弟节点中不存在节点资源利用率不足75%的兄弟节点,则考虑将待***节点的数据迁移至相隔一个节点的兄弟节点,若相隔一个节点的兄弟节点中也不存在节点资源利用率不足75%的兄弟节点,则认为待***节点的兄弟节点不符合迁移条件。
对于第一利用率阈值的设置方法,本发明实施例提供的数据存储方法还可以包括:监测调用B+树创建脚本对B+树各叶子节点的写入频率;根据写入频率计算得到与叶子节点对应的第一利用率阈值;其中,第一利用率阈值与写入频率成负相关。即是说,可以根据数据写入频次确定迁移条件对应的节点资源利用率阈值,写入频次越高节点资源利用率阈值越低,避免待***节点的数据迁移占用写入较热的兄弟节点。
或者,兄弟节点的节点资源利用情况满足接收待***节点的数据的迁移条件,还可以包括:若待***节点的所有兄弟节点的节点空间利用率平均值未超出第二利用率阈值,则确定兄弟节点满足迁移条件。即是说,可以在B+树创建脚本未执行对B+树的写任务时,通过定时监测B+树的节点资源利用情况,若存在待***节点,不一定待***节点的左右临近兄弟节点满足迁移条件,但所有兄弟节点的节点资源利用率平均值未超出第二利用率阈值,则此时可以对兄弟节点的数据进行逐个迁移,使节点资源利用率较高的节点的数据向节点资源利用率较低的节点迁移,使B+树在未执行写入任务时达到节点资源利用率均衡的效果。
对于S106,若兄弟节点的资源不允许接收待***节点的数据,再允许B+树进行节点分类,此时将不满足迁移条件的信息写入B+树创建脚本,以使B+树创建脚本执行对待***节点的节点***任务。具体的,将不满足迁移条件的信息写入B+树创建脚本,以使B+树创建脚本执行对待***节点的节点***任务,可以包括:将不满足迁移条件的信息写入B+树创建脚本,以调用B+树创建脚本采用节点***算法计算得到待***节点的待迁移数据以及新节点的位置,将待迁移数据迁移至临时存储空间并在创建新节点后将待迁移数据迁移至新节点,而后根据待***节点的首个数据和新节点的首个数据更新父节点。
由于节点资源监控程序监测到B+树满足节点***条件时并不一定是B+树创建脚本执行节点,故将不满足迁移条件的信息写入B+树创建脚本后,若达到B+树创建脚本执行节点***任务的条件,则由B+树创建脚本直接执行节点***任务。
本发明实施例提供的数据存储方法,通过根据所在设备的数据块大小和单位待存储数据的大小确定待创建B+树的阶数以调用B+树创建脚本创建阶数合理的B+树,并通过监控B+树的节点资源利用情况,在B+树满足节点***条件时先查询待***节点的兄弟节点是否满足接收待***节点的数据的迁移条件,如果满足则禁止B+树创建脚本执行节点***任务并将待***节点的数据迁移至兄弟节点,如果不满足才允许B+树执行节点***任务,从而通过延迟B+树的节点***、阻止B+树的不必要节点***,来提高B+树存储的节点资源利用率,进而提高了应用B+树进行数据存储时的存储资源利用率。
下面对本发明实施例三进行说明。
在上述实施例中提到,当有新数据写入B+树时,若待写入节点已满或将满,根据B+树创建脚本的节点***算法,将触发B+树的节点分类。则S104中监测到B+树满足节点***条件,可以包括:监测到调用B+树创建脚本计算得到待写入数据要写入的节点满足节点***条件,确定待写入数据要写入的节点为待***节点。
具体来说,待写入数据要写入的节点满足节点***条件,可以包括:待写入数据要写入的节点的已写入数据的数量为B+树的阶数减一。即是说,在要对B+树写入新数据时,若待写入位置将满,则触发B+树的节点***。
或者,待写入数据要写入的节点满足节点***条件,还包括:待写入数据要写入的节点的已写入数据的数量达到B+树的阶数。即是说,在要对B+树写入新数据时,若待写入位置已满,则触发B+树的节点***。
在对B+树写入数据时触发节点***时,S104中查询待***节点的兄弟节点的节点资源利用情况,可以包括:查询待写入数据在待***节点中待写入位置所处的区域;若待写入位置位于待***节点的左半部分区域,则查询待***节点左侧的兄弟节点的节点资源利用情况;若待写入位置位于待***节点的右半部分区域,则查询待***节点右侧的兄弟节点的节点资源利用情况;兄弟节点的节点资源利用情况满足接收待***节点的数据的迁移条件,包括:右半部分区域所在侧的兄弟节点的节点资源利用情况满足迁移条件。即是说,可以根据待写入数据位于待写入节点的位置来确定查询哪一侧的兄弟节点。其中,通过比较待写入数据与待***节点中间数据的大小,若待写入数据小于待***节点中间数据,则确定待写入数据的待写入位置位于待***节点的左半部分区域,若待写入数据大于待***节点中间数据,则确定待写入数据的待写入位置位于待***节点的右半部分区域。
或者,S104中查询待***节点的兄弟节点的节点资源利用情况,可以包括:查询待写入数据在待***节点中待写入位置所处的区域;若待写入位置位于待***节点的左半部分区域,则查询待***节点左侧的兄弟节点的节点资源利用情况,若左侧的兄弟节点的节点资源利用情况满足迁移条件,则将左侧的兄弟节点的信息和待***节点的信息写入B+树创建脚本;若左侧的兄弟节点的节点资源利用情况不满足迁移条件,则查询待***节点右侧的兄弟节点的节点资源利用情况,若右侧的兄弟节点的节点资源利用情况满足迁移条件,则将右侧的兄弟节点的信息和待***节点的信息写入B+树创建脚本;若待***节点左侧的兄弟节点的节点资源利用情况和待***节点右侧的兄弟节点的节点资源利用情况均不满足迁移条件,则进入将不满足迁移条件的信息写入B+树创建脚本的步骤;若待写入位置位于待***节点的右半部分区域,则查询待***节点右侧的兄弟节点的节点资源利用情况,若右侧的兄弟节点的节点资源利用情况满足迁移条件,则将右侧的兄弟节点的信息和待***节点的信息写入B+树创建脚本;若右侧的兄弟节点的节点资源利用情况不满足迁移条件,则查询待***节点左侧的兄弟节点的节点资源利用情况,若左侧的兄弟节点的节点资源利用情况满足迁移条件,则将左侧的兄弟节点的信息和待***节点的信息写入B+树创建脚本;若待***节点左侧的兄弟节点的节点资源利用情况和待***节点右侧的兄弟节点的节点资源利用情况均不满足迁移条件,则进入将不满足迁移条件的信息写入B+树创建脚本的步骤。即是说,可以根据待写入数据位于待写入节点的位置来确定先查询哪一侧的兄弟节点,如果该侧的兄弟节点不满足迁移条件再查询另一侧的兄弟节点。
下面对本发明实施例四进行说明。
在没有新数据写入B+树时,不会触发B+树创建脚本执行节点***任务,但可能会在下一次有新数据写入B+树时触发节点***任务。故S104中监测到B+树满足节点***条件,可以包括:监测到B+树存在节点资源利用率达到第三利用率阈值的待***节点。
其中,第三利用率阈值可以为75%,或根据调用B+树创建脚本对B+树各叶子节点的写入频率计算得到,使第三利用率阈值与对应叶子节点的写入频率成负相关。
或者,监测到B+树存在节点资源利用率达到第三利用率阈值的待***节点,可以包括:监测到B+树出现已写入数据的数量达到B+树的阶数减一的待***节点。或者,监测到B+树存在节点资源利用率达到第三利用率阈值的待***节点,可以包括:监测到B+树出现已写入数据的数量达到B+树的阶数的待***节点。
基于此,S104中查询待***节点的兄弟节点的节点资源利用情况,可以包括:分别查询待***节点左侧的所有兄弟节点的节点资源分布情况和待***节点右侧的所有兄弟节点的节点资源分布情况;若兄弟节点的节点资源利用情况满足接收待***节点的数据的迁移条件,则将兄弟节点的信息和待***节点的信息写入B+树创建脚本,以调用B+树创建脚本将待***节点的数据迁移至兄弟节点后,根据兄弟节点的数据信息和待***节点的数据信息更新父节点,包括:若存在一侧兄弟节点的节点资源利用情况分布情况满足迁移条件,则采用节点资源均衡算法将待***节点的信息和满足迁移条件的一侧兄弟节点的信息写入B+树创建脚本,以调用B+树创建脚本对待***节点和满足迁移条件的一侧兄弟节点进行节点资源均衡处理。即是说,在没有新数据写入B+树时,通过监测待***节点左右兄弟节点分布情况,确定对待***节点及其左侧的兄弟节点进行迁移还是对待***节点及其右侧的兄弟节点进行迁移。
或者,本发明实施例提供的数据存储方法还可以包括:监测B+树的各叶子节点的节点资源分布情况;采用节点资源均衡算法根据各叶子节点的节点资源分布情况对各叶子节点进行节点资源均衡处理。
即是说,在没有新数据写入B+树,也没有节点符合节点***条件时,可以定时监测B+树的各叶子节点的节点资源分布情况,将节点资源利用率较高的节点的数据迁移至节点资源利用率较低的节点,并在迁移后相应更新父节点直至根节点。
下面对本发明实施例五进行说明。
图2为一种原有B+树***操作示意图;图3为一种原有B+树***操作示意图;图4为本发明实施例提供的一种B+树***操作过程中暂缓***示意图。
在上述实施例的基础上,本发明实施例提供一种在对B+树写入新数据时的数据存储场景进行说明。
在本发明实施例提供的数据存储方法中,S101中根据所在设备的数据块大小和单位待存储数据的大小,计算得到待创建B+树的阶数,可以包括:运行节点资源监控进程,将设备的数据块大小除以单位待存储数据的大小,得到待创建B+树的阶数。
S102中将待创建B+树的阶数写入设备的B+树创建脚本,以调用B+树创建脚本创建用于存储待存储数据的B+树,可以包括:基于节点资源监控进程,将待创建B+树的阶数写入B+树创建进程以将待创建B+树的阶数写入B+树创建脚本,以运行B+树创建进程调用B+树创建脚本创建B+树。
S104中当监测到B+树满足节点***条件时,查询待***节点的兄弟节点的节点资源利用情况,可以包括:监测到调用B+树创建脚本计算得到待写入数据要写入的节点满足节点***条件,确定待写入数据要写入的节点为待***节点;查询与待***节点间隔不超出一个节点的兄弟节点的节点资源利用情况。
S105中若兄弟节点的节点资源利用情况满足接收待***节点的数据的迁移条件,则禁止B+树创建脚本执行节点***任务并将兄弟节点的信息和待***节点的信息写入B+树创建脚本,以调用B+树创建脚本将待***节点的数据迁移至兄弟节点后,根据兄弟节点的数据信息和待***节点的数据信息更新父节点,可以包括:若查询的兄弟节点满足迁移条件,则禁止B+树创建脚本执行节点***任务;确定待***节点的待迁移数据以使迁移后待***节点和迁移到的兄弟节点均不达到节点***条件;将待***节点的标识、迁移到的兄弟节点的标识和待迁移数据的信息写入B+树创建脚本,以调用B+树创建脚本将待迁移数据自待***节点对应的存储位置迁移至兄弟节点对应的存储位置,并根据迁移后待***节点的首个数据和兄弟节点的首个数据更新父节点。
S106中若待***节点的所有兄弟节点的节点资源利用情况均满足迁移条件,则将不满足迁移条件的信息写入B+树创建脚本,以使B+树创建脚本执行对待***节点的节点***任务,可以包括:若查询的兄弟节点均不满足迁移条件,则将不满足迁移条件的信息写入B+树创建脚本,以调用B+树创建脚本采用节点***算法计算得到待***节点的待迁移数据以及新节点的位置,将待迁移数据迁移至临时存储空间并在创建新节点后将待迁移数据迁移至新节点,而后根据待***节点的首个数据和新节点的首个数据更新父节点。
假设计算得到B+树的阶数为6阶,即每个节点最多存储六个数据。在写入新数据之前,假设该6阶B+树的一部分如图2所示,其中节点1为节点2、节点3、节点4的父节点。当需要***新数据8时,如图3所示,该新数据8需要***节点3,按B+树创建脚本的节点***条件需对节点3进行节点***,此时需将原节点3的部分数据(如9、11、12)迁移至临时存储空间后,申请一个新的节点5并进行节点初始化操作,并将9、11、12从临时存储空间迁移至节点5,并需要更新父节点,将节点5的首个数据***父节点,如果需要则进行递归处理直至根节点。可以看到,如果不对B+树创建脚本进行干预,在写入新节点并触发节点***时进行了两次内存拷贝以及一次节点创建操作,且导致极端情况下节点资源利用率可能只有50%,对对宝贵的内存和磁盘空间都很浪费。
而利用本发明实施例提供的数据存储方法,在需要***新数据8时,如图4所示,该新数据8需要***节点3,按B+树创建脚本的节点***条件需对节点3进行节点***,此时先暂缓调用B+树创建脚本对节点3执行节点***任务,由于节点8位于节点3的左半部分区域,则查询节点3左侧的节点2发现节点2满足迁移条件,则可以将数据6自节点3迁移至节点2已写入数据的末位,并将数据8***节点3,此时节点3的首个数据发生变更,故需要更新其父节点。由此只需要进行一次内存拷贝,不需要执行节点创建操作,既加快了数据写入B+树的过程,又节约了节点资源。
应用本发明实施例提供的数据存储方法,通过实现B+树的暂缓***,可以显著提高B+树的节点资源利用率,乃至将B+树的节点资源利用率提升至100%,提高***整体的吞吐量;该方法可以获得高效的元数据访问和增加并发查询的高效性。若不采用本发明上述实施例介绍的节点资源均衡算法,仅通过迁移待***节点的数据至邻近兄弟节点,根据B+树的数据分布规律,改进后节点资源利用率平均可以提升15%,若采用本发明上述实施例介绍的节点资源均衡算法,则可以进一步提高B+树的节点资源利用率。
上文详述了数据存储方法对应的各个实施例,在此基础上,本发明还公开了与上述方法对应的数据存储装置、设备及计算机可读存储介质。
下面对本发明实施例六进行说明。
图5为本发明实施例提供的一种数据存储装置的结构示意图。
如图5所示,本发明实施例提供的数据存储装置包括:
第一计算单元501,用于根据所在设备的数据块大小和单位待存储数据的大小,计算得到待创建B+树的阶数;
第一写单元502,用于将待创建B+树的阶数写入设备的B+树创建脚本,以调用B+树创建脚本创建用于存储待存储数据的B+树;
启动控制单元503,用于启动对B+树的节点资源监控程序;
第一查询单元504,用于当监测到B+树满足节点***条件时,查询待***节点的兄弟节点的节点资源利用情况;
第二写单元505,用于若兄弟节点的节点资源利用情况满足接收待***节点的数据的迁移条件,则禁止B+树创建脚本执行节点***任务并将兄弟节点的信息和待***节点的信息写入B+树创建脚本,以调用B+树创建脚本将待***节点的数据迁移至兄弟节点后,根据兄弟节点的数据信息和待***节点的数据信息更新父节点;若待***节点的所有兄弟节点的节点资源利用情况均满足迁移条件,则将不满足迁移条件的信息写入B+树创建脚本,以使B+树创建脚本执行对待***节点的节点***任务。
在一些实施中,兄弟节点的节点资源利用情况满足接收待***节点的数据的迁移条件,包括:
若兄弟节点为待***节点的相邻节点且兄弟节点的节点资源利用率未达到第一利用率阈值,则确定兄弟节点满足迁移条件。
在另一些实施中,兄弟节点的节点资源利用情况满足接收待***节点的数据的迁移条件,包括:
若兄弟节点与待***节点间隔不超出一个节点且兄弟节点的节点资源利用率未达到第一利用率阈值,则确定兄弟节点满足迁移条件。
在一些实施中,本发明实施例提供的数据存储装置还可以包括:
第二查询单元,用于监测调用B+树创建脚本对B+树各叶子节点的写入频率;
第二计算单元,用于根据写入频率计算得到与叶子节点对应的第一利用率阈值;
其中,第一利用率阈值与写入频率成负相关。
在另一些实施中,兄弟节点的节点资源利用情况满足接收待***节点的数据的迁移条件,包括:
若待***节点的所有兄弟节点的节点空间利用率平均值未超出第二利用率阈值,则确定兄弟节点满足迁移条件。
在一些实施中,监测到B+树满足节点***条件,包括:
监测到调用B+树创建脚本计算得到待写入数据要写入的节点满足节点***条件,确定待写入数据要写入的节点为待***节点。
在一些实施中,待写入数据要写入的节点满足节点***条件,包括:
待写入数据要写入的节点的已写入数据的数量为B+树的阶数减一。
在另一些实施中,待写入数据要写入的节点满足节点***条件,包括:
待写入数据要写入的节点的已写入数据的数量达到B+树的阶数。
在一些实施中,第一查询单元504查询待***节点的兄弟节点的节点资源利用情况,包括:
查询待写入数据在待***节点中待写入位置所处的区域;
若待写入位置位于待***节点的左半部分区域,则查询待***节点左侧的兄弟节点的节点资源利用情况;
若待写入位置位于待***节点的右半部分区域,则查询待***节点右侧的兄弟节点的节点资源利用情况;
兄弟节点的节点资源利用情况满足接收待***节点的数据的迁移条件,包括:
右半部分区域所在侧的兄弟节点的节点资源利用情况满足迁移条件。
在另一些实施中,第一查询单元504查询待***节点的兄弟节点的节点资源利用情况,包括:
查询待写入数据在待***节点中待写入位置所处的区域;
若待写入位置位于待***节点的左半部分区域,则查询待***节点左侧的兄弟节点的节点资源利用情况,若左侧的兄弟节点的节点资源利用情况满足迁移条件,则将左侧的兄弟节点的信息和待***节点的信息写入B+树创建脚本;若左侧的兄弟节点的节点资源利用情况不满足迁移条件,则查询待***节点右侧的兄弟节点的节点资源利用情况,若右侧的兄弟节点的节点资源利用情况满足迁移条件,则将右侧的兄弟节点的信息和待***节点的信息写入B+树创建脚本;若待***节点左侧的兄弟节点的节点资源利用情况和待***节点右侧的兄弟节点的节点资源利用情况均不满足迁移条件,则进入将不满足迁移条件的信息写入B+树创建脚本的步骤;
若待写入位置位于待***节点的右半部分区域,则查询待***节点右侧的兄弟节点的节点资源利用情况,若右侧的兄弟节点的节点资源利用情况满足迁移条件,则将右侧的兄弟节点的信息和待***节点的信息写入B+树创建脚本;若右侧的兄弟节点的节点资源利用情况不满足迁移条件,则查询待***节点左侧的兄弟节点的节点资源利用情况,若左侧的兄弟节点的节点资源利用情况满足迁移条件,则将左侧的兄弟节点的信息和待***节点的信息写入B+树创建脚本;若待***节点左侧的兄弟节点的节点资源利用情况和待***节点右侧的兄弟节点的节点资源利用情况均不满足迁移条件,则进入将不满足迁移条件的信息写入B+树创建脚本的步骤。
在另一些实施中,监测到B+树满足节点***条件,包括:
监测到B+树存在节点资源利用率达到第三利用率阈值的待***节点。
在一些实施中,监测到B+树存在节点资源利用率达到第三利用率阈值的待***节点,包括:
监测到B+树出现已写入数据的数量达到B+树的阶数减一的待***节点。
在另一些实施中,监测到B+树存在节点资源利用率达到第三利用率阈值的待***节点,包括:
监测到B+树出现已写入数据的数量达到B+树的阶数的待***节点。
在一些实施中,查询待***节点的兄弟节点的节点资源利用情况,包括:
分别查询待***节点左侧的所有兄弟节点的节点资源分布情况和待***节点右侧的所有兄弟节点的节点资源分布情况;
若兄弟节点的节点资源利用情况满足接收待***节点的数据的迁移条件,则将兄弟节点的信息和待***节点的信息写入B+树创建脚本,以调用B+树创建脚本将待***节点的数据迁移至兄弟节点后,根据兄弟节点的数据信息和待***节点的数据信息更新父节点,包括:
若存在一侧兄弟节点的节点资源分布情况满足迁移条件,则采用节点资源均衡算法将待***节点的信息和满足迁移条件的一侧兄弟节点的信息写入B+树创建脚本,以调用B+树创建脚本对待***节点和满足迁移条件的一侧兄弟节点进行节点资源均衡处理。
在一些实施中,本发明实施例提供的数据存储装置还包括:
第三查询单元,用于监测B+树的各叶子节点的节点资源分布情况;
均衡处理单元,用于采用节点资源均衡算法根据各叶子节点的节点资源分布情况对各叶子节点进行节点资源均衡处理。
在一些实施中,第二写单元505将兄弟节点的信息和待***节点的信息写入B+树创建脚本,以调用B+树创建脚本将待***节点的数据迁移至兄弟节点后,根据兄弟节点的数据信息和待***节点的数据信息更新父节点,包括:
确定待***节点的待迁移数据以使迁移后待***节点和迁移到的兄弟节点均不达到节点***条件;
将待***节点的标识、迁移到的兄弟节点的标识和待迁移数据的信息写入B+树创建脚本,以调用B+树创建脚本将待迁移数据自待***节点对应的存储位置迁移至兄弟节点对应的存储位置,并根据迁移后待***节点的首个数据和兄弟节点的首个数据更新父节点。
在一些实施中,第二写单元505将不满足迁移条件的信息写入B+树创建脚本,以使B+树创建脚本执行对待***节点的节点***任务,包括:
将不满足迁移条件的信息写入B+树创建脚本,以调用B+树创建脚本采用节点***算法计算得到待***节点的待迁移数据以及新节点的位置,将待迁移数据迁移至临时存储空间并在创建新节点后将待迁移数据迁移至新节点,而后根据待***节点的首个数据和新节点的首个数据更新父节点。
在一些实施中,本发明实施例提供的数据存储装置应用于分布式存储***,待存储数据为元数据,且B+树与分布式存储***的其他数据分离存储。
在一些实施中,第一计算单元501根据所在设备的数据块大小和单位待存储数据的大小,计算得到待创建B+树的阶数,包括:
运行节点资源监控进程,将设备的数据块大小除以单位待存储数据的大小,得到待创建B+树的阶数;
第一写单元502将待创建B+树的阶数写入设备的B+树创建脚本,以调用B+树创建脚本创建用于存储待存储数据的B+树,包括:
基于节点资源监控进程,将待创建B+树的阶数写入B+树创建进程以将待创建B+树的阶数写入B+树创建脚本,以运行B+树创建进程调用B+树创建脚本创建B+树;
第一查询单元504当监测到B+树满足节点***条件时,查询待***节点的兄弟节点的节点资源利用情况,包括:
监测到调用B+树创建脚本计算得到待写入数据要写入的节点满足节点***条件,确定待写入数据要写入的节点为待***节点;
查询与待***节点间隔不超出一个节点的兄弟节点的节点资源利用情况;
第二写单元505若兄弟节点的节点资源利用情况满足接收待***节点的数据的迁移条件,则禁止B+树创建脚本执行节点***任务并将兄弟节点的信息和待***节点的信息写入B+树创建脚本,以调用B+树创建脚本将待***节点的数据迁移至兄弟节点后,根据兄弟节点的数据信息和待***节点的数据信息更新父节点,包括:
若查询的兄弟节点满足迁移条件,则禁止B+树创建脚本执行节点***任务;
确定待***节点的待迁移数据以使迁移后待***节点和迁移到的兄弟节点均不达到节点***条件;
将待***节点的标识、迁移到的兄弟节点的标识和待迁移数据的信息写入B+树创建脚本,以调用B+树创建脚本将待迁移数据自待***节点对应的存储位置迁移至兄弟节点对应的存储位置,并根据迁移后待***节点的首个数据和兄弟节点的首个数据更新父节点;
第二写单元505若待***节点的所有兄弟节点的节点资源利用情况均满足迁移条件,则将不满足迁移条件的信息写入B+树创建脚本,以使B+树创建脚本执行对待***节点的节点***任务,包括:
若查询的兄弟节点均不满足迁移条件,则将不满足迁移条件的信息写入B+树创建脚本,以调用B+树创建脚本采用节点***算法计算得到待***节点的待迁移数据以及新节点的位置,将待迁移数据迁移至临时存储空间并在创建新节点后将待迁移数据迁移至新节点,而后根据待***节点的首个数据和新节点的首个数据更新父节点。
由于装置部分的实施例与方法部分的实施例相互对应,因此装置部分的实施例请参见方法部分的实施例的描述,这里暂不赘述。
下面对本发明实施例七进行说明。
图6为本发明实施例提供的一种数据存储设备的结构示意图。
如图6所示,本发明实施例提供的数据存储设备包括:
存储器610,用于存储计算机程序611;
处理器620,用于执行计算机程序611,该计算机程序611被处理器620执行时实现如上述任意一项实施例所述数据存储方法的步骤。
其中,处理器620可以包括一个或多个处理核心,比如3核心处理器、8核心处理器等。处理器620可以采用数字信号处理DSP(Digital Signal Processing)、现场可编程门阵列FPGA(Field-Programmable Gate Array)、可编程逻辑阵列PLA(Programmable LogicArray)中的至少一种硬件形式来实现。处理器620也可以包括主处理器和协处理器,主处理器是用于对在唤醒状态下的数据进行处理的处理器,也称中央处理器CPU(CentralProcessing Unit);协处理器是用于对在待机状态下的数据进行处理的低功耗处理器。在一些实施例中,处理器620可以集成有图像处理器GPU(Graphics Processing Unit),GPU用于负责显示屏所需要显示的内容的渲染和绘制。一些实施例中,处理器620还可以包括人工智能AI(Artificial Intelligence)处理器,该AI处理器用于处理有关机器学习的计算操作。
存储器610可以包括一个或多个计算机可读存储介质,该计算机可读存储介质可以是非暂态的。存储器610还可包括高速随机存取存储器,以及非易失性存储器,比如一个或多个磁盘存储设备、闪存存储设备。本实施例中,存储器610至少用于存储以下计算机程序611,其中,该计算机程序611被处理器620加载并执行之后,能够实现前述任一实施例公开的数据存储方法中的相关步骤。另外,存储器610所存储的资源还可以包括操作***612和数据613等,存储方式可以是短暂存储或者永久存储。其中,操作***612可以为Windows。数据613可以包括但不限于上述方法所涉及到的数据。
在一些实施例中,数据存储设备还可包括有显示屏630、电源640、通信接口650、输入输出接口660、传感器670以及通信总线680。
本领域技术人员可以理解,图6中示出的结构并不构成对数据存储设备的限定,可以包括比图示更多或更少的组件。
本发明实施例提供的数据存储设备,包括存储器和处理器,处理器在执行存储器存储的程序时,能够实现如上所述的数据存储方法,效果同上。
下面对本发明实施例八进行说明。
需要说明的是,以上所描述的装置、设备实施例仅仅是示意性的,例如,模块的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个模块或组件可以结合或者可以集成到另一个***,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或模块的间接耦合或通信连接,可以是电性,机械或其它的形式。作为分离部件说明的模块可以是或者也可以不是物理上分开的,作为模块显示的部件可以是或者也可以不是物理模块,即可以位于一个地方,或者也可以分布到多个网络模块上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能模块可以集成在一个处理模块中,也可以是各个模块单独物理存在,也可以两个或两个以上模块集成在一个模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。
集成的模块如果以软件功能模块的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,执行本发明各个实施例所述方法的全部或部分步骤。
为此,本发明实施例还提供一种计算机可读存储介质,该计算机可读存储介质上存储有计算机程序,计算机程序被处理器执行时实现如数据存储方法的步骤。
该计算机可读存储介质可以包括:U盘、移动硬盘、只读存储器ROM(Read-OnlyMemory)、随机存取存储器RAM(Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
本实施例中提供的计算机可读存储介质所包含的计算机程序能够在被处理器执行时实现如上所述的数据存储方法的步骤,效果同上。
以上对本发明所提供的一种数据存储方法、装置、设备及计算机可读存储介质进行了详细介绍。说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的装置、设备及计算机可读存储介质而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以对本发明进行若干改进和修饰,这些改进和修饰也落入本发明权利要求的保护范围内。
还需要说明的是,在本说明书中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
Claims (22)
1.一种数据存储方法,其特征在于,包括:
根据所在设备的数据块大小和单位待存储数据的大小,计算得到待创建B+树的阶数;
将所述待创建B+树的阶数写入所述设备的B+树创建脚本,以调用所述B+树创建脚本创建用于存储待存储数据的B+树;
启动对所述B+树的节点资源监控程序;
当监测到所述B+树满足节点***条件时,查询待***节点的兄弟节点的节点资源利用情况;
若所述兄弟节点的节点资源利用情况满足接收所述待***节点的数据的迁移条件,则禁止所述B+树创建脚本执行节点***任务并将所述兄弟节点的信息和所述待***节点的信息写入所述B+树创建脚本,以调用所述B+树创建脚本将所述待***节点的数据迁移至所述兄弟节点后,根据所述兄弟节点的数据信息和所述待***节点的数据信息更新父节点;
若所述待***节点的所有所述兄弟节点的节点资源利用情况均不满足所述迁移条件,则将不满足所述迁移条件的信息写入所述B+树创建脚本,以使所述B+树创建脚本执行对所述待***节点的所述节点***任务;
其中,所述根据所在设备的数据块大小和单位待存储数据的大小,计算得到待创建B+树的阶数,包括:运行节点资源监控进程,将所述设备的数据块大小除以所述单位待存储数据的大小,得到所述待创建B+树的阶数;
监测到所述B+树满足所述节点***条件,包括:当监测到所述B+树创建脚本被调用执行写命令时,检查确定到待写入B+树中的待写入数据的待写入节点满足所述节点***条件;定时监测所述B+树的各叶子节点的节点资源利用情况,监测到存在满足所述节点***条件的所述叶子节点。
2.根据权利要求1所述的数据存储方法,其特征在于,所述兄弟节点的节点资源利用情况满足接收所述待***节点的数据的迁移条件,包括:
若所述兄弟节点为所述待***节点的相邻节点且所述兄弟节点的节点资源利用率未达到第一利用率阈值,则确定所述兄弟节点满足所述迁移条件。
3.根据权利要求1所述的数据存储方法,其特征在于,所述兄弟节点的节点资源利用情况满足接收所述待***节点的数据的迁移条件,包括:
若所述兄弟节点与所述待***节点间隔不超出一个节点且所述兄弟节点的节点资源利用率未达到第一利用率阈值,则确定所述兄弟节点满足所述迁移条件。
4.根据权利要求2或3所述的数据存储方法,其特征在于,还包括:
监测调用所述B+树创建脚本对所述B+树各所述叶子节点的写入频率;
根据所述写入频率计算得到与所述叶子节点对应的所述第一利用率阈值;
其中,所述第一利用率阈值与所述写入频率成负相关。
5.根据权利要求1所述的数据存储方法,其特征在于,所述兄弟节点的节点资源利用情况满足接收所述待***节点的数据的迁移条件,包括:
若所述待***节点的所有所述兄弟节点的节点空间利用率平均值未超出第二利用率阈值,则确定所述兄弟节点满足所述迁移条件。
6.根据权利要求1所述的数据存储方法,其特征在于,所述监测到所述B+树满足节点***条件,包括:
监测到调用所述B+树创建脚本计算得到待写入数据要写入的节点满足所述节点***条件,确定所述待写入数据要写入的节点为所述待***节点。
7.根据权利要求6所述的数据存储方法,其特征在于,所述待写入数据要写入的节点满足所述节点***条件,包括:
所述待写入数据要写入的节点的已写入数据的数量为所述B+树的阶数减一。
8.根据权利要求6所述的数据存储方法,其特征在于,所述待写入数据要写入的节点满足所述节点***条件,包括:
所述待写入数据要写入的节点的已写入数据的数量达到所述B+树的阶数。
9.根据权利要求6所述的数据存储方法,其特征在于,所述查询待***节点的兄弟节点的节点资源利用情况,包括:
查询所述待写入数据在所述待***节点中待写入位置所处的区域;
若所述待写入位置位于所述待***节点的左半部分区域,则查询所述待***节点左侧的所述兄弟节点的节点资源利用情况;
若所述待写入位置位于所述待***节点的右半部分区域,则查询所述待***节点右侧的所述兄弟节点的节点资源利用情况;
所述兄弟节点的节点资源利用情况满足接收所述待***节点的数据的所述迁移条件,包括:
所述右半部分区域所在侧的所述兄弟节点的节点资源利用情况满足所述迁移条件。
10.根据权利要求6所述的数据存储方法,其特征在于,所述查询待***节点的兄弟节点的节点资源利用情况,包括:
查询所述待写入数据在所述待***节点中待写入位置所处的区域;
若所述待写入位置位于所述待***节点的左半部分区域,则查询所述待***节点左侧的所述兄弟节点的节点资源利用情况,若左侧的所述兄弟节点的节点资源利用情况满足所述迁移条件,则将左侧的所述兄弟节点的信息和所述待***节点的信息写入所述B+树创建脚本;若左侧的所述兄弟节点的节点资源利用情况不满足所述迁移条件,则查询所述待***节点右侧的所述兄弟节点的节点资源利用情况,若右侧的所述兄弟节点的节点资源利用情况满足所述迁移条件,则将右侧的所述兄弟节点的信息和所述待***节点的信息写入所述B+树创建脚本;若所述待***节点左侧的所述兄弟节点的节点资源利用情况和所述待***节点右侧的所述兄弟节点的节点资源利用情况均不满足所述迁移条件,则进入所述将不满足所述迁移条件的信息写入所述B+树创建脚本的步骤;
若所述待写入位置位于所述待***节点的右半部分区域,则查询所述待***节点右侧的所述兄弟节点的节点资源利用情况,若右侧的所述兄弟节点的节点资源利用情况满足所述迁移条件,则将右侧的所述兄弟节点的信息和所述待***节点的信息写入所述B+树创建脚本;若右侧的所述兄弟节点的节点资源利用情况不满足所述迁移条件,则查询所述待***节点左侧的所述兄弟节点的节点资源利用情况,若左侧的所述兄弟节点的节点资源利用情况满足所述迁移条件,则将左侧的所述兄弟节点的信息和所述待***节点的信息写入所述B+树创建脚本;若所述待***节点左侧的所述兄弟节点的节点资源利用情况和所述待***节点右侧的所述兄弟节点的节点资源利用情况均不满足所述迁移条件,则进入所述将不满足所述迁移条件的信息写入所述B+树创建脚本的步骤。
11.根据权利要求1所述的数据存储方法,其特征在于,所述监测到所述B+树满足节点***条件,包括:
监测到所述B+树存在节点资源利用率达到第三利用率阈值的所述待***节点。
12.根据权利要求11所述的数据存储方法,其特征在于,所述监测到所述B+树存在节点资源利用率达到第三利用率阈值的所述待***节点,包括:
监测到所述B+树出现已写入数据的数量达到B+树的阶数减一的所述待***节点。
13.根据权利要求11所述的数据存储方法,其特征在于,所述监测到所述B+树存在节点资源利用率达到第三利用率阈值的所述待***节点,包括:
监测到所述B+树出现已写入数据的数量达到B+树的阶数的所述待***节点。
14.根据权利要求11所述的数据存储方法,其特征在于,所述查询待***节点的兄弟节点的节点资源利用情况,包括:
分别查询所述待***节点左侧的所有所述兄弟节点的节点资源分布情况和所述待***节点右侧的所有所述兄弟节点的节点资源分布情况;
所述若所述兄弟节点的节点资源利用情况满足接收所述待***节点的数据的迁移条件,则将所述兄弟节点的信息和所述待***节点的信息写入所述B+树创建脚本,以调用所述B+树创建脚本将所述待***节点的数据迁移至所述兄弟节点后,根据所述兄弟节点的数据信息和所述待***节点的数据信息更新父节点,包括:
若存在一侧所述兄弟节点的节点资源分布情况满足所述迁移条件,则采用节点资源均衡算法将所述待***节点的信息和满足所述迁移条件的一侧所述兄弟节点的信息写入所述B+树创建脚本,以调用所述B+树创建脚本对所述待***节点和满足所述迁移条件的一侧所述兄弟节点进行节点资源均衡处理。
15.根据权利要求1所述的数据存储方法,其特征在于,还包括:
监测所述B+树的各所述叶子节点的节点资源分布情况;
采用节点资源均衡算法根据各所述叶子节点的节点资源分布情况对各所述叶子节点进行节点资源均衡处理。
16.根据权利要求1所述的数据存储方法,其特征在于,所述将所述兄弟节点的信息和所述待***节点的信息写入所述B+树创建脚本,以调用所述B+树创建脚本将所述待***节点的数据迁移至所述兄弟节点后,根据所述兄弟节点的数据信息和所述待***节点的数据信息更新父节点,包括:
确定所述待***节点的待迁移数据以使迁移后所述待***节点和迁移到的所述兄弟节点均不达到所述节点***条件;
将所述待***节点的标识、迁移到的所述兄弟节点的标识和所述待迁移数据的信息写入所述B+树创建脚本,以调用所述B+树创建脚本将所述待迁移数据自所述待***节点对应的存储位置迁移至所述兄弟节点对应的存储位置,并根据迁移后所述待***节点的首个数据和所述兄弟节点的首个数据更新所述父节点。
17.根据权利要求1所述的数据存储方法,其特征在于,所述将不满足所述迁移条件的信息写入所述B+树创建脚本,以使所述B+树创建脚本执行对所述待***节点的所述节点***任务,包括:
将不满足所述迁移条件的信息写入所述B+树创建脚本,以调用所述B+树创建脚本采用节点***算法计算得到所述待***节点的待迁移数据以及新节点的位置,将所述待迁移数据迁移至临时存储空间并在创建所述新节点后将所述待迁移数据迁移至所述新节点,而后根据所述待***节点的首个数据和所述新节点的首个数据更新所述父节点。
18.根据权利要求1所述的数据存储方法,其特征在于,应用于分布式存储***,所述待存储数据为元数据,且所述B+树与所述分布式存储***的其他数据分离存储。
19.根据权利要求1所述的数据存储方法,其特征在于,所述根据所在设备的数据块大小和单位待存储数据的大小,计算得到待创建B+树的阶数,包括:
运行节点资源监控进程,将所述设备的数据块大小除以所述单位待存储数据的大小,得到所述待创建B+树的阶数;
所述将所述待创建B+树的阶数写入所述设备的B+树创建脚本,以调用所述B+树创建脚本创建用于存储待存储数据的B+树,包括:
基于所述节点资源监控进程,将所述待创建B+树的阶数写入B+树创建进程以将所述待创建B+树的阶数写入所述B+树创建脚本,以运行所述B+树创建进程调用所述B+树创建脚本创建所述B+树;
所述当监测到所述B+树满足节点***条件时,查询待***节点的兄弟节点的节点资源利用情况,包括:
监测到调用所述B+树创建脚本计算得到待写入数据要写入的节点满足所述节点***条件,确定所述待写入数据要写入的节点为所述待***节点;
查询与所述待***节点间隔不超出一个节点的所述兄弟节点的节点资源利用情况;
所述若所述兄弟节点的节点资源利用情况满足接收所述待***节点的数据的迁移条件,则禁止所述B+树创建脚本执行节点***任务并将所述兄弟节点的信息和所述待***节点的信息写入所述B+树创建脚本,以调用所述B+树创建脚本将所述待***节点的数据迁移至所述兄弟节点后,根据所述兄弟节点的数据信息和所述待***节点的数据信息更新父节点,包括:
若查询的所述兄弟节点满足所述迁移条件,则禁止所述B+树创建脚本所述执行节点***任务;
确定所述待***节点的待迁移数据以使迁移后所述待***节点和迁移到的所述兄弟节点均不达到所述节点***条件;
将所述待***节点的标识、迁移到的所述兄弟节点的标识和所述待迁移数据的信息写入所述B+树创建脚本,以调用所述B+树创建脚本将所述待迁移数据自所述待***节点对应的存储位置迁移至所述兄弟节点对应的存储位置,并根据迁移后所述待***节点的首个数据和所述兄弟节点的首个数据更新所述父节点;
所述若所述待***节点的所有所述兄弟节点的节点资源利用情况均满足所述迁移条件,则将不满足所述迁移条件的信息写入所述B+树创建脚本,以使所述B+树创建脚本执行对所述待***节点的所述节点***任务,包括:
若查询的所述兄弟节点均不满足所述迁移条件,则将不满足所述迁移条件的信息写入所述B+树创建脚本,以调用所述B+树创建脚本采用节点***算法计算得到所述待***节点的所述待迁移数据以及新节点的位置,将所述待迁移数据迁移至临时存储空间并在创建所述新节点后将所述待迁移数据迁移至所述新节点,而后根据所述待***节点的首个数据和所述新节点的首个数据更新所述父节点。
20.一种数据存储装置,其特征在于,包括:
第一计算单元,用于根据所在设备的数据块大小和单位待存储数据的大小,计算得到待创建B+树的阶数;
第一写单元,用于将所述待创建B+树的阶数写入所述设备的B+树创建脚本,以调用所述B+树创建脚本创建用于存储待存储数据的B+树;
启动控制单元,用于启动对所述B+树的节点资源监控程序;
第一查询单元,用于当监测到所述B+树满足节点***条件时,查询待***节点的兄弟节点的节点资源利用情况;
第二写单元,用于若所述兄弟节点的节点资源利用情况满足接收所述待***节点的数据的迁移条件,则禁止所述B+树创建脚本执行节点***任务并将所述兄弟节点的信息和所述待***节点的信息写入所述B+树创建脚本,以调用所述B+树创建脚本将所述待***节点的数据迁移至所述兄弟节点后,根据所述兄弟节点的数据信息和所述待***节点的数据信息更新父节点;若所述待***节点的所有所述兄弟节点的节点资源利用情况均满足所述迁移条件,则将不满足所述迁移条件的信息写入所述B+树创建脚本,以使所述B+树创建脚本执行对所述待***节点的所述节点***任务;
其中,所述根据所在设备的数据块大小和单位待存储数据的大小,计算得到待创建B+树的阶数,包括:运行节点资源监控进程,将所述设备的数据块大小除以所述单位待存储数据的大小,得到所述待创建B+树的阶数;
监测到所述B+树满足所述节点***条件,包括:当监测到所述B+树创建脚本被调用执行写命令时,检查确定到待写入B+树中的待写入数据的待写入节点满足所述节点***条件;定时监测所述B+树的各叶子节点的节点资源利用情况,监测到存在满足所述节点***条件的所述叶子节点。
21.一种数据存储设备,其特征在于,包括:
存储器,用于存储计算机程序;
处理器,用于执行所述计算机程序,所述计算机程序被所述处理器执行时实现如权利要求1至19任意一项所述数据存储方法的步骤。
22.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1至19任意一项所述数据存储方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311598779.7A CN117312327B (zh) | 2023-11-28 | 2023-11-28 | 一种数据存储方法、装置、设备及计算机可读存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311598779.7A CN117312327B (zh) | 2023-11-28 | 2023-11-28 | 一种数据存储方法、装置、设备及计算机可读存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN117312327A CN117312327A (zh) | 2023-12-29 |
CN117312327B true CN117312327B (zh) | 2024-03-08 |
Family
ID=89255574
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311598779.7A Active CN117312327B (zh) | 2023-11-28 | 2023-11-28 | 一种数据存储方法、装置、设备及计算机可读存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117312327B (zh) |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102402602A (zh) * | 2011-11-18 | 2012-04-04 | 航天科工深圳(集团)有限公司 | 一种实时数据库的b+树索引方法及装置 |
US20200175426A1 (en) * | 2019-07-01 | 2020-06-04 | Alibaba Group Holding Limited | Data-based prediction results using decision forests |
CN116662019A (zh) * | 2023-07-31 | 2023-08-29 | 苏州浪潮智能科技有限公司 | 请求的分配方法、装置、存储介质及电子装置 |
-
2023
- 2023-11-28 CN CN202311598779.7A patent/CN117312327B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102402602A (zh) * | 2011-11-18 | 2012-04-04 | 航天科工深圳(集团)有限公司 | 一种实时数据库的b+树索引方法及装置 |
US20200175426A1 (en) * | 2019-07-01 | 2020-06-04 | Alibaba Group Holding Limited | Data-based prediction results using decision forests |
CN116662019A (zh) * | 2023-07-31 | 2023-08-29 | 苏州浪潮智能科技有限公司 | 请求的分配方法、装置、存储介质及电子装置 |
Also Published As
Publication number | Publication date |
---|---|
CN117312327A (zh) | 2023-12-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109493076B (zh) | 一种Kafka消息唯一消费方法、***、服务器及存储介质 | |
US11442961B2 (en) | Active transaction list synchronization method and apparatus | |
CN111124475B (zh) | 存储管理的方法、电子设备和计算机可读存储介质 | |
WO2012026034A1 (ja) | スケジューラ、マルチコアプロセッサシステムおよびスケジューリング方法 | |
JP6211631B2 (ja) | ボリューム複製を目的としたワークロードの特定およびバッファのサイズ設定 | |
US11366788B2 (en) | Parallel pipelined processing for snapshot data deletion | |
CN104932933A (zh) | 一种获取自旋锁的方法及装置 | |
US8180985B2 (en) | Storage switch, storage system, and data copying method using bitmaps representing different sized regions | |
CN112612799A (zh) | 一种数据同步方法及终端 | |
CN111078628A (zh) | 一种多盘并发数据迁移方法、***、装置及可读存储介质 | |
CN111143113A (zh) | 复制元数据的方法、电子设备和计算机程序产品 | |
US9933953B1 (en) | Managing copy sessions in a data storage system to control resource consumption | |
US20220237016A1 (en) | Apparatus for determining resource migration schedule | |
US20220092083A1 (en) | Asynchronous storage management in a distributed system | |
CN111078119A (zh) | 一种数据重建方法、***、装置及计算机可读存储介质 | |
CN117312327B (zh) | 一种数据存储方法、装置、设备及计算机可读存储介质 | |
US20160103714A1 (en) | System, method of controlling a system including a load balancer and a plurality of apparatuses, and apparatus | |
CN114995770B (zh) | 一种数据处理方法、装置、设备、***及可读存储介质 | |
JP2018132948A (ja) | 読込プログラム、読込方法および情報処理装置 | |
CN107342944B (zh) | 一种id标识分配与持久化方法及*** | |
US10678453B2 (en) | Method and device for checking false sharing in data block deletion using a mapping pointer and weight bits | |
CN109582460A (zh) | 一种Redis内存数据的淘汰方法和装置 | |
CN111737026A (zh) | 一种基于lookup操作的多线程消息处理方法 | |
CN110955644A (zh) | 一种存储***的io控制方法、装置、设备及存储介质 | |
CN104461382A (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 |