CN113010526A - 基于对象存储服务的存储方法及装置 - Google Patents
基于对象存储服务的存储方法及装置 Download PDFInfo
- Publication number
- CN113010526A CN113010526A CN202110421022.5A CN202110421022A CN113010526A CN 113010526 A CN113010526 A CN 113010526A CN 202110421022 A CN202110421022 A CN 202110421022A CN 113010526 A CN113010526 A CN 113010526A
- Authority
- CN
- China
- Prior art keywords
- index
- target object
- fragment
- stored
- storing
- 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
- 238000000034 method Methods 0.000 title claims abstract description 58
- 239000012634 fragment Substances 0.000 claims abstract description 170
- 238000012545 processing Methods 0.000 claims description 3
- 238000012163 sequencing technique Methods 0.000 claims description 2
- 230000008569 process Effects 0.000 description 14
- 238000010586 diagram Methods 0.000 description 13
- 238000004364 calculation method Methods 0.000 description 5
- 230000008878 coupling Effects 0.000 description 3
- 238000010168 coupling process Methods 0.000 description 3
- 238000005859 coupling reaction Methods 0.000 description 3
- 238000007726 management method Methods 0.000 description 3
- 238000004891 communication Methods 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 230000006870 function Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000013500 data storage Methods 0.000 description 1
- 238000012217 deletion Methods 0.000 description 1
- 230000037430 deletion Effects 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000004880 explosion Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000005192 partition Methods 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/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/2219—Large Object storage; Management thereof
-
- 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
-
- 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/23—Updating
- G06F16/2365—Ensuring data consistency and integrity
-
- 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
- G06F16/278—Data partitioning, e.g. horizontal or vertical partitioning
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)
- Computer Security & Cryptography (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请公开了一种基于对象存储服务的存储方法及装置。其中,该方法包括:在对象存储服务的存储桶中初始化预设数量的索引分片,其中,存储桶为对象存储服务中用于存储目标对象的容器,索引分片用于存储目标对象,每个索引分片对应的数值均匀地落入预设数量的索引分片能够存储的数据量的取值范围内;将待存储的目标对象按照预设算法存储至索引分片。本申请解决了目前利用对象存储服务存储海量数据的应用场景,无法实现单个存储桶支持海量数据的动态扩展的技术问题。
Description
技术领域
本申请涉及计算机信息存储和计算领域,具体而言,涉及一种基于对象存储服务的存储方法及装置。
背景技术
随着互联网应用的高速发展,日益产生的海量非结构化数据需要存储。对象存储服务能够提供海量存储的解决方案,单桶支持百亿或者千亿对象是当前面临的一个重要的产品规格问题。存储桶对象索引不仅记录了对象元数据,而且建立了存储桶与对象之间的索引关系。在用户的实际应用场景中既需要能够支持海量数据的动态扩展,同时又需要追求高效的写入和查询速度。
针对目前利用对象存储服务存储海量数据的应用场景,无法实现单个存储桶支持海量数据的动态扩展的问题,目前尚未提出有效的解决方案。
发明内容
本申请实施例提供了一种基于对象存储服务的存储方法及装置,以至少解决目前利用对象存储服务存储海量数据的应用场景,无法实现单个存储桶支持海量数据的动态扩展的技术问题。
根据本申请实施例的一个方面,提供了一种基于对象存储服务的存储方法,包括:在对象存储服务的存储桶中初始化预设数量的索引分片,其中,存储桶为对象存储服务中用于存储目标对象的容器,索引分片用于存储目标对象,每个索引分片对应的数值均匀地落入预设数量的索引分片能够存储的数据量的取值范围内;将待存储的目标对象按照预设算法存储至索引分片。
可选地,将待存储的目标对象按照预设算法存储至索引分片,包括:确定待存储的目标对象的名称的哈希值;利用哈希值对预设数量的索引分片的取值范围进行取余运算,得到运算结果;依据运算结果确定存储待存储的目标对象的索引分片。
可选地,将待存储的目标对象按照预设算法存储至索引分片,还包括:如果第一索引分片中存储的目标对象的数量超过预设阈值,将第一索引分片***为目标索引分片,其中,目标索引分片包括第一索引分片和第二索引分片,第一索引分片为预设数量的索引分片中的任意一个索引分片;将待存储的目标对象存储至目标索引分片。
可选地,将第一索引分片***为目标索引分片,包括:确定第一索引分片对应的数值以及与第一索引分片相邻的第三索引分片对应的数值的平均值;将平均值作为第二索引分片对应的数值。
可选地,将待存储的目标对象存储至目标索引分片,包括:将待存储的目标对象分别写入第一索引分片、第二索引分片以及日志;删除第一索引分片和第二索引分片上存储的重复目标对象。
可选地,将待存储的目标对象分别写入第一索引分片、第二索引分片以及日志之后,上述方法还包括:获取读请求;从第一索引分片读取与读请求对应的目标对象;如果从第一索引分片未读取到与读请求对应的目标对象,从第二索引分片读取与读请求对应的目标对象。
可选地,将待存储的目标对象存储至索引分片之后,上述方法还包括:将存储桶中的索引分片缓存至内存;在存储桶中的任意一个索引分片中存储的目标对象发生变化的情况下,更新存储桶中其他索引分片中存储的目标对象。
可选地,将存储桶中的索引分片缓存至内存之后,方法还包括:从索引分片中查询与查询指令对应的目标对象,其中,查询指令用于从存储桶中查找目标对象;输出与查询指令对应的目标对象。
可选地,从索引分片中查询与查询指令对应的目标对象,包括:分别确定每个索引分片的权重值;依据权重值分别从每个索引分片读取目标对象列表;对目标对象列表进行排序。
根据本申请实施例的另一方面,还提供了一种基于对象存储服务的存储装置,包括:设置模块,用于在对象存储服务的存储桶中初始化预设数量的索引分片,其中,存储桶为对象存储服务中用于存储目标对象的容器,索引分片用于存储目标对象,每个索引分片对应的数值均匀地落入预设数量的索引分片能够存储的数据量的取值范围内;存储模块,用于将待存储的目标对象按照预设算法存储至索引分片。
根据本申请实施例的再一方面,还提供了一种非易失性存储介质,非易失性存储介质包括存储的程序,其中,在程序运行时控制非易失性存储介质所在设备执行以上的基于对象存储服务的存储方法。
根据本申请实施例的再一方面,还提供了一种处理器,处理器用于运行存储在存储器中的程序,其中,程序运行时执行以上的基于对象存储服务的存储方法。
在本申请实施例中,采用在对象存储服务的存储桶中初始化预设数量的索引分片,其中,存储桶为对象存储服务中用于存储目标对象的容器,索引分片用于存储目标对象,每个索引分片对应的数值均匀地落入预设数量的索引分片能够存储的数据量的取值范围内;将待存储的目标对象按照预设算法存储至索引分片的方式,通过分布式哈希算法解决文件读、写过程中的海量数据扩展问题,从而实现了对象存储服务中单个存储桶支持海量数据扩展的技术效果,进而解决了目前利用对象存储服务存储海量数据的应用场景,无法实现单个存储桶支持海量数据的动态扩展技术问题。
附图说明
此处所说明的附图用来提供对本申请的进一步理解,构成本申请的一部分,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。在附图中:
图1是根据相关技术的一种利用普通哈希算法向存储桶写入数据的示意图;
图2是根据本申请实施例的一种基于对象存储服务的存储方法的流程图;
图3是根据本申请实施例的一种在存储桶中初始化索引分片的示意图;
图4是根据本申请实施例的一种向索引分片存储数据的示意图;
图5是根据本申请实施例的一种数据写入索引分片***过程的示意图;
图6是根据本申请实施例的一种存储桶元数据更新过程的示意图;
图7是根据本申请实施例的一种从存储桶中查询数据的示意图;
图8是根据本申请实施例的一种基于对象存储服务的存储装置的结构框图。
具体实施方式
为了使本技术领域的人员更好地理解本申请方案,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分的实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本申请保护的范围。
需要说明的是,本申请的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本申请的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、***、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
根据本申请实施例,提供了一种基于对象存储服务的存储方法的实施例,需要说明的是,在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机***中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。
针对背景技术部分提到的技术问题,在现有的解决方案中,通过普通哈希算法实现了元数据管理和文件索引查询。实现细节为在创建存储桶时初始化固定数量的索引文件(N个),如图1所示,上传文件时通过计算文件名(s3.api)的哈希值得到123123123122,进而对N取模计算得到2,最终写入分片2。同样在查询时也通过普通哈希算法查询对象找到分片2读取相应元数据。现有的方案在分布式存储应用中利用哈希算法能够快速实现文件读取,但是在海量数据场景和数据热点问题存在一定的局限性。
实际应用中,一种解决方案是初始化固定数量的分片,并允许单个分片数据写入一定数量时按分片数量乘以2的方式实现动态扩展(单个分片写入过多的文件存在管理的复杂度,通常为100万),但在数据重新分配写入时存在写保护的问题,因此带来一定的局限性。另一种解决方案通过初始化较多的分片,限制分片***,能允许单桶支持较多数据,但是存在两个问题:1)不能够实现单桶支持真正的海量数据;2)在单桶存储数据较少时带来元数据管理的复杂度。
现有的解决方案不能从根本上解决问题,难以满足当前用户日益追求的单桶支持海量数据。同时用户在使用存储服务时,对单桶存储的对象个数有着不确定性,通常用户的数据量在使用时才逐渐爆发产生。
本申请引入一种基于存储装置的动态索引方法,即提供了一种新型的分布式哈希算法解决文件读、写过程中的海量数据扩展问题,同时通过优化索引极大提高单桶文件的遍历,提升用户体验。下面对该方法进行详细说明:
图2是根据本申请实施例的一种基于对象存储服务的存储方法的流程图,如图2所示,该方法包括如下步骤:
步骤S202,在对象存储服务的存储桶中初始化预设数量的索引分片,其中,存储桶为对象存储服务中用于存储目标对象的容器,索引分片用于存储目标对象,每个索引分片对应的数值均匀地落入预设数量的索引分片能够存储的数据量的取值范围内;
需要说明的是,商户目标对象即需要存储的海量数据。
图3是根据本申请实施例的一种在存储桶中初始化索引分片的示意图,如图3所示,创建存储桶服务中通过初始化一定数量的索引分片,用户在创建存储桶时可根据不同属性初始化固定数量的分片,分为三个级别:少量10片,标准100片,海量1000片。其中,所有分片取值范围:0-2的23次方(所有索引分片存储的数据量的取值范围),每个索引分片对应的数值均匀的落入取值范围的最大和最小值之间。其具体实现细节通过创建桶时传入参数确定级别。
例如,初始化10片索引分片,这10片索引分片的取值范围为0-10,那么这10片索引分片对应的数值分别为0、1、2…,9。
步骤S204,将待存储的目标对象按照预设算法存储至索引分片。
通过上述步骤,通过分布式哈希算法解决文件读、写过程中的海量数据扩展问题,从而实现了对象存储服务中单个存储桶支持海量数据扩展的技术效果。
根据本申请的一个可选的实施例,步骤S204通过以下方法实现:确定待存储的目标对象的名称的哈希值;利用哈希值对预设数量的索引分片的取值范围进行取余运算,得到运算结果;依据运算结果确定存储待存储的目标对象的索引分片。
图4是根据本申请实施例的一种向索引分片存储数据的示意图,如图4所示,在数据写入时计算哈希值通过一致性哈希算法计算和查询分片。在写入对象时根据对象名称计算hash值,如对象s3.api计算得到的哈希值为123123123122,通过对2的23次方(即步骤S202中的取值范围)取余得到a,落入分片的方式可采用顺时针和逆时针两种方式,本申请实例采用顺时针。若规定顺时针则查询桶元数据后确定落入分片n2,在数据读、写均采用上述方法。
例如,取余得到a的值大于索引分片n1对应的数值,小于索引分片n2对应的数值,由于落入分片的方式采用顺时针方式,此时对象s3.api落入索引分片n2。
根据本申请的另一个可选的实施例,执行步骤S204时,如果第一索引分片中存储的目标对象的数量超过预设阈值,将第一索引分片***为目标索引分片,其中,目标索引分片包括第一索引分片和第二索引分片,第一索引分片为预设数量的索引分片中的任意一个索引分片;将待存储的目标对象存储至目标索引分片。
可选地,将第一索引分片***为目标索引分片具体通过以下方法实现:确定第一索引分片对应的数值以及与第一索引分片相邻的第三索引分片对应的数值的平均值;将平均值作为第二索引分片对应的数值。
图5是根据本申请实施例的一种数据写入索引分片***过程的示意图,如图5所示,当单个索引分片写入的对象超过阈值时,将此索引分片进行***。写入对象object1计算应该落入n3分片,当n3对象个数达到阈值M(100万)时触发n3***,其实现通过计算生成n3和n4的平均值n31分片。
在本申请的另一些可选的实施例中,将待存储的目标对象存储至目标索引分片,包括:将待存储的目标对象分别写入第一索引分片、第二索引分片以及日志;删除第一索引分片和第二索引分片上存储的重复目标对象。
根据本申请的一个可选的实施例,将待存储的目标对象分别写入第一索引分片、第二索引分片以及日志之后,还需要获取读请求;从第一索引分片读取与读请求对应的目标对象;如果从第一索引分片未读取到与读请求对应的目标对象,从第二索引分片读取与读请求对应的目标对象。
***n3期间,n3和n31双写,同时进行n3和n31的去重,完成后更新存储桶的元数据。n3分片在***过程中数据写入元数据更新应同时更新至n31和n3,保障数据的可靠性,同时写入log日志。读请求时访问n3分片,因为此时桶的元数据未更新。n3和n31通过迭代器删除不属于自己分片上对象实现去重。读请求访问原分片n3,读不到时再访问n31。n3和n31分片迭代完成后,可能存在对象没有迭代完成,因此通过读取log日志再次完成去重。
通过上述方法,在索引分片进行***器件,通过在原索引分片和***生成的新索引分片中均写入元数据,并且依次单独从原索引分片和***生成的新索引分片读取元数据,可以保证数据的可靠性,避免在索引分片***的过程中,发生元数据丢失的问题。
通过单分片的***解决了图1所示方法存在的写保护和无法实现单个存储桶支持海量数据存储的问题。
根据本申请的一个可选的实施例,步骤S204执行完成之后,将存储桶中的索引分片缓存至内存;在存储桶中的任意一个索引分片中存储的目标对象发生变化的情况下,更新存储桶中其他索引分片中存储的目标对象。
在本步骤中,将数据(对象)写入索引分片后,更新存储桶的元数据,对于桶的元数据通过订阅式缓存的方式缓存在内存中。
图6是根据本申请实施例的一种存储桶元数据更新过程的示意图,如图6所示,由于对象的读写访问都要访问分片信息,为了提升性能,将存储桶的元数据缓存在内存中,桶元数据发生变化后通知所有节点更新元数据,解决了数据不一致性问题。
在本申请的一些可选的实施例中,将存储桶中的索引分片缓存至内存之后,从索引分片中查询与查询指令对应的目标对象,其中,查询指令用于从存储桶中查找目标对象;输出与查询指令对应的目标对象。
在本申请的另一些可选的实施例中,从索引分片中查询与查询指令对应的目标对象,包括:分别确定每个索引分片的权重值;依据权重值分别从每个索引分片读取目标对象列表;对目标对象列表进行排序。
图7是根据本申请实施例的一种从存储桶中查询数据的示意图,如图7所示,在对存储桶对象索引时,通过计算分片的权重值分别读取分片上一定比例的对象列表,最后通过多线程计算排序返回给用户,提高了查询速度。原有逻辑通过多线程访问每个分片列举1000个对象,最终通过排序返回对象列表,当分片过多时查询速度非常慢。修改后的逻辑通过访问分片元数据信息向上取整按比例返回对象个数,提高查询速度,例如n1返回1,n2返回500…n10返回6个。
通过计算分片的权重值分别读取分片上一定比例的对象列表,最后通过多线程计算排序返回给用户,提高了查询速度。
本申请实施例提供的上述方法,利用分布式哈希算法解决了文件读、写过程中的海量数据扩展问题,不仅解决了数据热点问题,而且实现了单桶对象海量数据扩展。在遍历桶对象过程中,通过优化索引极大提高单桶文件的遍历速度,提升用户体验。
图8是根据本申请实施例的一种基于对象存储服务的存储装置的结构框图,如图8所示,该装置包括:
设置模块80,用于在对象存储服务的存储桶中初始化预设数量的索引分片,其中,存储桶为对象存储服务中用于存储目标对象的容器,索引分片用于存储目标对象,每个索引分片对应的数值均匀地落入预设数量的索引分片能够存储的数据量的取值范围内;
存储模块82,用于将待存储的目标对象按照预设算法存储至索引分片。
需要说明的是,图8所示实施例的优选实施方式可以参见图2所示实施例的相关描述,此处不再赘述。
本申请实施例还提供了一种非易失性存储介质,非易失性存储介质包括存储的程序,其中,在程序运行时控制非易失性存储介质所在设备执行以上的基于对象存储服务的存储方法。
上述非易失性存储介质用于存储执行以下功能的程序:在对象存储服务的存储桶中初始化预设数量的索引分片,其中,存储桶为对象存储服务中用于存储目标对象的容器,索引分片用于存储目标对象,每个索引分片对应的数值均匀地落入预设数量的索引分片能够存储的数据量的取值范围内;将待存储的目标对象按照预设算法存储至索引分片。
本申请实施例还提供了一种处理器,处理器用于运行存储在存储器中的程序,其中,程序运行时执行以上的基于对象存储服务的存储方法。
上述处理器用于处理执行以下功能的程序:在对象存储服务的存储桶中初始化预设数量的索引分片,其中,存储桶为对象存储服务中用于存储目标对象的容器,索引分片用于存储目标对象,每个索引分片对应的数值均匀地落入预设数量的索引分片能够存储的数据量的取值范围内;将待存储的目标对象按照预设算法存储至索引分片。
上述本申请实施例序号仅仅为了描述,不代表实施例的优劣。
在本申请的上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。
在本申请所提供的几个实施例中,应该理解到,所揭露的技术内容,可通过其它的方式实现。其中,以上所描述的装置实施例仅仅是示意性的,例如所述单元的划分,可以为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个***,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,单元或模块的间接耦合或通信连接,可以是电性或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对相关技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可为个人计算机、服务器或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述仅是本申请的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本申请原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本申请的保护范围。
Claims (11)
1.一种基于对象存储服务的存储方法,其特征在于,包括:
在对象存储服务的存储桶中初始化预设数量的索引分片,其中,所述存储桶为所述对象存储服务中用于存储目标对象的容器,所述索引分片用于存储所述目标对象,每个所述索引分片对应的数值均匀地落入所述预设数量的索引分片能够存储的数据量的取值范围内;
将待存储的目标对象按照预设算法存储至所述索引分片。
2.根据权利要求1所述的方法,其特征在于,将待存储的目标对象按照预设算法存储至所述索引分片,包括:
确定所述待存储的目标对象的名称的哈希值;
利用所述哈希值对所述预设数量的索引分片的取值范围进行取余运算,得到运算结果;
依据所述运算结果确定存储所述待存储的目标对象的索引分片。
3.根据权利要求1或2所述的方法,其特征在于,将待存储的目标对象按照预设算法存储至所述索引分片,还包括:
如果第一索引分片中存储的目标对象的数量超过预设阈值,将所述第一索引分片***为目标索引分片,其中,所述目标索引分片包括所述第一索引分片和第二索引分片,所述第一索引分片为所述预设数量的索引分片中的任意一个索引分片;
将所述待存储的目标对象存储至所述目标索引分片。
4.根据权利要求3所述的方法,其特征在于,将所述第一索引分片***为目标索引分片,包括:
确定所述第一索引分片对应的数值以及与所述第一索引分片相邻的第三索引分片对应的数值的平均值;
将所述平均值作为所述第二索引分片对应的数值。
5.根据权利要求4所述的方法,其特征在于,将所述待存储的目标对象存储至所述目标索引分片,包括:
将所述待存储的目标对象分别写入所述第一索引分片、所述第二索引分片以及日志;
删除所述第一索引分片和所述第二索引分片上存储的重复目标对象。
6.根据权利要求5所述的方法,其特征在于,将所述待存储的目标对象分别写入所述第一索引分片、所述第二索引分片以及日志之后,所述方法还包括:
获取读请求;
从所述第一索引分片读取与所述读请求对应的目标对象;
如果从所述第一索引分片未读取到与所述读请求对应的目标对象,从所述第二索引分片读取与所述读请求对应的目标对象。
7.根据权利要求1所述的方法,其特征在于,将所述待存储的目标对象存储至所述索引分片之后,所述方法还包括:
将所述存储桶中的索引分片缓存至内存;
在所述存储桶中的任意一个索引分片中存储的目标对象发生变化的情况下,更新所述存储桶中其他索引分片中存储的目标对象。
8.根据权利要求7所述的方法,其特征在于,将所述存储桶中的索引分片缓存至内存之后,所述方法还包括:
从所述索引分片中查询与查询指令对应的目标对象,其中,所述查询指令用于从所述存储桶中查找所述目标对象;
输出与所述查询指令对应的目标对象。
9.根据权利要求8所述的方法,其特征在于,从所述索引分片中查询与查询指令对应的目标对象,包括:
分别确定每个所述索引分片的权重值;
依据所述权重值分别从所述每个所述索引分片读取目标对象列表;
对所述目标对象列表进行排序。
10.一种基于对象存储服务的存储装置,其特征在于,包括:
设置模块,用于在对象存储服务的存储桶中初始化预设数量的索引分片,其中,所述存储桶为所述对象存储服务中用于存储目标对象的容器,所述索引分片用于存储所述目标对象,每个所述索引分片对应的数值均匀地落入所述预设数量的索引分片能够存储的数据量的取值范围内;
存储模块,用于将待存储的目标对象按照预设算法存储至所述索引分片。
11.一种非易失性存储介质,其特征在于,所述非易失性存储介质包括存储的程序,其中,在所述程序运行时控制所述非易失性存储介质所在设备执行权利要求1至9中任意一项所述的基于对象存储服务的存储方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110421022.5A CN113010526A (zh) | 2021-04-19 | 2021-04-19 | 基于对象存储服务的存储方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110421022.5A CN113010526A (zh) | 2021-04-19 | 2021-04-19 | 基于对象存储服务的存储方法及装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN113010526A true CN113010526A (zh) | 2021-06-22 |
Family
ID=76388729
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110421022.5A Pending CN113010526A (zh) | 2021-04-19 | 2021-04-19 | 基于对象存储服务的存储方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113010526A (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113612705A (zh) * | 2021-08-02 | 2021-11-05 | 广西电网有限责任公司 | 基于哈希算法分片及重组的电网监控***数据传输方法 |
CN113625952A (zh) * | 2021-06-30 | 2021-11-09 | 济南浪潮数据技术有限公司 | 一种对象存储方法、装置、设备及存储介质 |
CN113703678A (zh) * | 2021-08-20 | 2021-11-26 | 济南浪潮数据技术有限公司 | 一种存储桶索引重***的方法、装置、设备和介质 |
CN117724663A (zh) * | 2024-02-07 | 2024-03-19 | 济南浪潮数据技术有限公司 | 一种数据存储方法、***、设备及计算机可读存储介质 |
Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102855294A (zh) * | 2012-08-13 | 2013-01-02 | 北京联创信安科技有限公司 | 一种智能哈希数据布局方法、集群存储***及其方法 |
CN104794162A (zh) * | 2015-03-25 | 2015-07-22 | 中国人民大学 | 实时数据存储与查询方法 |
CN106293490A (zh) * | 2015-05-12 | 2017-01-04 | 中兴通讯股份有限公司 | 数据存储、读取的方法、装置及*** |
CN109871181A (zh) * | 2017-12-01 | 2019-06-11 | 航天信息股份有限公司 | 一种对象存取方法及装置 |
CN110162528A (zh) * | 2019-05-24 | 2019-08-23 | 安徽芃睿科技有限公司 | 海量大数据检索方法及*** |
CN110457281A (zh) * | 2019-08-14 | 2019-11-15 | 北京博睿宏远数据科技股份有限公司 | 数据处理方法、装置、设备及介质 |
CN111240588A (zh) * | 2019-12-31 | 2020-06-05 | 清华大学 | 一种持久性内存对象存储*** |
CN111797096A (zh) * | 2020-06-29 | 2020-10-20 | 中国平安财产保险股份有限公司 | 基于ElasticSearch的数据索引方法、装置、计算机设备及存储介质 |
CN112417036A (zh) * | 2018-09-10 | 2021-02-26 | 华为技术有限公司 | 分布式存储***中处理对象的元数据的方法及装置 |
CN112486915A (zh) * | 2020-12-18 | 2021-03-12 | 上海哔哩哔哩科技有限公司 | 数据存储方法及装置 |
-
2021
- 2021-04-19 CN CN202110421022.5A patent/CN113010526A/zh active Pending
Patent Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102855294A (zh) * | 2012-08-13 | 2013-01-02 | 北京联创信安科技有限公司 | 一种智能哈希数据布局方法、集群存储***及其方法 |
CN104794162A (zh) * | 2015-03-25 | 2015-07-22 | 中国人民大学 | 实时数据存储与查询方法 |
CN106293490A (zh) * | 2015-05-12 | 2017-01-04 | 中兴通讯股份有限公司 | 数据存储、读取的方法、装置及*** |
CN109871181A (zh) * | 2017-12-01 | 2019-06-11 | 航天信息股份有限公司 | 一种对象存取方法及装置 |
CN112417036A (zh) * | 2018-09-10 | 2021-02-26 | 华为技术有限公司 | 分布式存储***中处理对象的元数据的方法及装置 |
CN110162528A (zh) * | 2019-05-24 | 2019-08-23 | 安徽芃睿科技有限公司 | 海量大数据检索方法及*** |
CN110457281A (zh) * | 2019-08-14 | 2019-11-15 | 北京博睿宏远数据科技股份有限公司 | 数据处理方法、装置、设备及介质 |
CN111240588A (zh) * | 2019-12-31 | 2020-06-05 | 清华大学 | 一种持久性内存对象存储*** |
CN111797096A (zh) * | 2020-06-29 | 2020-10-20 | 中国平安财产保险股份有限公司 | 基于ElasticSearch的数据索引方法、装置、计算机设备及存储介质 |
CN112486915A (zh) * | 2020-12-18 | 2021-03-12 | 上海哔哩哔哩科技有限公司 | 数据存储方法及装置 |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113625952A (zh) * | 2021-06-30 | 2021-11-09 | 济南浪潮数据技术有限公司 | 一种对象存储方法、装置、设备及存储介质 |
CN113612705A (zh) * | 2021-08-02 | 2021-11-05 | 广西电网有限责任公司 | 基于哈希算法分片及重组的电网监控***数据传输方法 |
CN113612705B (zh) * | 2021-08-02 | 2023-08-22 | 广西电网有限责任公司 | 基于哈希算法分片及重组的电网监控***数据传输方法 |
CN113703678A (zh) * | 2021-08-20 | 2021-11-26 | 济南浪潮数据技术有限公司 | 一种存储桶索引重***的方法、装置、设备和介质 |
CN113703678B (zh) * | 2021-08-20 | 2023-12-22 | 济南浪潮数据技术有限公司 | 一种存储桶索引重***的方法、装置、设备和介质 |
CN117724663A (zh) * | 2024-02-07 | 2024-03-19 | 济南浪潮数据技术有限公司 | 一种数据存储方法、***、设备及计算机可读存储介质 |
CN117724663B (zh) * | 2024-02-07 | 2024-07-02 | 济南浪潮数据技术有限公司 | 一种数据存储方法、***、设备及计算机可读存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN113010526A (zh) | 基于对象存储服务的存储方法及装置 | |
CN108255958B (zh) | 数据查询方法、装置和存储介质 | |
CN111008185B (zh) | 一种数据共享方法、***及设备 | |
US10331641B2 (en) | Hash database configuration method and apparatus | |
US10534547B2 (en) | Consistent transition from asynchronous to synchronous replication in hash-based storage systems | |
CN110019004B (zh) | 一种数据处理方法、装置及*** | |
CN111078653B (zh) | 一种数据存储方法、***及设备 | |
US10210188B2 (en) | Multi-tiered data storage in a deduplication system | |
CN107704202B (zh) | 一种数据快速读写的方法和装置 | |
WO2018121430A1 (zh) | 文件存储和索引方法、装置、介质、设备及读取文件的方法 | |
US20200334292A1 (en) | Key value append | |
CN110168532B (zh) | 数据更新方法和存储装置 | |
CN111090618B (zh) | 一种数据读取方法、***及设备 | |
CN111813813B (zh) | 一种数据管理方法、装置、设备及存储介质 | |
CN110888837B (zh) | 对象存储小文件归并方法及装置 | |
CN103019887A (zh) | 数据备份方法及装置 | |
CN104408163A (zh) | 一种数据分级存储方法和装置 | |
CN113535670B (zh) | 一种虚拟化资源镜像存储***及其实现方法 | |
CN103995855A (zh) | 存储数据的方法和装置 | |
CN115454994A (zh) | 一种基于分布式键值数据库的元数据存储方法及装置 | |
CN109407985B (zh) | 一种数据管理的方法以及相关装置 | |
CN112511629B (zh) | 一种mpt结构的账户树的数据压缩方法及*** | |
CN101635001A (zh) | 从数据库提取信息的方法和设备 | |
CN117573676A (zh) | 基于存储***的地址处理方法、装置、存储***及介质 | |
CN115129789A (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 | ||
CB02 | Change of applicant information |
Address after: 100094 101, floors 1-5, building 7, courtyard 3, fengxiu Middle Road, Haidian District, Beijing Applicant after: Beijing Xingchen Tianhe Technology Co.,Ltd. Address before: 100097 room 806-1, block B, zone 2, Jinyuan times shopping center, indigo factory, Haidian District, Beijing Applicant before: XSKY BEIJING DATA TECHNOLOGY Corp.,Ltd. |
|
CB02 | Change of applicant information |