CN113703678B - 一种存储桶索引重分裂的方法、装置、设备和介质 - Google Patents
一种存储桶索引重分裂的方法、装置、设备和介质 Download PDFInfo
- Publication number
- CN113703678B CN113703678B CN202110962471.0A CN202110962471A CN113703678B CN 113703678 B CN113703678 B CN 113703678B CN 202110962471 A CN202110962471 A CN 202110962471A CN 113703678 B CN113703678 B CN 113703678B
- Authority
- CN
- China
- Prior art keywords
- index
- fragments
- data
- barrel
- bucket
- 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 42
- 239000012634 fragment Substances 0.000 claims abstract description 196
- 238000004590 computer program Methods 0.000 claims description 12
- 238000005192 partition Methods 0.000 abstract description 9
- 238000011084 recovery Methods 0.000 abstract description 7
- 230000005012 migration Effects 0.000 abstract description 5
- 238000013508 migration Methods 0.000 abstract description 5
- 238000013467 fragmentation Methods 0.000 abstract 2
- 238000006062 fragmentation reaction Methods 0.000 abstract 2
- 238000012545 processing Methods 0.000 description 7
- 238000010586 diagram Methods 0.000 description 4
- 230000000694 effects Effects 0.000 description 4
- 230000008569 process Effects 0.000 description 3
- 238000013473 artificial intelligence Methods 0.000 description 2
- 238000004891 communication Methods 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000000903 blocking effect Effects 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 238000013461 design Methods 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
- 230000007246 mechanism Effects 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
- 238000009877 rendering Methods 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
- 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/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0604—Improving or facilitating administration, e.g. storage management
- G06F3/0607—Improving or facilitating administration, e.g. storage management by facilitating the process of upgrading existing storage systems, e.g. for improving compatibility between host and storage device
-
- 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/0629—Configuration or reconfiguration of storage systems
- G06F3/0631—Configuration or reconfiguration of storage systems by allocating resources to storage systems
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Human Computer Interaction (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请实施例公开了一种存储桶索引重分裂的方法、装置、设备和介质,检测到桶索引分片上的数据量超过预设阈值时,依据桶索引分片上数据的增长量,建立相应个数新的桶索引分片。在接收到数据写入任务时,将数据写入任务对应的对象信息分配至新的桶索引分片中。依据数据的增长量增加相应个数的新的桶索引分片,并且不更改原有的桶索引分片上的对象数据,将新增的对象数据直接写到新增的桶索引分片上。既保证了桶索引分片上的对象数据量不会一直增大,也避免了桶索引分片分裂引发的数据迁移从而阻塞前端业务数据写入。且能够兼顾保证单个桶索引分片上的对象个数,提高了故障恢复的重构速度。随着对象个数的增多,可以对桶索引分片进行无限扩展。
Description
技术领域
本申请涉及数据存储技术领域,特别是涉及一种存储桶索引重分裂的方法、装置、设备和计算机可读存储介质。
背景技术
在大数据时代,对象存储服务(Object Storage Service,OSS)是一种新兴的海量、安全、低成本、高可靠的云存储服务,适合存放非结构化的数据,例如:视频,图片,文档等。
对于对象存储,数据都存储在存储桶这种逻辑结构中,用以隔离对象。存储桶索引会记录桶内对象的信息,用以快速查找到对象和列举(list)桶内对象。存储桶索引分片默认为128分片,将桶内对象的属性信息均匀的以键值对组织(omap)的形式记录到128个分片上,这样可以使得每个分片上的omap不至于过大。
但是随着单桶数据量逐渐增多,每个分片上的对象记录也会越来越多,omap也会越来越大。桶索引分片上记录的omap越大,对于重构和桶list操作都是一种很大的压力,导致故障恢复的重构速度较慢。业界的做法是采用桶索引分片自动分裂的方式,当单个桶索引分片上的对象达到10万时,桶索引分片会由原来的128分裂到256个,桶索引分片上的对象重新进行分配,使得每个桶索引分片在5万左右,以此来保证桶索引分片上的对象记录不会很多。但是该方法有一个问题是:桶索引分片自动分裂和对象记录重分配的过程中,因为会对桶索引分片加锁,所以会影响前端的业务写入。
可见,如何在保证对象顺利写入桶索引分片的同时降低对前端写入业务的影响,是本领域技术人员需要解决的问题。
发明内容
本申请实施例的目的是提供一种存储桶索引重分裂的方法、装置、设备和计算机可读存储介质,可以在保证对象顺利写入桶索引分片的同时降低对前端写入业务的影响。
为解决上述技术问题,本申请实施例提供一种存储桶索引重分裂的方法,包括:
检测到桶索引分片上的数据量超过预设阈值时,依据桶索引分片上数据的增长量,建立相应个数新的桶索引分片;
在接收到数据写入任务时,将所述数据写入任务对应的对象信息分配至所述新的桶索引分片中。
可选地,所述依据桶索引分片上数据的增长量,建立相应个数新的桶索引分片包括:
查询预先建立的桶索引分片个数与数据增长范围的对应关系列表,确定出与所述桶索引分片上数据的增长量相匹配的目标桶索引分片个数;
基于所述目标桶索引分片个数创建新的桶索引分片。
可选地,所述依据桶索引分片上数据的增长量,建立相应个数新的桶索引分片包括:
计算所述桶索引分片上数据的增长量与预设增长值的比值;
基于所述比值以及原有的桶索引分片个数,确定出新建通索引分片的个数;
基于所述新建通索引分片的个数创建新的桶索引分片。
可选地,所述基于所述比值以及原有的桶索引分片个数,确定出新建通索引分片的个数包括:
在所述比值超过预设下限值时,则将所述原有的桶索引分片个数作为新建通索引分片的个数;
在所述比值未超过预设下限值时,则将所述比值与所述原有的桶索引分片个数的乘积值作为新建通索引分片的个数。
可选地,还包括:
在所述比值超过预设上限值时,则将所述原有的桶索引分片个数的N倍作为新建通索引分片的个数;其中,N的取值依据所述比值设置;所述预设上限值的取值大于所述预设下限值的取值。
可选地,所述在接收到数据写入任务时,将所述数据写入任务对应的对象信息分配至所述新的桶索引分片中包括:
利用哈希运算,将所述数据写入任务对应的对象信息均匀分配至所述新的桶索引分片中。
本申请实施例还提供了一种存储桶索引重分裂的装置,包括建立单元和分配单元;
所述建立单元,用于检测到桶索引分片上的数据量超过预设阈值时,依据桶索引分片上数据的增长量,建立相应个数新的桶索引分片;
所述分配单元,用于在接收到数据写入任务时,将所述数据写入任务对应的对象信息分配至所述新的桶索引分片中。
可选地,所述建立单元包括查询子单元和创建子单元;
所述查询子单元,用于查询预先建立的桶索引分片个数与数据增长范围的对应关系列表,确定出与所述桶索引分片上数据的增长量相匹配的目标桶索引分片个数;
所述创建子单元,用于基于所述目标桶索引分片个数创建新的桶索引分片。
可选地,所述建立单元包括计算子单元、确定子单元和创建子单元;
所述计算子单元,用于计算所述桶索引分片上数据的增长量与预设增长值的比值;
所述确定子单元,用于基于所述比值以及原有的桶索引分片个数,确定出新建通索引分片的个数;
所述创建子单元,用于基于所述新建通索引分片的个数创建新的桶索引分片。
可选地,所述确定子单元用于在所述比值超过预设下限值时,则将所述原有的桶索引分片个数作为新建通索引分片的个数;在所述比值未超过预设下限值时,则将所述比值与所述原有的桶索引分片个数的乘积值作为新建通索引分片的个数。
可选地,还包括作为单元;
所述作为单元,用于在所述比值超过预设上限值时,则将所述原有的桶索引分片个数的N倍作为新建通索引分片的个数;其中,N的取值依据所述比值设置;所述预设上限值的取值大于所述预设下限值的取值。
可选地,所述分配单元用于利用哈希运算,将所述数据写入任务对应的对象信息均匀分配至所述新的桶索引分片中。
本申请实施例还提供了一种存储桶索引重分裂的设备,包括:
存储器,用于存储计算机程序;
处理器,用于执行所述计算机程序以实现如上述任意一项所述存储桶索引重分裂的方法的步骤。
本申请实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如上述任意一项所述存储桶索引重分裂的方法的步骤。
由上述技术方案可以看出,检测到桶索引分片上的数据量超过预设阈值时,依据桶索引分片上数据的增长量,建立相应个数新的桶索引分片。通过依据数据的增长量建立新的桶索引分片,可以较好的满足当前写入任务的需求。在接收到数据写入任务时,将数据写入任务对应的对象信息分配至新的桶索引分片中。在该技术方案中,不再盲目将桶索引分片个数增加以达到桶索引分片上的对象数据重分布的效果,而是依据数据的增长量增加相应个数的新的桶索引分片,并且不更改原有的桶索引分片上的对象数据,将新增的对象数据直接写到新增的桶索引分片上。通过这种方法,既保证了桶索引分片上的对象数据量不会一直增大,也避免了桶索引分片分裂引发的数据迁移从而阻塞前端业务数据写入的问题发生。且能够兼顾保证单个桶索引分片上的对象个数,提高了故障恢复的重构速度。并且能随着对象个数的增多,可以对桶索引分片进行无限扩展。
附图说明
为了更清楚地说明本申请实施例,下面将对实施例中所需要使用的附图做简单的介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本申请实施例提供的一种存储桶索引重分裂的方法的流程图;
图2为本申请实施例提供的一种存储桶索引重分裂的装置的结构示意图;
图3为本申请实施例提供的一种存储桶索引重分裂的设备的结构示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下,所获得的所有其他实施例,都属于本申请保护范围。
本申请的说明书和权利要求书及上述附图中的术语“包括”和“具有”以及他们任何变形,意图在于覆盖不排他的包含。例如包含了一系列步骤或单元的过程、方法、系统、产品或设备没有限定于已列出的步骤或单元,而是可包括没有列出的步骤或单元。
为了使本技术领域的人员更好地理解本申请方案,下面结合附图和具体实施方式对本申请作进一步的详细说明。
接下来,详细介绍本申请实施例所提供的一种存储桶索引重分裂的方法。图1为本申请实施例提供的一种存储桶索引重分裂的方法的流程图,该方法包括:
S101:检测到桶索引分片上的数据量超过预设阈值时,依据桶索引分片上数据的增长量,建立相应个数新的桶索引分片。
在本申请实施例中,为了避免单个桶索引分片上存储的对象数据太多,影响故障恢复的重构速度,可以对单个桶索引分片上的数据量即对象个数设置对应的阈值。
对象数据可以是具体数据的描述信息,可以包括具体数据存储的位置信息等,依据对象数据可以读取到具体数据。
在实际应用中,可以按照平均分配的方式分配对象数据,从而使得每个桶索引分片上的数据量近乎相等。在具体实现中既可以对所有桶索引分片上的数据量进行检测,也可以只对任意一个或多个桶索引分片上的数据量进行检测,在此不做限定。
当桶索引分片上的数据量超过预设阈值时,说明桶索引分片上记录的对象数据已经足够多,为了控制桶索引分片上的数据量,可以建立新的桶索引分片,新接收到对象数据直接存储至新的桶索引分片上,不再继续向原有的桶索引分片存储对象数据。
预设阈值的取值可以根据实际需求设置,例如,预设阈值可以设置为10万。当桶索引分片上的对象个数超过10万时,则可以建立新的桶索引分片。
在本申请实施例中,为了使得新建立的桶索引分片的个数更加符合当前的业务需求,可以依据桶索引分片上数据的增长量,确定所需建立的桶索引分片的个数。
桶索引分片上数据的增长量可以是单位时间内桶索引分片上增加的对象个数。在具体实现中,可以记录预设的时间段内桶索引分片上新添加的对象个数,将该对象个数除以该时间段,可以得到单位时间内桶索引分片上增加的对象个数。
S102:在接收到数据写入任务时,将数据写入任务对应的对象信息分配至新的桶索引分片中。
在建立新的桶索引分片之后,为了避免系统将原有的桶索引分片上存储的对象数据向当前所有的桶索引分片进行重新分配,可以设置写入机制,将新接收的数据写入任务对应的对象信息分配至新的桶索引分片上,不再对原有的桶索引分片分配对象数据。
在具体实现中,可以通过哈希运算的方式,将对象数据均匀的分布到新的桶索引分片上。
需要说明的是,对于桶索引分片上的对象数据执行读操作、删操作、修改操作或list操作时依旧按照原来的流程进行即可。
由上述技术方案可以看出,检测到桶索引分片上的数据量超过预设阈值时,依据桶索引分片上数据的增长量,建立相应个数新的桶索引分片。通过依据数据的增长量建立新的桶索引分片,可以较好的满足当前写入任务的需求。在接收到数据写入任务时,将数据写入任务对应的对象信息分配至新的桶索引分片中。在该技术方案中,不再盲目将桶索引分片个数增加以达到桶索引分片上的对象数据重分布的效果,而是依据数据的增长量增加相应个数的新的桶索引分片,并且不更改原有的桶索引分片上的对象数据,将新增的对象数据直接写到新增的桶索引分片上。通过这种方法,既保证了桶索引分片上的对象数据量不会一直增大,也避免了桶索引分片分裂引发的数据迁移从而阻塞前端业务数据写入的问题发生。且能够兼顾保证单个桶索引分片上的对象个数,提高了故障恢复的重构速度。并且能随着对象个数的增多,可以对桶索引分片进行无限扩展。
在具体实现中,可以按照成倍增长的方式建立新的桶索引分片。初始状态下,桶索引分片一般默认为128个分片,当原有的桶索引分片上的数据量超过预设阈值时,可以新建立128个桶索引分片,此时系统一共有256个桶索引分片。当下一次需要新建桶索引分片时,可以直接新建256个桶索引分片。以此类推,随着需求的增加可以不断的新建桶索引分片。
举例说明,桶索引分片对象为:bucket_index.0,bucket_index.1…bucket_index.127。记录当前存储桶的桶索引分片的标识依次为0至127。对象信息会通过哈希计算,均匀的分布到每一个桶索引分片上。当桶内索引分片上的对象超过10万时,可以新建等量的桶索引分片:bucket_index.128,bucket_index.129…bucket_index.255,同时记录存储桶的当前桶索引分片的标识依次为128至255。原有桶索引分片上的对象信息不迁移到新增的桶索引分片上去,新写入的对象数据在新的桶索引分片上。
通过将新接收的对象数据记录到新增的桶索引分片上,不再进行原有桶索引分片上的对象数据重新分布操作,避免了因重新分布操作导致阻塞前端业务对象写入的问题。并且能够兼顾保证单个桶索引分片上的对象个数,提高故障恢复的重构速度。
在本申请实施例中,除了按照成倍增长的方式建立桶索引分片外,也可以预先建立桶索引分片个数与数据增长范围的对应关系列表。通过查询预先建立的桶索引分片个数与数据增长范围的对应关系列表,可以确定出与桶索引分片上数据的增长量相匹配的目标桶索引分片个数,从而基于目标桶索引分片个数创建新的桶索引分片。
或者是计算桶索引分片上数据的增长量与预设增长值的比值;基于比值以及原有的桶索引分片个数,确定出新建通索引分片的个数,从而基于新建通索引分片的个数创建新的桶索引分片。
在本申请实施例中,可以将比值与原有的桶索引分片个数相乘的乘积值作为新建通索引分片的个数。也可以设置下限值和上限值,对该比值进行评估,基于比值与下限值以及上限值之间的关系,确定出新建通索引分片的个数。
在实际应用中,可以在比值超过预设下限值时,则将原有的桶索引分片个数作为新建通索引分片的个数;在比值未超过预设下限值时,则将比值与原有的桶索引分片个数的乘积值作为新建通索引分片的个数。
在比值超过预设下限值时,除了将原有的桶索引分片个数作为新建通索引分片的个数之外,也可以进一步判断比值是否超过预设上限值。预设上限值的取值大于预设下限值的取值。
在比值超过预设上限值时,可以将原有的桶索引分片个数的N倍作为新建通索引分片的个数。
其中,N的取值可以依据比值设置。当比值的取值较高时,N的取值可以设置的大些;当比值的取值较低时,N的取值可以设置的小些。举例说明,当比值超过2时,N可以设置为2。当比值未超过2时,N可以设置为1。
在本申请实施例中,通过基于桶索引分片上数据的增长量,确定所需新建的桶索引分片的个数,使得新建的桶索引分片可以更好的满足当前的业务需求,避免对象数据写入拥塞。
图2为本申请实施例提供的一种存储桶索引重分裂的装置的结构示意图,包括建立单元21和分配单元22;
建立单元21,用于检测到桶索引分片上的数据量超过预设阈值时,依据桶索引分片上数据的增长量,建立相应个数新的桶索引分片;
分配单元22,用于在接收到数据写入任务时,将数据写入任务对应的对象信息分配至新的桶索引分片中。
可选地,建立单元包括查询子单元和创建子单元;
查询子单元,用于查询预先建立的桶索引分片个数与数据增长范围的对应关系列表,确定出与桶索引分片上数据的增长量相匹配的目标桶索引分片个数;
创建子单元,用于基于目标桶索引分片个数创建新的桶索引分片。
可选地,建立单元包括计算子单元、确定子单元和创建子单元;
计算子单元,用于计算桶索引分片上数据的增长量与预设增长值的比值;
确定子单元,用于基于比值以及原有的桶索引分片个数,确定出新建通索引分片的个数;
创建子单元,用于基于新建通索引分片的个数创建新的桶索引分片。
可选地,确定子单元用于在比值超过预设下限值时,则将原有的桶索引分片个数作为新建通索引分片的个数;在比值未超过预设下限值时,则将比值与原有的桶索引分片个数的乘积值作为新建通索引分片的个数。
可选地,还包括作为单元;
作为单元,用于在比值超过预设上限值时,则将原有的桶索引分片个数的N倍作为新建通索引分片的个数;其中,N的取值依据比值设置;预设上限值的取值大于预设下限值的取值。
可选地,分配单元用于利用哈希运算,将数据写入任务对应的对象信息均匀分配至新的桶索引分片中。
图2所对应实施例中特征的说明可以参见图1所对应实施例的相关说明,这里不再一一赘述。
由上述技术方案可以看出,检测到桶索引分片上的数据量超过预设阈值时,依据桶索引分片上数据的增长量,建立相应个数新的桶索引分片。通过依据数据的增长量建立新的桶索引分片,可以较好的满足当前写入任务的需求。在接收到数据写入任务时,将数据写入任务对应的对象信息分配至新的桶索引分片中。在该技术方案中,不再盲目将桶索引分片个数增加以达到桶索引分片上的对象数据重分布的效果,而是依据数据的增长量增加相应个数的新的桶索引分片,并且不更改原有的桶索引分片上的对象数据,将新增的对象数据直接写到新增的桶索引分片上。通过这种方法,既保证了桶索引分片上的对象数据量不会一直增大,也避免了桶索引分片分裂引发的数据迁移从而阻塞前端业务数据写入的问题发生。且能够兼顾保证单个桶索引分片上的对象个数,提高了故障恢复的重构速度。并且能随着对象个数的增多,可以对桶索引分片进行无限扩展。
图3为本申请另一实施例提供的存储桶索引重分裂的设备的结构图,如图3所示,存储桶索引重分裂的设备包括:存储器20,用于存储计算机程序;
处理器21,用于执行计算机程序时实现如上述实施例检测到桶索引分片上的数据量超过预设阈值时,依据桶索引分片上数据的增长量,建立相应个数新的桶索引分片;在接收到数据写入任务时,将所述数据写入任务对应的对象信息分配至所述新的桶索引分片中的方法的步骤。
本实施例提供的存储桶索引重分裂的设备可以包括但不限于智能手机、平板电脑、笔记本电脑或台式电脑等。
其中,处理器21可以包括一个或多个处理核心,比如4核心处理器、8核心处理器等。处理器21可以采用DSP(Digital Signal Processing,数字信号处理)、FPGA(Field-Programmable Gate Array,现场可编程门阵列)、PLA(Programmable Logic Array,可编程逻辑阵列)中的至少一种硬件形式来实现。处理器21也可以包括主处理器和协处理器,主处理器是用于对在唤醒状态下的数据进行处理的处理器,也称CPU(Central ProcessingUnit,中央处理器);协处理器是用于对在待机状态下的数据进行处理的低功耗处理器。在一些实施例中,处理器21可以在集成有GPU(Graphics Processing Unit,图像处理器),GPU用于负责显示屏所需要显示的内容的渲染和绘制。一些实施例中,处理器21还可以包括AI(Artificial Intelligence,人工智能)处理器,该AI处理器用于处理有关机器学习的计算操作。
存储器20可以包括一个或多个计算机可读存储介质,该计算机可读存储介质可以是非暂态的。存储器20还可包括高速随机存取存储器,以及非易失性存储器,比如一个或多个磁盘存储设备、闪存存储设备。本实施例中,存储器20至少用于存储以下计算机程序201,其中,该计算机程序被处理器21加载并执行之后,能够实现前述任一实施例公开的存储桶索引重分裂的方法的相关步骤。另外,存储器20所存储的资源还可以包括操作系统202和数据203等,存储方式可以是短暂存储或者永久存储。其中,操作系统202可以包括Windows、Unix、Linux等。数据203可以包括但不限于对象信息、预设阈值等。
在一些实施例中,存储桶索引重分裂的设备还可包括有显示屏22、输入输出接口23、通信接口24、电源25以及通信总线26。
本领域技术人员可以理解,图3中示出的结构并不构成对存储桶索引重分裂的设备的限定,可以包括比图示更多或更少的组件。
由上述技术方案可以看出,检测到桶索引分片上的数据量超过预设阈值时,依据桶索引分片上数据的增长量,建立相应个数新的桶索引分片。通过依据数据的增长量建立新的桶索引分片,可以较好的满足当前写入任务的需求。在接收到数据写入任务时,将数据写入任务对应的对象信息分配至新的桶索引分片中。在该技术方案中,不再盲目将桶索引分片个数增加以达到桶索引分片上的对象数据重分布的效果,而是依据数据的增长量增加相应个数的新的桶索引分片,并且不更改原有的桶索引分片上的对象数据,将新增的对象数据直接写到新增的桶索引分片上。通过这种方法,既保证了桶索引分片上的对象数据量不会一直增大,也避免了桶索引分片分裂引发的数据迁移从而阻塞前端业务数据写入的问题发生。且能够兼顾保证单个桶索引分片上的对象个数,提高了故障恢复的重构速度。并且能随着对象个数的增多,可以对桶索引分片进行无限扩展。
可以理解的是,如果上述实施例中的存储桶索引重分裂的方法以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,执行本申请各个实施例方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(Read-Only Memory,ROM)、随机存取存储器(Random Access Memory,RAM)、电可擦除可编程ROM、寄存器、硬盘、可移动磁盘、CD-ROM、磁碟或者光盘等各种可以存储程序代码的介质。
基于此,本发明实施例还提供了一种计算机可读存储介质,计算机可读存储介质上存储有计算机程序,计算机程序被处理器执行时实现如上述任意一项存储桶索引重分裂的方法的步骤。
本发明实施例所述计算机可读存储介质的各功能模块的功能可根据上述方法实施例中的方法具体实现,其具体实现过程可以参照上述方法实施例的相关描述,此处不再赘述。
以上对本申请实施例所提供的一种存储桶索引重分裂的方法、装置、设备和计算机可读存储介质进行了详细介绍。说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。
专业人员还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
以上对本申请所提供的一种存储桶索引重分裂的方法、装置、设备和计算机可读存储介质进行了详细介绍。本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想。应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以对本申请进行若干改进和修饰,这些改进和修饰也落入本申请权利要求的保护范围内。
Claims (7)
1.一种存储桶索引重分裂的方法,其特征在于,包括:
检测到桶索引分片上的数据量超过预设阈值时,依据桶索引分片上数据的增长量,建立相应个数新的桶索引分片;
在接收到数据写入任务时,将所述数据写入任务对应的对象信息分配至所述新的桶索引分片中;
所述依据桶索引分片上数据的增长量,建立相应个数新的桶索引分片包括:计算所述桶索引分片上数据的增长量与预设增长值的比值;基于所述比值以及原有的桶索引分片个数,确定出新建通索引分片的个数;基于所述新建通索引分片的个数创建新的桶索引分片;
所述基于所述比值以及原有的桶索引分片个数,确定出新建通索引分片的个数包括:在所述比值超过预设下限值时,则将所述原有的桶索引分片个数作为新建通索引分片的个数;在所述比值未超过预设下限值时,则将所述比值与所述原有的桶索引分片个数的乘积值作为新建通索引分片的个数;
在所述比值超过预设上限值时,则将所述原有的桶索引分片个数的N倍作为新建通索引分片的个数;其中,N的取值依据所述比值设置;所述预设上限值的取值大于所述预设下限值的取值。
2.根据权利要求1所述的存储桶索引重分裂的方法,其特征在于,所述依据桶索引分片上数据的增长量,建立相应个数新的桶索引分片包括:
查询预先建立的桶索引分片个数与数据增长范围的对应关系列表,确定出与所述桶索引分片上数据的增长量相匹配的目标桶索引分片个数;
基于所述目标桶索引分片个数创建新的桶索引分片。
3.根据权利要求1至2任意一项所述的存储桶索引重分裂的方法,其特征在于,所述在接收到数据写入任务时,将所述数据写入任务对应的对象信息分配至所述新的桶索引分片中包括:
利用哈希运算,将所述数据写入任务对应的对象信息均匀分配至所述新的桶索引分片中。
4.一种存储桶索引重分裂的装置,其特征在于,包括建立单元和分配单元;
所述建立单元,用于检测到桶索引分片上的数据量超过预设阈值时,依据桶索引分片上数据的增长量,建立相应个数新的桶索引分片;
所述分配单元,用于在接收到数据写入任务时,将所述数据写入任务对应的对象信息分配至所述新的桶索引分片中;
所述建立单元包括计算子单元、确定子单元和创建子单元;
所述计算子单元,用于计算所述桶索引分片上数据的增长量与预设增长值的比值;
所述确定子单元,用于基于所述比值以及原有的桶索引分片个数,确定出新建通索引分片的个数;
所述创建子单元,用于基于所述新建通索引分片的个数创建新的桶索引分片;
所述确定子单元用于在所述比值超过预设下限值时,则将所述原有的桶索引分片个数作为新建通索引分片的个数;在所述比值未超过预设下限值时,则将所述比值与所述原有的桶索引分片个数的乘积值作为新建通索引分片的个数;
还包括作为单元;所述作为单元,用于在所述比值超过预设上限值时,则将所述原有的桶索引分片个数的N倍作为新建通索引分片的个数;其中,N的取值依据所述比值设置;所述预设上限值的取值大于所述预设下限值的取值。
5.根据权利要求4所述的存储桶索引重分裂的装置,其特征在于,所述建立单元包括查询子单元和创建子单元;
所述查询子单元,用于查询预先建立的桶索引分片个数与数据增长范围的对应关系列表,确定出与所述桶索引分片上数据的增长量相匹配的目标桶索引分片个数;
所述创建子单元,用于基于所述目标桶索引分片个数创建新的桶索引分片。
6.一种存储桶索引重分裂的设备,其特征在于,包括:
存储器,用于存储计算机程序;
处理器,用于执行所述计算机程序以实现如权利要求1至3任意一项所述存储桶索引重分裂的方法的步骤。
7.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如权利要求1至3任意一项所述存储桶索引重分裂的方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110962471.0A CN113703678B (zh) | 2021-08-20 | 2021-08-20 | 一种存储桶索引重分裂的方法、装置、设备和介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110962471.0A CN113703678B (zh) | 2021-08-20 | 2021-08-20 | 一种存储桶索引重分裂的方法、装置、设备和介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113703678A CN113703678A (zh) | 2021-11-26 |
CN113703678B true CN113703678B (zh) | 2023-12-22 |
Family
ID=78653936
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110962471.0A Active CN113703678B (zh) | 2021-08-20 | 2021-08-20 | 一种存储桶索引重分裂的方法、装置、设备和介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113703678B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117407361B (zh) * | 2023-12-13 | 2024-03-22 | 镕铭微电子(济南)有限公司 | 数据管理方法、装置、系统、服务器及存储介质 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102483754A (zh) * | 2009-06-26 | 2012-05-30 | 森普利维蒂公司 | 在非均匀存取存储器中的可扩展编制索引 |
US10198317B1 (en) * | 2014-11-17 | 2019-02-05 | Amazon Technologies Inc. | Computation refinement in a data storage system |
CN111881133A (zh) * | 2020-07-24 | 2020-11-03 | 苏州浪潮智能科技有限公司 | 存储桶管理方法、装置、计算机设备及可读存储介质 |
CN112612419A (zh) * | 2020-12-25 | 2021-04-06 | 西安交通大学 | Nvm的数据存储结构、存储方法、读取方法、设备及介质 |
CN112783835A (zh) * | 2021-03-11 | 2021-05-11 | 百果园技术(新加坡)有限公司 | 索引管理方法、装置及电子设备 |
CN113010526A (zh) * | 2021-04-19 | 2021-06-22 | 星辰天合(北京)数据科技有限公司 | 基于对象存储服务的存储方法及装置 |
CN113064859A (zh) * | 2021-03-26 | 2021-07-02 | 山东英信计算机技术有限公司 | 一种元数据处理方法、装置及电子设备和存储介质 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9639481B2 (en) * | 2014-08-08 | 2017-05-02 | PernixData, Inc. | Systems and methods to manage cache data storage in working memory of computing system |
CN113111033A (zh) * | 2021-04-07 | 2021-07-13 | 山东英信计算机技术有限公司 | 一种分布式对象存储系统中桶索引动态重分的方法和系统 |
-
2021
- 2021-08-20 CN CN202110962471.0A patent/CN113703678B/zh active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102483754A (zh) * | 2009-06-26 | 2012-05-30 | 森普利维蒂公司 | 在非均匀存取存储器中的可扩展编制索引 |
US10198317B1 (en) * | 2014-11-17 | 2019-02-05 | Amazon Technologies Inc. | Computation refinement in a data storage system |
CN111881133A (zh) * | 2020-07-24 | 2020-11-03 | 苏州浪潮智能科技有限公司 | 存储桶管理方法、装置、计算机设备及可读存储介质 |
CN112612419A (zh) * | 2020-12-25 | 2021-04-06 | 西安交通大学 | Nvm的数据存储结构、存储方法、读取方法、设备及介质 |
CN112783835A (zh) * | 2021-03-11 | 2021-05-11 | 百果园技术(新加坡)有限公司 | 索引管理方法、装置及电子设备 |
CN113064859A (zh) * | 2021-03-26 | 2021-07-02 | 山东英信计算机技术有限公司 | 一种元数据处理方法、装置及电子设备和存储介质 |
CN113010526A (zh) * | 2021-04-19 | 2021-06-22 | 星辰天合(北京)数据科技有限公司 | 基于对象存储服务的存储方法及装置 |
Non-Patent Citations (2)
Title |
---|
基于最佳桶划分策略的密文索引技术;王迪;刘国华;于醒兵;;小型微型计算机系统(第04期);全文 * |
数据安全存储的分片策略模型研究;张洪;路松峰;赵友桥;胥永康;胡和平;;计算机工程与应用(第18期);全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN113703678A (zh) | 2021-11-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
WO2022062537A1 (zh) | 数据压缩方法、装置及计算机可读存储介质 | |
CN111159436B (zh) | 一种推荐多媒体内容的方法、装置及计算设备 | |
CN109375985B (zh) | 内存动态管理方法及装置 | |
CN113886331B (zh) | 分布式对象存储方法、装置、电子设备及可读存储介质 | |
KR20160132432A (ko) | 멀티 프로세스 애플리케이션들을 위한 동적 자원 관리 | |
CN110389905B (zh) | 资源释放方法、资源分配方法、设备和计算机程序产品 | |
CN110661824B (zh) | 分布式集群中服务器的流量调控方法及存储介质 | |
US10956062B2 (en) | Aggregating separate data within a single data log wherein single data log is divided in a plurality of blocks assigned to plurality of different streams | |
EP3531264A1 (en) | Data storage, reading, and cleansing method and device, and cloud storage system | |
CN111142788A (zh) | 一种数据迁移方法、装置和计算机可读存储介质 | |
CN113703678B (zh) | 一种存储桶索引重分裂的方法、装置、设备和介质 | |
CN116680060B (zh) | 面向异构计算系统的任务分配方法、装置、设备和介质 | |
CN110674064B (zh) | 一种数据传输方法、装置、设备及计算机可读存储介质 | |
CN115599300A (zh) | 一种任务分配方法、装置、设备及介质 | |
CN111124282A (zh) | 一种对象存储系统中的存储方法、存储装置及存储设备 | |
CN117369731B (zh) | 一种数据的缩减处理方法、装置、设备及介质 | |
CN109299043A (zh) | 分布式集群系统大文件删除方法、装置、设备及存储介质 | |
CN111694505A (zh) | 数据存储管理方法、装置和计算机可读存储介质 | |
CN112905119B (zh) | 一种分布式存储系统的数据写入控制方法、装置及设备 | |
CN115016735A (zh) | 一种分布式缓存系统的控制方法、装置及介质 | |
CN111966301B (zh) | 分布式对象存储系统的迁移速度控制方法、装置及介质 | |
CN110083309B (zh) | 共享数据块处理方法、系统及可读存储介质 | |
CN112269535A (zh) | 存储系统的空间资源分配方法、装置及可读存储介质 | |
CN113032369A (zh) | 一种数据迁移方法、装置及介质 | |
CN110955644A (zh) | 一种存储系统的io控制方法、装置、设备及存储介质 |
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 |