CN115129789A - 一种分布式对象存储系统的桶索引存储方法、装置及介质 - Google Patents
一种分布式对象存储系统的桶索引存储方法、装置及介质 Download PDFInfo
- Publication number
- CN115129789A CN115129789A CN202210890257.3A CN202210890257A CN115129789A CN 115129789 A CN115129789 A CN 115129789A CN 202210890257 A CN202210890257 A CN 202210890257A CN 115129789 A CN115129789 A CN 115129789A
- Authority
- CN
- China
- Prior art keywords
- fragment
- index
- target
- bucket
- stored
- 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.)
- Pending
Links
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/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/27—Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
-
- 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
-
- 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/2255—Hash tables
-
- 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/2282—Tablespace storage structures; Management thereof
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Databases & Information Systems (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Computing Systems (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请公开了一种分布式对象存储系统的桶索引存储方法、装置及介质,涉及存储技术领域,使得单桶可以保存更多的对象数,不受原始分片数限制,接收客户端发送的上传对象,将上传对象的数据部分存储至数据池,确定上传对象的索引元数据保存至桶索引的目标分片,判断目标分片的已存储数据是否达到目标阈值,若是,控制目标分片分裂成预设分片数的子分片,确定上传对象的索引元数据保存至桶索引的目标子分片,将索引元数据记录至目标子分片。当目标分片的已存储数据达到目标阈值时,控制其进行分裂,以将索引元数据存储至分裂出的新分片上,使得单桶可以保存更多的对象数,不受原始分片数限制。
Description
技术领域
本申请涉及存储技术领域,特别是涉及一种分布式对象存储系统的桶索引存储方法、装置及介质。
背景技术
现有分布式对象存储系统中,会为每个桶维护一份索引表,保存了桶和桶内全部对象元数据之间的映射关系,用户访问桶内对象时,是通过桶索引获取对象的具体数据。上传到桶内的对象都会在桶索引分片上记录对象索引,用于记录对象元数据及列举对象。一个桶对应的索引分片是个固定值,一般是1024片,上传的对象索引就记录在这些分片上。
由于分片个数和单个分片记录的条目数都是有限的,为预先设置且设置后不可改变的,就导致单个存储桶内存储的对象个数是有限的,当存储需求增大时,原有的存储桶便可能难以满足市场需求。
由此可见,如何使得单桶可以保存更多的对象数,不受原始分片数限制,是本领域人员亟待解决的技术问题。
发明内容
本申请的目的是提供一种使得单桶可以保存更多的对象数,不受原始分片数限制的分布式对象存储系统的桶索引存储方法。
为解决上述技术问题,本申请提供一种分布式对象存储系统的桶索引存储方法,包括:
接收客户端发送的上传对象;
将所述上传对象的数据存储至数据池;
确定所述上传对象的索引元数据保存至桶索引的目标分片;
判断所述目标分片的已存储数据是否达到目标阈值;
若是,控制所述目标分片分裂成预设分片数的子分片;
确定所述上传对象的所述索引元数据保存至所述桶索引的目标子分片;
将所述索引元数据记录至所述目标子分片。
优选地,上述分布式对象存储系统的桶索引存储方法中,所述确定所述上传对象的索引元数据保存至桶索引的目标分片,包括:
通过哈希算法计算所述上传对象存储至所述桶索引的所述目标分片。
优选地,上述分布式对象存储系统的桶索引存储方法中,所述控制所述目标分片分裂成预设分片数的子分片之后,还包括:
生成分裂信息;
将所述分裂信息记录至所述目标分片。
优选地,上述分布式对象存储系统的桶索引存储方法中,所述将所述索引元数据记录至所述目标子分片之后,还包括:
向所述客户端返回执行结果。
优选地,上述分布式对象存储系统的桶索引存储方法中,若所述目标分片的已存储数据没有达到目标阈值,则还包括:
将所述索引元数据记录至所述目标分片。
优选地,上述分布式对象存储系统的桶索引存储方法中,还包括:
接收所述客户端发送的下载请求;
通过待下载对象的索引元数据信息及所述待下载对象的名称,得到所述待下载对象在所述数据池的保存位置;
通过所述保存位置读取所述待下载对象的数据,将所述待下载对象的数据发送至所述客户端。
优选地,上述分布式对象存储系统的桶索引存储方法中,还包括:
接收客户端发送的列举请求;
通过桶元数据信息,得到初始分片;
依次列举所述初始分片上记录的对象;
当当前所述初始分片记录的对象列举完成后,判断当前所述初始分片是否包括所述分裂信息;
若是,根据所述分裂信息列举当前所述初始分片的子分片上记录的对象,直至所述初始分片列举完成;
若否,列举下一所述初始分片上记录的对象;
向所述客户端返回列举结果。
为解决上述技术问题,本申请还提供一种分布式对象存储系统的桶索引存储装置,包括:
接收模块,用于接收客户端发送的上传对象;
存储模块,用于将所述上传对象的数据存储至数据池;
第一确定模块,用于确定所述上传对象的索引元数据保存至桶索引的目标分片;
判断模块,用于判断所述目标分片的已存储数据是否达到目标阈值;若是,触发分裂模块;
所述分裂模块,用于控制所述目标分片分裂成预设分片数的子分片;
第二确定模块,用于确定所述上传对象的所述索引元数据保存至所述桶索引的目标子分片;
记录模块,用于将所述索引元数据记录至所述目标子分片。
生成模块,用于生成分裂信息;
信息记录模块,用于将所述分裂信息记录至所述目标分片。
返回模块,用于向所述客户端返回执行结果。
若所述目标分片的已存储数据没有达到目标阈值,记录模块27,还用于将所述索引元数据记录至所述目标分片。
第一接收请求模块,用于接收所述客户端发送的下载请求;
第一得到模块,用于通过待下载对象的索引元数据信息及所述待下载对象的名称,得到所述待下载对象在所述数据池的保存位置;
下载模块,用于通过所述保存位置读取所述待下载对象的数据,将所述待下载对象的数据发送至所述客户端。
第二接收请求模块,用于接收客户端发送的列举请求;
第二得到模块,用于通过桶元数据信息,得到初始分片;
列举模块,用于依次列举所述初始分片上记录的对象;
判断分裂模块,用于当当前所述初始分片记录的对象列举完成后,判断当前所述初始分片是否包括所述分裂信息;若是,触发分裂记录模块,若否,触发列举模块;
分裂记录模块,用于根据所述分裂信息列举当前所述初始分片的子分片上记录的对象,直至所述初始分片列举完成;
列举模块,还用于列举下一所述初始分片上记录的对象;
列举返回模块,用于向所述客户端返回列举结果。
为解决上述技术问题,本申请还提供一种分布式对象存储系统的桶索引存储装置,包括:
存储器,用于存储计算机程序;
处理器,用于执行所述计算机程序时实现上述的分布式对象存储系统的桶索引存储方法的步骤。
为解决上述技术问题,本申请还提供一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现上述的分布式对象存储系统的桶索引存储方法的步骤。
本申请所提供的分布式对象存储系统的桶索引存储方法,接收客户端发送的上传对象,将上传对象的数据部分存储至数据池,确定上传对象的索引元数据保存至桶索引的目标分片,判断目标分片的已存储数据是否达到目标阈值,若是,控制目标分片分裂成预设分片数的子分片,确定上传对象的索引元数据保存至桶索引的目标子分片,将索引元数据记录至目标子分片。当目标分片的已存储数据达到目标阈值时,控制其进行分裂,以将索引元数据存储至分裂出的新分片上,使得单桶可以保存更多的对象数,不受原始分片数限制,当某个分片上记录的条数达到上限之后,自动分裂出新的桶索引分片,新上传到桶内该分片的对象保存到新分裂的分片上,这样分片就可以一直无限分裂,保存更多的对象,满足单桶千亿对象的目标。
另外,本申请还提供一种分布式对象存储系统的桶索引存储装置及介质,包括上述分布式对象存储系统的桶索引存储方法,效果同上。
附图说明
为了更清楚地说明本申请实施例,下面将对实施例中所需要使用的附图做简单的介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本申请实施例提供的一种分布式对象存储系统的桶索引存储方法的流程图;
图2为本申请实施例提供的一种分布式对象存储系统的桶索引存储装置的示意图;
图3为本申请实施例提供的另一种分布式对象存储系统的桶索引存储装置的结构图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下,所获得的所有其他实施例,都属于本申请保护范围。
本申请的核心是提供一种分布式对象存储系统的桶索引存储方法、装置及介质。
为了使本技术领域的人员更好地理解本申请方案,下面结合附图和具体实施方式对本申请作进一步的详细说明。
随着互联网应用的高速发展,日益产生的海量非结构化数据需要存储。对象存储服务(Object Storage Service,OSS)是一种新兴的海量、安全、低成本、高可靠的云存储服务,适合存放非结构化的数据,例如:视频,图片,文档等。它同时又具有块存储高速直接访问磁盘的特点以及文件存储分布式共享的特点,因此一经推出就得到广泛的发展与应用。分布式对象存储中,在对象数据上传结束后,不区分对象数据大小,其内容最终存入数据存储池。存储桶(Bucket)是对象的载体,可理解为存放对象的“容器”,且该“容器”无容量上限。对象以扁平化结构存放在存储桶中,无文件夹和目录的概念,用户可选择将对象存放到单个或多个存储桶中。
当前的分布式对象存储系统中,针对单个存储桶,只支持1亿左右的对象存储。现在很多大型企业的使用量都大于目前规格限制,比如医院、银行等等。现有存储系统,规格已不能满足市场需求,所以单桶千亿对象的目标一直是业界追求的目标。
由于分布式数据库的数据被分散在多个节点上,当查询请求到达服务端时,目标数据有极大的概率并不在该节点上,需要进行一次甚至多次远程调用才可查询到数据。因此,现有分布式对象存储系统中,会为每个桶维护一份索引表,保存了桶和桶内全部对象元数据之间的映射关系,用户访问桶内对象时,是通过索引元数据获取对象的具体数据。上传到桶内的对象都会在桶索引分片上记录索引元数据,用于记录对象元数据及列举对象。一个桶对应的索引分片是个固定值,可根据需要预先设置,一般是1024片,这个设置的数量一般不可改变,目前是一亿左右,上传的对象索引就记录在这些分片上。由于分片个数和单个分片记录的条目数都是有限的,且不可再扩展,就导致单个存储桶内存储的对象个数是有限的,若后续存储需求有变化,难以满足当前市场需求。
本发明可以应用于会产生海量文件(存储对象)的场景中,该场景包括但不限于:网络安防、道路视频监控、机场图像采集、商场图像采集、医院、银行等等。在这些场景中,图像采集设备,例如摄像探头、安防拍摄器、无人货柜的部位识别器等会采集大量的小文件,文件类型包括但不限于:图片、视频等对象信息。
为解决上述问题,本实施例提供一种分布式对象存储系统的桶索引存储方法,图1为本申请实施例提供的一种分布式对象存储系统的桶索引存储方法的流程图,如图1所示,包括:
S11:接收客户端发送的上传对象;
S12:将上传对象的数据部分存储至数据池;
需要说明的是,在本实施例中,存储桶最初创建预设数量的桶索引分片,本实施例不限制预设数量的具体数值,根据实际需要设计即可。为了表述清楚,以下以1024片举例,以理解本方案。本申请实施例也不限制上传对象的具体内容,可以是图片、视频、代码等,根据实际应用环境可具体应用。
一个完整的对象通常包括索引部分和数据部分,索引部分即索引元数据,是指唯一标识对象数据的标识符,主要记录对象的基本信息,如对象大小、类型,同时提供了对象数据所在存储位置,索引部分记录至桶索引分片,数据部分存储了对象的具体内容,存储在一个扁平地址空间内的数据池内。
当接收到客户端发送的上传对象后,先将上传对象的数据部分存储至数据池。
S13:确定上传对象的索引元数据保存至桶索引的目标分片;
步骤S13确定上传对象的索引元数据应该保存至桶索引的哪一个目标分片,优选地,通过哈希算法计算上传对象存储至桶索引的目标分片。通过哈希算法将对象信息均匀分配至存储桶的桶索引分片中。
S14:判断目标分片的已存储数据是否达到目标阈值;
S15:若是,控制目标分片分裂成预设分片数的子分片;
每个通索引的分片所能够存储的索引元数据条数都是固定的,判断目标分片的已存储数据是否达到了目标阈值,本实施例不限制目标阈值的具体数值,根据实际需要设计即可。若目标分片的已存储数据达到了目标阈值,则控制目标分片分裂成预设分片数的子分片,本实施例也不限制预设分片数的具体数值,根据实际需要设计即可。
例如,存储桶的初始桶索引分片为1024片,当通过哈希算法确定上传对象保存至其中一个桶索引分片,且该桶索引分片的已存储数据量达到目标阈值,则控制该桶索引分片分裂出新的1024个分片。
若所述目标分片的已存储数据没有达到目标阈值,则还包括:将所述索引元数据记录至所述目标分片。也就是若目标分片还能够继续记录对象,则直接将索引元数据记录至目标分片,不继续后续步骤。
S16:确定上传对象的索引元数据保存至桶索引的目标子分片;
S17:将索引元数据记录至目标子分片。
当分裂出新的子分片后,确定上传对象的索引元数据保存至桶索引的目标子分片,将索引元数据记录至目标子分片。优选地,通过哈希算法计算上传对象的索引元数据保存至桶索引的目标子分片。
优选地,所述将所述索引元数据记录至所述目标子分片之后,还包括:
向所述客户端返回执行结果。
当索引元数据记录至目标子分片后,则说明该上传对象已存储完毕,向客户端发送已存储的执行结果。
需要说明的是,本实施例步骤S13确定上传对象的索引元数据保存至桶索引的目标分片,确定的目标分片可以是初始的一级的桶索引分片,也可以是初始桶索引分片分裂后的次一级的桶索引分片,这样就需要经过两次哈希算法来确定索引元数据记录至哪一个目标分片上,先确定记录至哪一个初始桶索引分片,再确定记录至该初始桶索引分片的哪一个子分片上,当然,也可以是更多层次的分裂分片上,根据实际情况,确定索引元数据保存至哪一个目标分片上即可。当该目标分片的已存储数据量达到了目标阈值,则控制目标分片继续分裂成预设分片数的子分片,将索引元数据记录至新分裂的子分片上。也就是说,当某个分片上记录的条数达到上限之后,自动分裂出新的1024片桶索引分片,新上传到桶内该分片的对象保存到新分裂的分片上,这样分片就可以一直无限分裂,保存更多的对象,满足单桶千亿对象的目标。
根据本申请提供的分布式对象存储系统的桶索引存储方法,接收客户端发送的上传对象,将上传对象的数据部分存储至数据池,确定上传对象的索引元数据保存至桶索引的目标分片,判断目标分片的已存储数据是否达到目标阈值,若是,控制目标分片分裂成预设分片数的子分片,确定上传对象的索引元数据保存至桶索引的目标子分片,将索引元数据记录至目标子分片。当目标分片的已存储数据达到目标阈值时,控制其进行分裂,以将索引元数据存储至分裂出的新分片上,使得单桶可以保存更多的对象数,不受原始分片数限制,当某个分片上记录的条数达到上限之后,自动分裂出新的桶索引分片,新上传到桶内该分片的对象保存到新分裂的分片上,这样分片就可以一直无限分裂,保存更多的对象,满足单桶千亿对象的目标。满足市场的需求,给客户带来了良好的用户体验,同时丰富了对象存储的功能,提高了分布式对象产品的市场竞争力。
当一个桶索引分片分裂后,为了在后续操作中,了解其具体分裂状况,本实施例提供一种优选方案,所述控制所述目标分片分裂成预设分片数的子分片之后,还包括:
生成分裂信息;
将所述分裂信息记录至所述目标分片。
本实施例提到分裂信息包括分裂数、存储对象量等信息,在目标分片上记录其分裂的具体信息,在后续记录过程中,可以通过分裂信息了解具体分裂状况。
另外,在分布式对象存储系统中,客户端可能会指定下载某一个对象,因此,本实施例提供一种针对本申请的下载方法,还包括:
接收所述客户端发送的下载请求;
通过待下载对象的索引元数据信息及所述待下载对象的名称,得到所述待下载对象在所述数据池的保存位置;
通过所述保存位置读取所述待下载对象的数据,将所述待下载对象的数据发送至所述客户端。
接收客户端发送的下载请求,对应地,根据待下载对象的索引元数据信息和待下载对象的数据名,即可得到待下载对象在数据池中的保存位置,索引元数据信息记录了对象数据所在存储位置,通过保存位置读取待下载对象的数据,将所述待下载对象的数据发送至所述客户端。
另外,在分布式对象存储系统中,为了获取存储桶中的全部对象信息,本实施例提供一种针对本申请的下载方法,还包括:
接收客户端发送的列举请求;
通过桶元数据信息,得到初始分片;
依次列举所述初始分片上记录的对象;
当当前所述初始分片记录的对象列举完成后,判断当前所述初始分片是否包括分裂信息;
若是,根据所述分裂信息列举当前所述初始分片的子分片上记录的对象,直至所述初始分片列举完成;
若否,列举下一所述初始分片上记录的对象;
向所述客户端返回列举结果。
接收到客户端发送的列举请求后,需要一一列举存储桶中保存的对象信息,即列举桶索引中记录的对象的信息,通过桶元数据信息,得到初始分片,找到最初创建的初始桶索引分片,依次列举初始分片上记录的对象,当当前初始分片记录的对象列举完成后,判断当前初始分片是否包括分裂信息,每一个分片上的对象列举完成后,需要判断它是否分裂过,即判断其是否包含分裂信息,若包含,则说明其进行分裂过,根据分裂信息列举当前初始分片的子分片上记录的对象,直至初始分片列举完成,也就是当前桶索引分片没有下一级分片了,则开始列举下一初始分片上记录的对象,向所述客户端返回列举结果。
在上述实施例中,对于分布式对象存储系统的桶索引存储方法进行了详细描述,本申请还提供分布式对象存储系统的桶索引存储装置对应的实施例。需要说明的是,本申请从两个角度对装置部分的实施例进行描述,一种是基于功能模块的角度,另一种是基于硬件的角度。
图2为本申请实施例提供的一种分布式对象存储系统的桶索引存储装置的示意图,如图2所示,分布式对象存储系统的桶索引存储装置包括:
接收模块21,用于接收客户端发送的上传对象;
存储模块22,用于将所述上传对象的数据存储至数据池;
第一确定模块23,用于确定所述上传对象的索引元数据保存至桶索引的目标分片;
判断模块24,用于判断所述目标分片的已存储数据是否达到目标阈值;若是,触发分裂模块25;
所述分裂模块25,用于控制所述目标分片分裂成预设分片数的子分片;
第二确定模块26,用于确定所述上传对象的所述索引元数据保存至所述桶索引的目标子分片;
记录模块27,用于将所述索引元数据记录至所述目标子分片。
具体地,接收模块21接收客户端发送的上传对象,存储模块22将上传对象的数据存储至数据池,第一确定模块23确定上传对象的索引元数据保存至桶索引的目标分片,判断模块24判断目标分片的已存储数据是否达到目标阈值,若是,触发分裂模块25控制目标分片分裂成预设分片数的子分片,第二确定模块26确定上传对象的索引元数据保存至桶索引的目标子分片,记录模块27将索引元数据记录至目标子分片。当目标分片的已存储数据达到目标阈值时,控制其进行分裂,以将索引元数据存储至分裂出的新分片上,使得单桶可以保存更多的对象数,不受原始分片数限制,当某个分片上记录的条数达到上限之后,自动分裂出新的桶索引分片,新上传到桶内该分片的对象保存到新分裂的分片上,这样分片就可以一直无限分裂,保存更多的对象,满足单桶千亿对象的目标。满足市场的需求,给客户带来了良好的用户体验,同时丰富了对象存储的功能,提高了分布式对象产品的市场竞争力。
另外,还包括:
生成模块,用于生成分裂信息;
信息记录模块,用于将所述分裂信息记录至所述目标分片。
返回模块,用于向所述客户端返回执行结果。
若所述目标分片的已存储数据没有达到目标阈值,记录模块27,还用于将所述索引元数据记录至所述目标分片。
第一接收请求模块,用于接收所述客户端发送的下载请求;
第一得到模块,用于通过待下载对象的索引元数据信息及所述待下载对象的名称,得到所述待下载对象在所述数据池的保存位置;
下载模块,用于通过所述保存位置读取所述待下载对象的数据,将所述待下载对象的数据发送至所述客户端。
第二接收请求模块,用于接收客户端发送的列举请求;
第二得到模块,用于通过桶元数据信息,得到初始分片;
列举模块,用于依次列举所述初始分片上记录的对象;
判断分裂模块,用于当当前所述初始分片记录的对象列举完成后,判断当前所述初始分片是否包括所述分裂信息;若是,触发分裂记录模块,若否,触发列举模块;
分裂记录模块,用于根据所述分裂信息列举当前所述初始分片的子分片上记录的对象,直至所述初始分片列举完成;
列举模块,还用于列举下一所述初始分片上记录的对象;
列举返回模块,用于向所述客户端返回列举结果。
由于装置部分的实施例与方法部分的实施例相互对应,因此装置部分的实施例请参见方法部分的实施例的描述,这里暂不赘述。
图3为本申请实施例提供的另一种分布式对象存储系统的桶索引存储装置的结构图,如图3所示,分布式对象存储系统的桶索引存储装置包括:存储器30,用于存储计算机程序;
处理器31,用于执行计算机程序时实现如上述实施例(分布式对象存储系统的桶索引存储方法)获取用户操作习惯信息的方法的步骤。
本实施例提供的分布式对象存储系统的桶索引存储装置可以包括但不限于智能手机、平板电脑、笔记本电脑或台式电脑等。
其中,处理器31可以包括一个或多个处理核心,比如4核心处理器、8核心处理器等。处理器31可以采用数字信号处理器(Digital Signal Processor,DSP)、现场可编程门阵列(Field-Programmable Gate Array,FPGA)、可编程逻辑阵列(Programmable LogicArray,PLA)中的至少一种硬件形式来实现。处理器31也可以包括主处理器和协处理器,主处理器是用于对在唤醒状态下的数据进行处理的处理器,也称中央处理器(CentralProcessing Unit,CPU);协处理器是用于对在待机状态下的数据进行处理的低功耗处理器。在一些实施例中,处理器31可以在集成有图像处理器(Graphics Processing Unit,GPU),GPU用于负责显示屏所需要显示的内容的渲染和绘制。一些实施例中,处理器31还可以包括人工智能(Artificial Intelligence,AI)处理器,该AI处理器用于处理有关机器学习的计算操作。
存储器30可以包括一个或多个计算机可读存储介质,该计算机可读存储介质可以是非暂态的。存储器30还可包括高速随机存取存储器,以及非易失性存储器,比如一个或多个磁盘存储设备、闪存存储设备。本实施例中,存储器30至少用于存储以下计算机程序301,其中,该计算机程序被处理器31加载并执行之后,能够实现前述任一实施例公开的分布式对象存储系统的桶索引存储方法的相关步骤。另外,存储器30所存储的资源还可以包括操作系统302和数据303等,存储方式可以是短暂存储或者永久存储。其中,操作系统302可以包括Windows、Unix、Linux等。数据303可以包括但不限于实现分布式对象存储系统的桶索引存储方法所涉及到的数据等。
在一些实施例中,分布式对象存储系统的桶索引存储装置还可包括有显示屏32、输入输出接口33、通信接口34、电源35以及通信总线36。
本领域技术人员可以理解,图3中示出的结构并不构成对分布式对象存储系统的桶索引存储装置的限定,可以包括比图示更多或更少的组件。
本申请实施例提供的分布式对象存储系统的桶索引存储装置,包括存储器和处理器,处理器在执行存储器存储的程序时,能够实现如下方法:分布式对象存储系统的桶索引存储方法,接收客户端发送的上传对象,将上传对象的数据部分存储至数据池,确定上传对象的索引元数据保存至桶索引的目标分片,判断目标分片的已存储数据是否达到目标阈值,若是,控制目标分片分裂成预设分片数的子分片,确定上传对象的索引元数据保存至桶索引的目标子分片,将索引元数据记录至目标子分片。当目标分片的已存储数据达到目标阈值时,控制其进行分裂,以将索引元数据存储至分裂出的新分片上,使得单桶可以保存更多的对象数,不受原始分片数限制,当某个分片上记录的条数达到上限之后,自动分裂出新的桶索引分片,新上传到桶内该分片的对象保存到新分裂的分片上,这样分片就可以一直无限分裂,保存更多的对象,满足单桶千亿对象的目标。满足市场的需求,给客户带来了良好的用户体验,同时丰富了对象存储的功能,提高了分布式对象产品的市场竞争力。
最后,本申请还提供一种计算机可读存储介质对应的实施例。计算机可读存储介质上存储有计算机程序,计算机程序被处理器执行时实现如上述分布式对象存储系统的桶索引存储方法实施例中记载的步骤。
可以理解的是,如果上述实施例中的方法以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(Read-Only Memory,ROM)、随机存取存储器(Random Access Memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
本实施例提供的计算机可读存储介质,其上存储有计算机程序,当处理器执行该程序时,可实现以下方法:分布式对象存储系统的桶索引存储方法,接收客户端发送的上传对象,将上传对象的数据部分存储至数据池,确定上传对象的索引元数据保存至桶索引的目标分片,判断目标分片的已存储数据是否达到目标阈值,若是,控制目标分片分裂成预设分片数的子分片,确定上传对象的索引元数据保存至桶索引的目标子分片,将索引元数据记录至目标子分片。当目标分片的已存储数据达到目标阈值时,控制其进行分裂,以将索引元数据存储至分裂出的新分片上,使得单桶可以保存更多的对象数,不受原始分片数限制,当某个分片上记录的条数达到上限之后,自动分裂出新的桶索引分片,新上传到桶内该分片的对象保存到新分裂的分片上,这样分片就可以一直无限分裂,保存更多的对象,满足单桶千亿对象的目标。满足市场的需求,给客户带来了良好的用户体验,同时丰富了对象存储的功能,提高了分布式对象产品的市场竞争力。
以上对本申请所提供的分布式对象存储系统的桶索引存储方法、装置及介质进行了详细介绍。说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。应当指出,对于本技术领域的普通技术人员来说,在不脱离本申请原理的前提下,还可以对本申请进行若干改进和修饰,这些改进和修饰也落入本申请权利要求的保护范围内。
还需要说明的是,在本说明书中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
Claims (10)
1.一种分布式对象存储系统的桶索引存储方法,其特征在于,包括:
接收客户端发送的上传对象;
将所述上传对象的数据部分存储至数据池;
确定所述上传对象的索引元数据保存至桶索引的目标分片;
判断所述目标分片的已存储数据是否达到目标阈值;
若是,控制所述目标分片分裂成预设分片数的子分片;
确定所述上传对象的所述索引元数据保存至所述桶索引的目标子分片;
将所述索引元数据记录至所述目标子分片。
2.根据权利要求1所述的分布式对象存储系统的桶索引存储方法,其特征在于,所述确定所述上传对象的索引元数据保存至桶索引的目标分片,包括:
通过哈希算法计算所述上传对象存储至所述桶索引的所述目标分片。
3.根据权利要求1所述的分布式对象存储系统的桶索引存储方法,其特征在于,所述控制所述目标分片分裂成预设分片数的子分片之后,还包括:
生成分裂信息;
将所述分裂信息记录至所述目标分片。
4.根据权利要求3所述的分布式对象存储系统的桶索引存储方法,其特征在于,所述将所述索引元数据记录至所述目标子分片之后,还包括:
向所述客户端返回执行结果。
5.根据权利要求4所述的分布式对象存储系统的桶索引存储方法,其特征在于,若所述目标分片的已存储数据没有达到目标阈值,则还包括:
将所述索引元数据记录至所述目标分片。
6.根据权利要求1所述的分布式对象存储系统的桶索引存储方法,其特征在于,还包括:
接收所述客户端发送的下载请求;
通过待下载对象的索引元数据信息及所述待下载对象的名称,得到所述待下载对象在所述数据池的保存位置;
通过所述保存位置读取所述待下载对象的数据,将所述待下载对象的数据发送至所述客户端。
7.根据权利要求3所述的分布式对象存储系统的桶索引存储方法,其特征在于,还包括:
接收客户端发送的列举请求;
通过桶元数据信息,得到初始分片;
依次列举所述初始分片上记录的对象;
当当前所述初始分片记录的对象列举完成后,判断当前所述初始分片是否包括所述分裂信息;
若是,根据所述分裂信息列举当前所述初始分片的子分片上记录的对象,直至所述初始分片列举完成;
若否,列举下一所述初始分片上记录的对象;
向所述客户端返回列举结果。
8.一种分布式对象存储系统的桶索引存储装置,其特征在于,包括:
接收模块,用于接收客户端发送的上传对象;
存储模块,用于将所述上传对象的数据存储至数据池;
第一确定模块,用于确定所述上传对象的索引元数据保存至桶索引的目标分片;
判断模块,用于判断所述目标分片的已存储数据是否达到目标阈值;若是,触发分裂模块;
所述分裂模块,用于控制所述目标分片分裂成预设分片数的子分片;
第二确定模块,用于确定所述上传对象的所述索引元数据保存至所述桶索引的目标子分片;
记录模块,用于将所述索引元数据记录至所述目标子分片。
9.一种分布式对象存储系统的桶索引存储装置,其特征在于,包括:
存储器,用于存储计算机程序;
处理器,用于执行所述计算机程序时实现如权利要求1至7任一项所述的分布式对象存储系统的桶索引存储方法的步骤。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如权利要求1至7任一项所述的分布式对象存储系统的桶索引存储方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210890257.3A CN115129789A (zh) | 2022-07-27 | 2022-07-27 | 一种分布式对象存储系统的桶索引存储方法、装置及介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210890257.3A CN115129789A (zh) | 2022-07-27 | 2022-07-27 | 一种分布式对象存储系统的桶索引存储方法、装置及介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115129789A true CN115129789A (zh) | 2022-09-30 |
Family
ID=83385380
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210890257.3A Pending CN115129789A (zh) | 2022-07-27 | 2022-07-27 | 一种分布式对象存储系统的桶索引存储方法、装置及介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115129789A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117075823A (zh) * | 2023-10-17 | 2023-11-17 | 苏州元脑智能科技有限公司 | 对象查找方法、系统、电子设备及存储介质 |
-
2022
- 2022-07-27 CN CN202210890257.3A patent/CN115129789A/zh active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117075823A (zh) * | 2023-10-17 | 2023-11-17 | 苏州元脑智能科技有限公司 | 对象查找方法、系统、电子设备及存储介质 |
CN117075823B (zh) * | 2023-10-17 | 2024-02-02 | 苏州元脑智能科技有限公司 | 对象查找方法、系统、电子设备及存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10922118B2 (en) | Distributed container image repository service | |
US11068441B2 (en) | Caseless file lookup in a distributed file system | |
US11296940B2 (en) | Centralized configuration data in a distributed file system | |
CN110347651B (zh) | 基于云存储的数据同步方法、装置、设备及存储介质 | |
CN111247518B (zh) | 用于数据库分片的方法和系统 | |
CN110019004B (zh) | 一种数据处理方法、装置及系统 | |
JP5886447B2 (ja) | ロケーション非依存のファイル | |
CN111078653B (zh) | 一种数据存储方法、系统及设备 | |
CN110569213A (zh) | 文件存取方法、装置和设备 | |
CN111090618B (zh) | 一种数据读取方法、系统及设备 | |
US10623470B2 (en) | Optimizing internet data transfers using an intelligent router agent | |
US10909086B2 (en) | File lookup in a distributed file system | |
CN111782134B (zh) | 数据处理方法、装置、系统和计算机可读存储介质 | |
US20170153909A1 (en) | Methods and Devices for Acquiring Data Using Virtual Machine and Host Machine | |
CN111400334B (zh) | 数据处理方法、装置、存储介质及电子装置 | |
CN110019048A (zh) | 基于MongoDB的文件处理方法、装置、系统及服务器 | |
US10417192B2 (en) | File classification in a distributed file system | |
WO2018125297A1 (en) | Atomic execution unit for object storage | |
CN115438016A (zh) | 分布式对象存储中动态分片方法、系统、介质及设备 | |
CN115129789A (zh) | 一种分布式对象存储系统的桶索引存储方法、装置及介质 | |
CN114610680A (zh) | 分布式文件系统元数据管理方法、装置、设备及存储介质 | |
CN114138558A (zh) | 一种对象存储方法、装置、电子设备和存储介质 | |
CN113688139A (zh) | 对象存储方法、网关、设备及介质 | |
KR20220132639A (ko) | 원격-저장 파일들의 예측 제공 | |
CN114443583A (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 |