CN111857890B - 一种业务处理方法、***、设备以及介质 - Google Patents
一种业务处理方法、***、设备以及介质 Download PDFInfo
- Publication number
- CN111857890B CN111857890B CN202010724257.7A CN202010724257A CN111857890B CN 111857890 B CN111857890 B CN 111857890B CN 202010724257 A CN202010724257 A CN 202010724257A CN 111857890 B CN111857890 B CN 111857890B
- Authority
- CN
- China
- Prior art keywords
- objects
- index
- quantity parameter
- matrix
- fragments
- 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
- 238000003672 processing method Methods 0.000 title abstract description 12
- 239000012634 fragment Substances 0.000 claims abstract description 99
- 238000012545 processing Methods 0.000 claims abstract description 66
- 239000011159 matrix material Substances 0.000 claims abstract description 49
- 238000000034 method Methods 0.000 claims description 36
- 230000008569 process Effects 0.000 claims description 19
- 238000000605 extraction Methods 0.000 claims description 14
- 230000004044 response Effects 0.000 claims description 14
- 238000004590 computer program Methods 0.000 claims description 8
- 238000005192 partition Methods 0.000 description 8
- 238000012163 sequencing technique Methods 0.000 description 4
- 238000010586 diagram Methods 0.000 description 3
- 238000013467 fragmentation Methods 0.000 description 3
- 238000006062 fragmentation reaction Methods 0.000 description 3
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000012217 deletion Methods 0.000 description 1
- 230000037430 deletion Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 230000014509 gene expression Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 230000004083 survival effect Effects 0.000 description 1
Images
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/10—File systems; File servers
- G06F16/17—Details of further file system functions
- G06F16/176—Support for shared access to files; File sharing support
- G06F16/1767—Concurrency control, e.g. optimistic or pessimistic approaches
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/448—Execution paradigms, e.g. implementations of programming paradigms
- G06F9/4488—Object-oriented
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/11—File system administration, e.g. details of archiving or snapshots
- G06F16/122—File system administration, e.g. details of archiving or snapshots using management policies
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/13—File access structures, e.g. distributed indices
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/16—File or folder operations, e.g. details of user interfaces specifically adapted to file systems
- G06F16/162—Delete operations
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5011—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
- G06F9/5016—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals the resource being the memory
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Software Systems (AREA)
- Human Computer Interaction (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Stored Programmes (AREA)
Abstract
本发明公开了一种业务处理方法,包括以下步骤:确定每次获取分片的第一数量参数以及每一个分片每次获取的对象的第二数量参数;对第一数量参数赋予第一权重得到获取分片的第三数量参数;从底层的多个分片中列举第三数量参数对应的分片,并从列举的每一个分片中列举第二数量参数对应的对象,进而得到以每一个分片为列,每一个分片对应的多个对象为行的矩阵;依次提取矩阵的每一行对应的多个对象;根据预设的并发处理数对每次提取到的多个对象进行处理。本发明还公开了一种***、计算机设备以及可读存储介质。本发明提出的方案按照一次列举一部分分片的一部分对象,然后依次列举完毕的思想,减少不必要的IO操作,降低了列举对性能的影响。
Description
技术领域
本发明涉及业务处理领域,具体涉及一种业务处理方法、***、设备以及存储介质。
背景技术
分布式对象存储***是一种软件定义存储的具体实现,是一种新的网络存储形式,基于其数据采用Key-Value进行存取的特性,通常可以存储超大规模的非结构数据(一个桶存储的数据量甚至可以达到千亿级别),对于规模庞大的数据,需要有一种手段对其进行自动化的管理,一般这种自动化的管理业务被称为LifeyCycle(生命周期管理)。
Key-Value的数据存取方式保证了携带任何Key访问Value都不会因为数据量的扩大而带来额外的索引开销,因为对于其数据的访问来说,不是通过列举来定位Key所对应的数据具体在哪个位置的,而是采用哈希的方法来定位的。但是,这并不意味着我们不需要记录索引,因为有一部分业务场景是需要通过遍历进行的,遍历的时候,我们不携带具体的Key值,我们的目的就是获取一连串的Key值,LC(LifeyCycle)就是这样的一种业务。
目前,一个桶(Bucket,也可以称为容器Container,对象存储提供了基于桶和对象的扁平化存储方式,桶中的所有对象都处于同一逻辑层级,去除了文件***中的多层级树形目录结构)下的对象通过rados对象记录索引,如果只用一个rados对象记录索引的话,那么写入操作都要访问这个rados对象,因为加锁等原因会带来性能瓶颈,为了提高并发能力,通常会将索引进行分片,分片数记为shards_num,如果桶下对象个数足够多且分片数足够多的话,对象将均匀分布在每一个分片上。这时候,列举就是一个非常麻烦的问题,目前的列举采用排序列举的方式,假如要获取从哪一个对象之后的1000个对象,那么会先从每一个分片上取从这个对象开始的1000个对象,然后排序,取排序后的头1000个对象返回,采用这样的方式会有(对象个数*分片数)/1000次IO产生,正常IO次数应该是(对象个数/1000),IO次数为正常的分片数倍,采用这样的方式获取的数据量为1000*分片数*单个对象要获取的数据量。如果分片数过多的话,不仅会带来IO的升高,也会带来内存使用的提高。生命周期目前就是采用这种排序的列举方式,除了上述问题之外,还有一个就是列举方式在多版本的场景下列举的1000个对象可能会集中在一个分片上,此时,如果生命周期遍历对象之后的处理方式是并发的,生命周期的并发业务集中在一个分片上,完全是没有效率的,这也是为什么不采用将一个分片列举完再列举下一个分片的原因。
发明内容
有鉴于此,为了克服上述问题的至少一个方面,本发明实施例提出一种业务处理方法,包括以下步骤:
确定每次获取分片的第一数量参数以及每一个分片每次获取的对象的第二数量参数;
对所述第一数量参数赋予第一权重得到获取分片的第三数量参数;
从底层的多个分片中列举所述第三数量参数对应的分片,并从列举的每一个分片中列举所述第二数量参数对应的对象,进而得到以所述每一个分片为列,所述每一个分片对应的多个对象为行的矩阵;
依次提取所述矩阵的每一行对应的所述多个对象;
根据预设的并发处理数对每次提取到的所述多个对象进行处理。
在一些实施例中,依次提取所述矩阵的每一行对应的所述多个对象,还包括:
每次进行对象提取后将提取到的对象从所述矩阵中删除。
在一些实施例中,还包括:
对所述第一数量参数赋予第二权重以得到阈值;
每次进行对象提取前,判断仍有对象的分片的数量是否大于0且小于所述阈值;
响应于所述仍有对象的分片的数量大于0且小于所述阈值,从所述底层的未进行列举的若干个分片中列举所述第一数量参数对应的分片,并从列举的每一个分片中列举所述第二数量参数对应的对象,将新列举的分片以及对应的对象加入所述矩阵中。
在一些实施例中,还包括:
响应于所述仍有对象的分片的数量等于0,继续在所述底层中的与所述矩阵中对应的每一个分片上列举所述第二数量参数对应的对象,并加入所述矩阵中。
在一些实施例中,根据预设的并发处理数对每次提取到的所述多个对象进行处理,进一步包括:
每次从所述提取到的所述多个对象中选择所述并发处理数对应的对象;
判断选择的所述并发处理数对应的对象是否均需要处理;
响应于所述并发处理数对应的对象均需要处理,对所述并发处理数对应的对象进行处理。
在一些实施例中,还包括:
响应于所述并发处理数对应的对象中的若干个不需要处理,将所述不需要处理的若干个对象舍弃,并从所述提取到的所述多个对象中继续选择,直到得到的均需要处理的对象的数量为所述并发处理数。
在一些实施例中,所述第二权重小于所述第一权重。
基于同一发明构思,根据本发明的另一个方面,本发明的实施例还提供了一种业务处理***,包括:
确定模块,所述确定模块配置为确定每次获取分片的第一数量参数以及每一个分片每次获取的对象的第二数量参数;
权重模块,所述权重模块配置为对所述第一数量参数赋予第一权重得到获取分片的第三数量参数;
列举模块,所述列举模块配置为从底层的多个分片中列举所述第三数量参数对应的分片,并从列举的每一个分片中列举所述第二数量参数对应的对象,进而得到以所述每一个分片为列,所述每一个分片对应的多个对象为行的矩阵;
提取模块,所述提取模块配置为依次提取所述矩阵的每一行对应的所述多个对象;
处理模块,所述处理模块配置为根据预设的并发处理数对每次提取到的所述多个对象进行处理。
基于同一发明构思,根据本发明的另一个方面,本发明的实施例还提供了一种计算机设备,包括:
至少一个处理器;以及
存储器,所述存储器存储有可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时执行如上所述的任一种业务处理方法的步骤。
基于同一发明构思,根据本发明的另一个方面,本发明的实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时执行如上所述的任一种业务处理方法的步骤。
本发明具有以下有益技术效果之一:本发明提出的方案,按照一次列举一部分分片的一部分对象,然后依次列举完毕的思想,减少不必要的IO操作,降低了列举对性能的影响,在内存的使用上不会造成内存随着分片数的增加而线性增长,变得可控,在列举的过程中,一段连续的对象分布在不同的索引分片上,提高了后续并发任务的性能。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的实施例。
图1为本发明的实施例提供的业务处理方法的流程示意图;
图2为本发明的实施例提供的业务处理***的结构示意图;
图3为本发明的实施例提供的计算机设备的结构示意图;
图4为本发明的实施例提供的计算机可读存储介质的结构示意图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚明白,以下结合具体实施例,并参照附图,对本发明实施例进一步详细说明。
需要说明的是,本发明实施例中所有使用“第一”和“第二”的表述均是为了区分两个相同名称非相同的实体或者非相同的参量,可见“第一”“第二”仅为了表述的方便,不应理解为对本发明实施例的限定,后续实施例对此不再一一说明。
根据本发明的一个方面,本发明的实施例提出一种业务处理方法,如图1所示,其可以包括步骤:
S1,确定每次获取分片的第一数量参数以及每一个分片每次获取的对象的第二数量参数;
S2,对所述第一数量参数赋予第一权重得到获取分片的第三数量参数;
S3,从底层的多个分片中列举所述第三数量参数对应的分片,并从列举的每一个分片中列举所述第二数量参数对应的对象,进而得到以所述每一个分片为列,所述每一个分片对应的多个对象为行的矩阵;
S4,依次提取所述矩阵的每一行对应的所述多个对象;
S5,根据预设的并发处理数对每次提取到的所述多个对象进行处理。
本发明提出的方案,按照一次列举一部分分片的一部分对象,然后依次列举完毕的思想,减少不必要的IO操作,降低了列举对性能的影响,在内存的使用上不会造成内存随着分片数的增加而线性增长,变得可控,在列举的过程中,一段连续的对象分布在不同的索引分片上,提高了后续并发任务的性能。
在一些实施例中,在步骤S1,确定每次获取分片的第一数量参数以及每一个分片每次获取的对象的第二数量参数中,具体的,每次获取分片的第一数量参数(list_max_aio)即为列举的并发数,就是一次可以同时列举多少个分片,每一个分片每次获取的对象的第二数量参数(list_num)即为每个分片每次列举的对象的数量。
在一些实施例中,在步骤S2,对所述第一数量参数(list_max_aio)赋予第一权重(init_factor)得到获取分片的第三数量参数(init_num)中,具体的,初始时需要列举的分片数是init_num=(init_factor*list_max_aio,即向上取list_max_aio的整数倍),需要说明的是,初始时列举的分片数init_num要比步骤S5中的预设的并发处理数process_max_aio多,原因是不一定每一个被列举的对象都会被后续的并发业务处理,如果初始列举的分片数过小的话,很可能造成并发业务所处理的对象落在相同的分片上,当然也不能过大,根据之前所述,过大会占用过多的内存,因此需要选取一个合理的第一权重init_factor来保证初始时需要列举的分片数init_num是一个合适的值。并且当列举分片的数量如果是列举并发数的整数倍的话,性能最佳。在一些实施例中,初始时需要列举的分片数init_num还可以是init_factor*process_max_aio向上取list_max_aio的整数倍,即先对并发处理数process_max_aio赋予第一权重init_factor,然后向上在取list_max_aio的整数倍,以保证初始时列举的分片数init_num要比步骤S5中的预设的并发处理数process_max_aio多。
在一些实施例中,在步骤S3,从底层的多个分片中列举所述第三数量参数对应的分片,并从列举的每一个分片中列举所述第二数量参数对应的对象,进而得到以所述每一个分片为列,所述每一个分片对应的多个对象为行的矩阵中,具体的,根据设置的参数进行对象列举后,就得到了一个行为list_num,列为初始时需要列举的分片数init_num的对象矩阵了,这个矩阵属于桶下对象矩阵(分片下对象个数*桶下索引分片的总个数)的一部分。
需要说明的是,由于分片上的对象的数量不同,在从列举的每一个分片中列举所述第二数量参数对应的对象时,得到的实际对象的数量小于第二数量参数,也即行的数量list_num以实际列举最多的对象为准。
在一些实施例中,步骤S4中,依次提取所述矩阵的每一行对应的所述多个对象,还包括:
每次进行对象提取后将提取到的对象从所述矩阵中删除。
具体的,现在内存中的数据是一个list_num*init_num的矩阵,然后我们要从中先获取list_num个对象,先从矩阵的第一行获取,依次按行获取,直到得到list_num个1*init_num矩阵,当每次进行对象提取后,均将矩阵(list_num*init_num)中相应的对象删除。
在一些实施例中,方法还包括:
对所述第一数量参数赋予第二权重以得到阈值;
每次进行对象提取前,判断仍有对象的分片的数量是否大于0且小于所述阈值;
响应于所述仍有对象的分片的数量大于0且小于所述阈值,从所述底层的未进行列举的若干个分片中列举所述第一数量参数对应的分片,并从列举的每一个分片中列举所述第二数量参数对应的对象,将新列举的分片以及对应的对象加入所述矩阵中。
具体的,由于对象是随机分配的,因此每一个分片上的对象的数量是不同的,因此如果剩余还有数据的分片数小于阈值(min_num)=第二权重(min_threshold_factor)*第一数量参数(list_max_aio),同时为了尽可能保证并发业务所处理的对象落在相同的分片上,我们需要使用min_threshold_factor是一个合适的值,这样才再次需要从底层获取分片和相应的对象。也即从底层的进行列举的若干个分片中列举所述第一数量参数对应的分片,并从列举的每一个分片中列举所述第二数量参数对应的对象,将新列举的分片以及对应的对象加入所述矩阵中。在一些实施例中,阈值(min_num)还可以是min_threshold_factor*process_max_aio,以尽可能保证并发业务所处理的对象落在相同的分片上。
需要说明的是,如果在进行对象提取时,矩阵中有若干个分片没有对象了,如果剩余有对象的分片的数量大于阈值,不进行从底层获取分片和相应的对象,也即只有当矩阵中的还有对象剩余的分片的数量小于阈值后,才会在底层中获取其他分片以及对象。
在一些实施例中,方法还包括:
响应于所述仍有对象的分片的数量等于0,继续在所述底层中的与所述矩阵中对应的每一个分片上列举所述第二数量参数对应的对象,并加入所述矩阵中。
具体的,由于分片上的对象的数量不同,有可能会出现初始列举的分片每一个都具有第二数量参数list_num对应的对象,因此,当进行多次对象提取后,所述仍有对象的分片的数量等于0,继续在所述底层中的与所述矩阵中对应的每一个分片上列举所述第二数量参数对应的对象,并加入所述矩阵中,即继续在之前已经列举的分片上列举对象。也即遵循依次向同一个分片之后的对象(从上到下)、桶下的剩余分片(从左到右)两个方向列举,需要凑足列举的并发数,适配底层的列举模式。
需要说明的是,在底层进行分片和对象列举时,优先在已经列举的分片上列举对象。例如,如果矩阵中的已经没有对象的分片在底层有对象,在继续在该分片上列举对象,如果没有就取下一个分片列举。同时当矩阵中的还有对象剩余的分片的数量小于阈值后,再凑够list_max_aio个需要列举的分片。此时内存中的数据一般是一个list_num*(min_num+list_max_aio)的矩阵。
在一些实施例中,根据预设的并发处理数对每次提取到的所述多个对象进行处理,进一步包括:
每次从所述提取到的所述多个对象选择所述并发处理数对应的对象;
判断选择的所述并发处理数对应的对象是否均需要处理;
响应于所述并发处理数对应的对象均需要处理,对所述并发处理数对应的对象进行处理。
在一些实施例中,还包括:
响应于所述并发处理数对应的对象中的若干个不需要处理,将所述不需要处理的若干个对象舍弃,并从所述提取到的所述多个对象中继续选择,直到得到的均需要处理的对象的数量为所述并发处理数。
具体的,列举之后的业务就是【管理操作】,一般有删除操作、归档操作)的并发性。因此,当进行业务处理时,首先在矩阵中提取多个对象,也即按行进行提取,然后从多个对象中选择并发处理数(process_max_aio)对应的对象,如果选择的所述并发处理数对应的对象均需要处理,对所述并发处理数对应的对象进行处理,如果不需要处理,则将所述不需要处理的若干个对象舍弃,并从所述提取到的所述多个对象中继续选择,直到得到的均需要处理的对象的数量为所述并发处理数。
需要说明的是,在本发明的实施例中,主要关注点在于IO操作、内存使用、列举之后后续业务(以生命周期举例,生命周期指明了桶下的【匹配对象】在整个生命存活期间(从创建到结束)在【什么情况下】应该对其进行什么样的【管理操作】,因此选择的所述并发处理数对应的对象是否需要处理可以根据对象的生命周期对应的属性进行确定。
在一些实施例中,所述第二权重小于所述第一权重,具体的,设置较大的第一权重的目的在于在初始列举后,不会导致并发业务所处理的对象落在相同的分片上。设置较小的第一权重的目的在于从剩余还有数据的分片数上进行提取对象以进行处理时,并发业务所处理的对象落在相同的分片上。
本发明提出的方案通过将一个桶的索引分片及分片下的对象当作一个存储表,那么每一个分片相当于一列,分片下的对象分布在按顺序排列的行上。在本发明的实施例中相当于是先获取一部分分片的一部分对象放在内存中,列举的时候按行取,如果某一个分片取完,就继续向下获取此分片的后续对象,如果此分片没有后续对象了,就取下一个分片,依次遍历完,直到整个桶下没有要遍历的对象为止。
从上述遍历过程可知,每个对象被遍历一遍,每个分片每次获取list_num个对象,那么遍历需要的IO次数为桶下对象总个数/list_num,考虑到列举的并发,耗费的时间为(桶下对象总个数/list_num/list_max_aio)*单次IO时间,相较于排序列举,极大地减少了IO数和列举所耗费的时间,相较于分片依次遍历列举,IO数并没有增加,耗费的时间也没有增加,甚至由于列举并发的原因,还有所减少。所耗费的内存最大值为max[list_num*(min_num+list_max_aio),list_num*init_num]*单个对象信息的内存,相较于排序列举,内存是有很大的减少,相较于分片依次遍历列举,内存虽然有所增加,但是是可控的;每次内存中的分片个数最小值为min(min_num+list_max_aio,init_num),保证了在列举的对象列表中,一段连续的对象分布在不同的索引分片上,提高了并发业务的并发性能,相较于排序列举,排序列举在非对版本情况下,这种分布在不同的索引分片上的情况完全是随机性,在多版本情况下完全是分布在单个分片上的,相较于分片依次遍历列举,分片依次遍历列举是完全分布在单个分片上的,因此,此发明的列举方式相较于排序列举和分片依次遍历列举对后续的并发任务是最优解。
基于同一发明构思,根据本发明的另一个方面,本发明的实施例还提供了一种业务处理***400,如图2所示,包括:
确定模块401,所述确定模块401配置为确定每次获取分片的第一数量参数以及每一个分片每次获取的对象的第二数量参数;
权重模块402,所述权重模块402配置为对所述第一数量参数赋予第一权重得到获取分片的第三数量参数;
列举模块403,所述列举模块403配置为从底层的多个分片中列举所述第三数量参数对应的分片,并从列举的每一个分片中列举所述第二数量参数对应的对象,进而得到以所述每一个分片为列,所述每一个分片对应的多个对象为行的矩阵;
提取模块404,所述提取模块404配置为依次提取所述矩阵的每一行对应的所述多个对象;
处理模块405,所述处理模块405配置为根据预设的并发处理数对每次提取到的所述多个对象进行处理。
在一些实施例中,所述提取模块404配置为:
每次进行对象提取后将提取到的对象从所述矩阵中删除。
在一些实施例中,还包括第一响应模块,所述第一响应模块配置为:
对所述第一数量参数赋予第二权重以得到阈值;
每次进行对象提取前,判断仍有对象的分片的数量是否大于0且小于所述阈值;
响应于所述仍有对象的分片的数量大于0且小于所述阈值,从所述底层的未进行列举的若干个分片中列举所述第一数量参数对应的分片,并从列举的每一个分片中列举所述第二数量参数对应的对象,将新列举的分片以及对应的对象加入所述矩阵中。
在一些实施例中,还包括第二响应模块,所述第二响应模块配置为:
响应于所述仍有对象的分片的数量等于0,继续在所述底层中的与所述矩阵中对应的每一个分片上列举所述第二数量参数对应的对象,并加入所述矩阵中。
在一些实施例中,所述处理模块405还配置为:
每次从所述提取到的所述多个对象选择所述并发处理数对应的对象;
判断选择的所述并发处理数对应的对象是否均需要处理;
响应于所述并发处理数对应的对象均需要处理,对所述并发处理数对应的对象进行处理。
在一些实施例中,所述处理模块405还配置为:
响应于所述并发处理数对应的对象中的若干个不需要处理,将所述不需要处理的若干个对象舍弃,并从所述提取到的所述多个对象中继续选择,直到得到的均需要处理的对象的数量为所述并发处理数。
基于同一发明构思,根据本发明的另一个方面,如图3所示,本发明的实施例还提供了一种计算机设备501,包括:
至少一个处理器520;以及
存储器510,存储器510存储有可在处理器上运行的计算机程序511,处理器520执行程序时执行如上的任一种业务处理方法的步骤。
基于同一发明构思,根据本发明的另一个方面,如图4所示,本发明的实施例还提供了一种计算机可读存储介质601,计算机可读存储介质601存储有计算机程序指令610,计算机程序指令610被处理器执行时执行如上的任一种业务处理方法的步骤。
最后需要说明的是,本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,可以通过计算机程序来指令相关硬件来完成,的程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。
此外,应该明白的是,本文的计算机可读存储介质(例如,存储器)可以是易失性存储器或非易失性存储器,或者可以包括易失性存储器和非易失性存储器两者。
本领域技术人员还将明白的是,结合这里的公开所描述的各种示例性逻辑块、模块、电路和算法步骤可以被实现为电子硬件、计算机软件或两者的组合。为了清楚地说明硬件和软件的这种可互换性,已经就各种示意性组件、方块、模块、电路和步骤的功能对其进行了一般性的描述。这种功能是被实现为软件还是被实现为硬件取决于具体应用以及施加给整个***的设计约束。本领域技术人员可以针对每种具体应用以各种方式来实现的功能,但是这种实现决定不应被解释为导致脱离本发明实施例公开的范围。
以上是本发明公开的示例性实施例,但是应当注意,在不背离权利要求限定的本发明实施例公开的范围的前提下,可以进行多种改变和修改。根据这里描述的公开实施例的方法权利要求的功能、步骤和/或动作不需以任何特定顺序执行。此外,尽管本发明实施例公开的元素可以以个体形式描述或要求,但除非明确限制为单数,也可以理解为多个。
应当理解的是,在本文中使用的,除非上下文清楚地支持例外情况,单数形式“一个”旨在也包括复数形式。还应当理解的是,在本文中使用的“和/或”是指包括一个或者一个以上相关联地列出的项目的任意和所有可能组合。
上述本发明实施例公开实施例序号仅仅为了描述,不代表实施例的优劣。
本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,的程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。
所属领域的普通技术人员应当理解:以上任何实施例的讨论仅为示例性的,并非旨在暗示本发明实施例公开的范围(包括权利要求)被限于这些例子;在本发明实施例的思路下,以上实施例或者不同实施例中的技术特征之间也可以进行组合,并存在如上的本发明实施例的不同方面的许多其它变化,为了简明它们没有在细节中提供。因此,凡在本发明实施例的精神和原则之内,所做的任何省略、修改、等同替换、改进等,均应包含在本发明实施例的保护范围之内。
Claims (10)
1.一种业务处理方法,其特征在于,包括以下步骤:
确定每次获取索引分片的第一数量参数以及每一个索引分片每次获取的对象的第二数量参数;
对所述第一数量参数赋予第一权重得到获取索引分片的第三数量参数;
从桶的多个索引分片中列举所述第三数量参数对应的索引分片,并从列举的每一个索引分片中列举所述第二数量参数对应的对象,进而得到以所述每一个索引分片为列,所述每一个索引分片对应的多个对象为行的矩阵;
依次提取所述矩阵的每一行对应的所述多个对象;
根据预设的并发处理数对每次提取到的所述多个对象进行处理。
2.如权利要求1所述的方法,其特征在于,依次提取所述矩阵的每一行对应的所述多个对象,还包括:
每次进行对象提取后将提取到的对象从所述矩阵中删除。
3.如权利要求2所述的方法,其特征在于,还包括:
对所述第一数量参数赋予第二权重以得到阈值;
每次进行对象提取前,判断仍有对象的索引分片的数量是否大于0且小于所述阈值;
响应于所述仍有对象的索引分片的数量大于0且小于所述阈值,从所述桶的未进行列举的若干个索引分片中列举所述第一数量参数对应的索引分片,并从列举的每一个索引分片中列举所述第二数量参数对应的对象,将新列举的索引分片以及对应的对象加入所述矩阵中。
4.如权利要求3所述的方法,其特征在于,还包括:
响应于所述仍有对象的索引分片的数量等于0,继续在所述桶中的与所述矩阵中对应的每一个索引分片上列举所述第二数量参数对应的对象,并加入所述矩阵中。
5.如权利要求1所述的方法,其特征在于,根据预设的并发处理数对每次提取到的所述多个对象进行处理,进一步包括:
每次从所述提取到的所述多个对象中选择所述并发处理数对应的对象;
判断选择的所述并发处理数对应的对象是否均需要处理;
响应于所述并发处理数对应的对象均需要处理,对所述并发处理数对应的对象进行处理。
6.如权利要求5所述的方法,其特征在于,还包括:
响应于所述并发处理数对应的对象中的若干个不需要处理,将所述不需要处理的若干个对象舍弃,并从所述提取到的所述多个对象中继续选择,直到得到的均需要处理的对象的数量为所述并发处理数。
7.如权利要求3所述的方法,其特征在于,所述第二权重小于所述第一权重。
8.一种业务处理***,其特征在于,包括:
确定模块,所述确定模块配置为确定每次获取索引分片的第一数量参数以及每一个索引分片每次获取的对象的第二数量参数;
权重模块,所述权重模块配置为对所述第一数量参数赋予第一权重得到获取索引分片的第三数量参数;
列举模块,所述列举模块配置为从桶的多个索引分片中列举所述第三数量参数对应的索引分片,并从列举的每一个索引分片中列举所述第二数量参数对应的对象,进而得到以所述每一个索引分片为列,所述每一个索引分片对应的多个对象为行的矩阵;
提取模块,所述提取模块配置为依次提取所述矩阵的每一行对应的所述多个对象;
处理模块,所述处理模块配置为根据预设的并发处理数对每次提取到的所述多个对象进行处理。
9.一种计算机设备,包括:
至少一个处理器;以及
存储器,所述存储器存储有可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时执行如权利要求1-7任意一项所述的方法的步骤。
10.一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,其特征在于,所述计算机程序被处理器执行时执行如权利要求1-7任意一项所述的方法的步骤。
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010724257.7A CN111857890B (zh) | 2020-07-24 | 2020-07-24 | 一种业务处理方法、***、设备以及介质 |
US18/013,509 US20240104059A1 (en) | 2020-07-24 | 2021-02-26 | Method for Service Processing and System, Device, and Medium |
PCT/CN2021/077998 WO2022016865A1 (zh) | 2020-07-24 | 2021-02-26 | 一种业务处理方法、***、设备以及介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010724257.7A CN111857890B (zh) | 2020-07-24 | 2020-07-24 | 一种业务处理方法、***、设备以及介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111857890A CN111857890A (zh) | 2020-10-30 |
CN111857890B true CN111857890B (zh) | 2021-08-31 |
Family
ID=72949486
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010724257.7A Active CN111857890B (zh) | 2020-07-24 | 2020-07-24 | 一种业务处理方法、***、设备以及介质 |
Country Status (3)
Country | Link |
---|---|
US (1) | US20240104059A1 (zh) |
CN (1) | CN111857890B (zh) |
WO (1) | WO2022016865A1 (zh) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111857890B (zh) * | 2020-07-24 | 2021-08-31 | 苏州浪潮智能科技有限公司 | 一种业务处理方法、***、设备以及介质 |
CN113419828B (zh) * | 2021-05-31 | 2022-07-29 | 济南浪潮数据技术有限公司 | 一种对象存储的生命周期管理方法和*** |
CN113806249B (zh) * | 2021-09-13 | 2023-12-22 | 济南浪潮数据技术有限公司 | 一种对象存储有序列举方法、装置、终端及存储介质 |
CN113791740B (zh) * | 2021-11-10 | 2022-02-18 | 深圳市杉岩数据技术有限公司 | 一种记录对象存储桶统计计数的方法 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103473260A (zh) * | 2013-06-25 | 2013-12-25 | 北京控制工程研究所 | 一种面向并发olap的测试数据分层聚簇查询处理***及方法 |
CN104123359A (zh) * | 2014-07-17 | 2014-10-29 | 江苏省邮电规划设计院有限责任公司 | 一种分布式对象存储***的资源管理方法 |
CN110175175A (zh) * | 2019-05-29 | 2019-08-27 | 大连大学 | 一种基于spark的分布式空间二级索引与范围查询算法 |
CN111291023A (zh) * | 2020-02-09 | 2020-06-16 | 苏州浪潮智能科技有限公司 | 一种数据迁移的方法、***、设备以及介质 |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102024017A (zh) * | 2010-11-04 | 2011-04-20 | 天津曙光计算机产业有限公司 | 一种无重复无遗漏遍历分布式文件***目录项的方法 |
US9898474B1 (en) * | 2015-01-05 | 2018-02-20 | Amazon Technologies, Inc. | Object sharding in a host-side processing device for distributed storage |
CN106250409A (zh) * | 2016-07-21 | 2016-12-21 | 中国农业银行股份有限公司 | 数据查询方法及装置 |
US10169081B2 (en) * | 2016-10-31 | 2019-01-01 | Oracle International Corporation | Use of concurrent time bucket generations for scalable scheduling of operations in a computer system |
CN109614372B (zh) * | 2018-10-26 | 2023-06-02 | 创新先进技术有限公司 | 一种对象存储、读取方法、装置、及业务服务器 |
CN111857890B (zh) * | 2020-07-24 | 2021-08-31 | 苏州浪潮智能科技有限公司 | 一种业务处理方法、***、设备以及介质 |
-
2020
- 2020-07-24 CN CN202010724257.7A patent/CN111857890B/zh active Active
-
2021
- 2021-02-26 US US18/013,509 patent/US20240104059A1/en active Pending
- 2021-02-26 WO PCT/CN2021/077998 patent/WO2022016865A1/zh active Application Filing
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103473260A (zh) * | 2013-06-25 | 2013-12-25 | 北京控制工程研究所 | 一种面向并发olap的测试数据分层聚簇查询处理***及方法 |
CN104123359A (zh) * | 2014-07-17 | 2014-10-29 | 江苏省邮电规划设计院有限责任公司 | 一种分布式对象存储***的资源管理方法 |
CN110175175A (zh) * | 2019-05-29 | 2019-08-27 | 大连大学 | 一种基于spark的分布式空间二级索引与范围查询算法 |
CN111291023A (zh) * | 2020-02-09 | 2020-06-16 | 苏州浪潮智能科技有限公司 | 一种数据迁移的方法、***、设备以及介质 |
Also Published As
Publication number | Publication date |
---|---|
CN111857890A (zh) | 2020-10-30 |
WO2022016865A1 (zh) | 2022-01-27 |
US20240104059A1 (en) | 2024-03-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111857890B (zh) | 一种业务处理方法、***、设备以及介质 | |
EP3238106B1 (en) | Compaction policy | |
US8738861B2 (en) | Data prefetching method for distributed hash table DHT storage system, node, and system | |
CN110147204B (zh) | 一种元数据落盘方法、装置、***及计算机可读存储介质 | |
CN107943718B (zh) | 一种清理缓存文件的方法和装置 | |
EP2199935A2 (en) | Method and system for dynamically partitioning very large database indices on write-once tables | |
CN106682215B (zh) | 一种数据处理方法和管理节点 | |
CN106708442B (zh) | 同时适应磁盘与固态硬盘读写特性的海量数据存储方法 | |
CN110888837B (zh) | 对象存储小文件归并方法及装置 | |
CN111913925B (zh) | 一种分布式存储***中的数据处理方法及*** | |
CN110795042A (zh) | 一种全闪存储***元数据写缓存刷盘方法及相关组件 | |
CN112965939A (zh) | 一种文件合并方法、装置和设备 | |
CN113326262B (zh) | 基于键值数据库的数据处理方法、装置、设备及介质 | |
US11392510B2 (en) | Management method of cache files in storage space and recording device for storing cache files | |
CN114253950B (zh) | 管理数据库的方法和装置 | |
CN110019870B (zh) | 基于内存图像集群的图像检索方法及*** | |
CN115408342A (zh) | 文件处理方法、装置及电子设备 | |
CN112241396B (zh) | 基于Spark的对Delta进行小文件合并的方法及*** | |
CN106648550B (zh) | 用于并发执行任务的方法与设备 | |
CN114579061A (zh) | 一种数据存储方法、装置、设备及介质 | |
CN116069263B (zh) | 文件***的优化方法、装置、服务器、设备及存储介质 | |
CN112433671B (zh) | 一种数据持久化方法、***、设备以及介质 | |
CN109144425A (zh) | 一种元数据存储方法、装置、设备及计算机可读存储介质 | |
CN113741810B (zh) | 一种数据迁移方法及装置 | |
CN117194350B (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 |