CN114356241B - 小对象数据的存储方法、装置、电子设备和可读介质 - Google Patents
小对象数据的存储方法、装置、电子设备和可读介质 Download PDFInfo
- Publication number
- CN114356241B CN114356241B CN202111683653.0A CN202111683653A CN114356241B CN 114356241 B CN114356241 B CN 114356241B CN 202111683653 A CN202111683653 A CN 202111683653A CN 114356241 B CN114356241 B CN 114356241B
- Authority
- CN
- China
- Prior art keywords
- metadata
- object data
- small object
- aggregation
- appointed
- 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 79
- 238000013500 data storage Methods 0.000 title abstract description 14
- 230000002776 aggregation Effects 0.000 claims abstract description 111
- 238000004220 aggregation Methods 0.000 claims abstract description 111
- 238000003860 storage Methods 0.000 claims abstract description 55
- 230000008030 elimination Effects 0.000 claims abstract description 29
- 238000003379 elimination reaction Methods 0.000 claims abstract description 29
- 230000004931 aggregating effect Effects 0.000 claims abstract description 14
- 238000004422 calculation algorithm Methods 0.000 claims description 42
- 230000000694 effects Effects 0.000 claims description 6
- 238000004364 calculation method Methods 0.000 claims description 5
- 238000010586 diagram Methods 0.000 description 18
- 230000006870 function Effects 0.000 description 10
- 238000011478 gradient descent method Methods 0.000 description 7
- 230000008569 process Effects 0.000 description 7
- 238000012545 processing Methods 0.000 description 7
- 238000004891 communication Methods 0.000 description 4
- 238000005516 engineering process Methods 0.000 description 4
- 238000009826 distribution Methods 0.000 description 3
- 230000003287 optical effect Effects 0.000 description 3
- 238000005457 optimization Methods 0.000 description 3
- 238000011084 recovery Methods 0.000 description 3
- 230000006978 adaptation Effects 0.000 description 2
- 230000008859 change Effects 0.000 description 2
- 230000003247 decreasing effect Effects 0.000 description 2
- 230000007547 defect Effects 0.000 description 2
- 238000009795 derivation Methods 0.000 description 2
- 238000013508 migration Methods 0.000 description 2
- 230000005012 migration Effects 0.000 description 2
- 239000013307 optical fiber Substances 0.000 description 2
- 230000000644 propagated effect Effects 0.000 description 2
- 230000009471 action Effects 0.000 description 1
- 230000003044 adaptive effect Effects 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 230000000903 blocking effect Effects 0.000 description 1
- 230000008602 contraction Effects 0.000 description 1
- 230000007423 decrease Effects 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000002708 enhancing effect Effects 0.000 description 1
- 239000000835 fiber Substances 0.000 description 1
- 239000012634 fragment Substances 0.000 description 1
- 238000013467 fragmentation Methods 0.000 description 1
- 238000006062 fragmentation reaction Methods 0.000 description 1
- 238000007726 management method Methods 0.000 description 1
- 230000000737 periodic effect Effects 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 230000003252 repetitive effect Effects 0.000 description 1
- 238000012827 research and development Methods 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 238000000926 separation method Methods 0.000 description 1
- 238000012163 sequencing technique Methods 0.000 description 1
- 230000002123 temporal effect Effects 0.000 description 1
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本公开提供一种小对象数据的存储方法、装置、电子设备和可读介质,其中,小对象数据的存储方法包括:接收待存储的小对象数据;将小对象数据的元数据写入分布式KV集群;将元数据中的指定元数据写入LRU缓存区,并按照预设淘汰条件对LRU缓存区的指定元数据进行淘汰;对LRU缓存区淘汰的指定元数据发送至聚合区,并对聚合区的指定元数据进行聚合;将聚合后的指定元数据写入后端存储器。通过本公开实施例,提升了海量小对象数据的读写效率,降低了数据存储压力。
Description
技术领域
本公开涉及数据存储技术领域,具体而言,涉及一种小对象数据的存储方法、装置、电子设备和可读介质。
背景技术
目前,随着云计算和大数据的迅速发展,全球数据存储量呈指数递增,随着小对象数量的不断增大,大部分分布式存储系统已经不能满足海量小对象的高效存储和读取的需求。
在相关技术中,采用分布式对象系统对海量小对象数据进行存储,分布式对象技术是在面向对象技术的基础上发展起来的,它要解决的主要问题是位于不同进程中的对象之间的调用问题。在中间件系统、Web服务以及SOA(Service Oriented Architecture,面向服务架构)的研究与开发等许多重要领域,分布式对象技术都发挥着不可替代的作用。
但是,采用分布式对象技术对海量小对象数据进行存储时,至少存在以下技术缺陷:
1.针对海量数据的性能问题,在Linux环境下,海量的小对象数据会产生海量的inode(索引节点,每个对象唯一,主要保存对象的元数据),每个inode占用256字节,1亿个小对象就占用了24G存储空间。海量的小对象数据会有大量的元数据,可能会造成大量的元数据不能加载到内存,用到时需要去磁盘加载,而磁盘访问的效率远远低于内存的访问效率。另外,海量的小对象数据会破坏空间的连续性,会产生大量的随机读写。
2.针对数据恢复效率问题,在海量的小对象数据场景下,在面对集群扩容或者换盘导致的数据恢复时,由于存在大量的小对象数据迁移,因此会导致频繁的磁盘写操作,导致集群的恢复效率比较慢,在此期间如果有业务请求过来,可能会出现请求等待或者阻塞的情况,进而导致较高的响应时延,这对于线上业务是无法接受的。
3.针对本地磁盘对象的访问问题,对于常见的Linux系统,读取一个对象通常需要三次磁盘IO,即读取目录元数据到内存,把对象的inode节点装载到内存,最后读取实际的对象内容,按照目前主流的2TB~6TB的sata盘,可以存储2kw~6kw个100KB大小的小对象数据,由于小对象数据的数量太多,无法将所有目录及对象的inode信息缓存到内存,很难实现只需要一次磁盘IO即可读取每个对象的理想状态。
需要说明的是,在上述背景技术部分公开的信息仅用于加强对本公开的背景的理解,因此可以包括不构成对本领域普通技术人员已知的现有技术的信息。
发明内容
本公开的目的在于提供一种小对象数据的存储方法、装置、电子设备和可读介质,用于至少在一定程度上克服由于相关技术的限制和缺陷而导致的分布式存储系统中的小对象数据的读写效率低下的问题。
根据本公开实施例的第一方面,提供一种小对象数据的存储方法,包括:接收待存储的小对象数据;将所述小对象数据的元数据写入分布式KV集群;将所述元数据中的指定元数据写入LRU缓存区,并按照预设淘汰条件对所述LRU缓存区的指定元数据进行淘汰;对所述LRU缓存区淘汰的指定元数据发送至聚合区,并对所述聚合区的指定元数据进行聚合;将聚合后的指定元数据写入后端存储器。
在本公开的一种示例性实施例中,所述分布式KV集群用于存储所述小对象数据的索引,所述小对象数据的存储方法还包括:在完成所述元数据的聚合后,触发所述分布式KV集群对聚合后的元数据的二级索引进行存储。
在本公开的一种示例性实施例中,按照预设淘汰条件对所述LRU缓存区的指定元数据进行淘汰包括:确定所述LRU缓存区的指定元数据的访问次数;判断所述访问次数是否满足所述预设淘汰条件;根据所述预设淘汰条件的判定结果,对所述LRU缓存区的指定元数据进行淘汰。
在本公开的一种示例性实施例中,将所述元数据中的指定元数据写入LRU缓存区,并按照预设淘汰条件对所述LRU缓存区的指定元数据进行淘汰包括:通过LRU-K算法记录所有待缓存的指定元数据的访问历史;根据所述访问历史确定所述待缓存的指定元数据的访问次数;判断所述访问次数是否满足预设访问次数的要求;若判定所述访问次数满足所述预设访问次数的要求,则将满足访问次数要求的指定元数据写入LRU缓存区;按照所述预设淘汰条件对所述LRU缓存区的指定元数据进行淘汰。
在本公开的一种示例性实施例中,按照所述预设淘汰条件对所述LRU缓存区的指定元数据进行淘汰包括:确定所述LRU缓存区的指定元数据的最后一次的访问时间;在检测到所述LRU缓存区的队列长度达到预设长度时,根据所述访问时间淘汰所述LRU缓存区中的指定元数据。
在本公开的一种示例性实施例中,对所述LRU缓存区淘汰的指定元数据发送至聚合区,并对所述聚合区的指定元数据进行聚合包括:对所述LRU缓存区淘汰的指定元数据发送至聚合区;采用一致性哈希算法对所述聚合区的指定元数据进行计算;根据所述一致性哈希算法的计算结果确定聚合对象;根据所述聚合对象中的小对象数据的数量对所述指定元数据进行聚合。
在本公开的一种示例性实施例中,根据所述聚合对象的数量对所述指定元数据进行聚合包括:判断任一所述聚合对象的小对象数据的数量是否大于所述小对象数据的平均数量;若判定一个所述聚合对象的小对象数据的数量大于所述平均数量,则开放地址法重新寻址;若判定一个所述聚合对象的小对象数据的数量小于活动等于所述平均数量,则更新所述聚合对象对应的聚合事务,其中,所述聚合对象中的小对象数据的数量被配置为通过梯度下降算法进行均衡。
根据本公开实施例的第二方面,提供一种小对象数据的存储装置,包括:接收模块,设置为接收待存储的小对象数据;写入模块,设置为将所述小对象数据的元数据写入分布式KV集群;缓存模块,设置为将所述元数据中的指定元数据写入LRU缓存区,并按照预设淘汰条件对所述LRU缓存区的指定元数据进行淘汰;聚合模块,设置为对所述LRU缓存区淘汰的指定元数据发送至聚合区,并对所述聚合区的指定元数据进行聚合;所述写入模块,设置为将聚合后的指定元数据写入后端存储器。
根据本公开的第三方面,提供一种电子设备,包括:存储器;以及耦合到所述存储器的处理器,所述处理器被配置为基于存储在所述存储器中的指令,执行如上述任意一项所述的方法。
根据本公开的第四方面,提供一种计算机可读存储介质,其上存储有程序,该程序被处理器执行时实现如上述任意一项所述的小对象数据的存储方法。
本公开实施例,通过接收待存储的小对象数据,并将所述小对象数据的元数据写入分布式KV集群,然后将所述元数据中的指定元数据写入LRU缓存区,并按照预设淘汰条件对所述LRU缓存区的指定元数据进行淘汰,进而对所述LRU缓存区淘汰的指定元数据发送至聚合区,并对所述聚合区的指定元数据进行聚合,最后将聚合后的指定元数据写入后端存储器,提升了海量小对象数据的读写效率,降低了数据存储压力。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本公开。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本公开的实施例,并与说明书一起用于解释本公开的原理。显而易见地,下面描述中的附图仅仅是本公开的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1示出了可以应用本公开实施例的小对象数据的存储方法或装置的示例性系统架构的示意图;
图2是本公开示例性实施例中一种小对象数据的存储方法的流程图;
图3是本公开示例性实施例中另一种小对象数据的存储方法的流程图;
图4是本公开示例性实施例中另一种小对象数据的存储方法的流程图;
图5是本公开示例性实施例中另一种小对象数据的存储方法的流程图;
图6是本公开示例性实施例中另一种小对象数据的存储方法的流程图;
图7是本公开示例性实施例中另一种小对象数据的存储方法的流程图;
图8是本公开示例性实施例中另一种小对象数据的存储方法的流程图;
图9是本公开示例性实施例中另一种小对象数据的存储方法的聚合过程的示意图;
图10是本公开示例性实施例中一种小对象数据的存储方法的存储架构示意图;
图11是本公开示例性实施例中一种小对象数据的存储方法中的LRU-K算法的原理图;
图12是本公开示例性实施例中一种小对象数据的存储方法中的数据分离过程的示意图;
图13是本公开示例性实施例中一种小对象数据的存储方法中的hash算法的原理图;
图14是本公开示例性实施例中一种小对象数据的存储方法中的hash空间的示意图;
图15是本公开示例性实施例中另一种小对象数据的存储方法中的hash空间的示意图;
图16是本公开示例性实施例中一种小对象数据的存储方法中的hash散列的分布示意图;
图17是本公开示例性实施例中另一种小对象数据的存储方法中的梯度下降法搜索迭代的示意图;
图18是本公开示例性实施例中另一种小对象数据的存储方法中的hash散列的分布示意图;
图19是本公开示例性实施例中一种小对象数据的存储装置的方框图;
图20是本公开示例性实施例中一种电子设备的方框图。
具体实施方式
现在将参考附图更全面地描述示例实施方式。然而,示例实施方式能够以多种形式实施,且不应被理解为限于在此阐述的范例;相反,提供这些实施方式使得本公开将更加全面和完整,并将示例实施方式的构思全面地传达给本领域的技术人员。所描述的特征、结构或特性可以以任何合适的方式结合在一个或更多实施方式中。在下面的描述中,提供许多具体细节从而给出对本公开的实施方式的充分理解。然而,本领域技术人员将意识到,可以实践本公开的技术方案而省略所述特定细节中的一个或更多,或者可以采用其它的方法、组元、装置、步骤等。在其它情况下,不详细示出或描述公知技术方案以避免喧宾夺主而使得本公开的各方面变得模糊。
此外,附图仅为本公开的示意性图解,图中相同的附图标记表示相同或类似的部分,因而将省略对它们的重复描述。附图中所示的一些方框图是功能实体,不一定必须与物理或逻辑上独立的实体相对应。可以采用软件形式来实现这些功能实体,或在一个或多个硬件模块或集成电路中实现这些功能实体,或在不同网络和/或处理器装置和/或微控制器装置中实现这些功能实体。
图1示出了可以应用本公开实施例的小对象数据的存储方法或装置的示例性系统架构的示意图。
如图1所示,系统架构100可以包括终端设备101、102、103中的一种或多种,网络104和服务器105。网络104用以在终端设备101、102、103和服务器105之间提供通信链路的介质。网络104可以包括各种连接类型,例如有线、无线通信链路或者光纤电缆等等。
应该理解,图1中的终端设备、网络和服务器的数目仅仅是示意性的。根据实现需要,可以具有任意数目的终端设备、网络和服务器。比如服务器105可以是多个服务器组成的服务器集群等。
用户可以使用终端设备101、102、103通过网络104与服务器105交互,以接收或发送消息等。终端设备101、102、103可以是具有显示屏的各种电子设备,包括但不限于智能手机、平板电脑、便携式计算机和台式计算机等等。
在一些实施例中,本公开实施例所提供的小对象数据的存储方法一般由服务器105执行,相应地,小对象数据的存储装置一般设置于终端设备103(也可以是终端设备101或102)中。在另一些实施例中,某些服务器可以具有与终端设备相似的功能从而执行本方法。因此,本公开实施例所提供的小对象数据的存储方法不限定在终端设备执行。
下面结合附图对本公开示例实施方式进行详细说明。
图2是本公开示例性实施例中小对象数据的存储方法的流程图。
参考图2,小对象数据的存储方法可以包括:
步骤S202,接收待存储的小对象数据。
步骤S204,将所述小对象数据的元数据写入分布式KV(Key-Value,键值)集群。
步骤S206,将所述元数据中的指定元数据写入LRU(Least Recently Used,最近最少使用)缓存区,并按照预设淘汰条件对所述LRU缓存区的指定元数据进行淘汰。
步骤S208,对所述LRU缓存区淘汰的指定元数据发送至聚合区,并对所述聚合区的指定元数据进行聚合。
步骤S210,将聚合后的指定元数据写入后端存储器。
本公开实施例,通过接收待存储的小对象数据,并将所述小对象数据的元数据写入分布式KV集群,然后将所述元数据中的指定元数据写入LRU缓存区,并按照预设淘汰条件对所述LRU缓存区的指定元数据进行淘汰,进而对所述LRU缓存区淘汰的指定元数据发送至聚合区,并对所述聚合区的指定元数据进行聚合,最后将聚合后的指定元数据写入后端存储器,提升了海量小对象数据的读写效率,降低了数据存储压力。
下面,对小对象数据的存储方法的各步骤进行详细说明。
在本公开的一种示例性实施例中,如图3所示,所述分布式KV集群用于存储所述小对象数据的索引,所述小对象数据的存储方法还包括:
步骤S302,在完成所述元数据的聚合后,触发所述分布式KV集群对聚合后的元数据的二级索引进行存储。
在本公开的一种示例性实施例中,如图4所示,按照预设淘汰条件对所述LRU缓存区的指定元数据进行淘汰包括:
步骤S402,确定所述LRU缓存区的指定元数据的访问次数。
步骤S404,判断所述访问次数是否满足所述预设淘汰条件。
步骤S406,根据所述预设淘汰条件的判定结果,对所述LRU缓存区的指定元数据进行淘汰。
在本公开的一种示例性实施例中,如图5所示,将所述元数据中的指定元数据写入LRU缓存区,并按照预设淘汰条件对所述LRU缓存区的指定元数据进行淘汰包括:
步骤S502,通过LRU-K(最近使用过K次)算法记录所有待缓存的指定元数据的访问历史。
步骤S504,根据所述访问历史确定所述待缓存的指定元数据的访问次数。
步骤S506,判断所述访问次数是否满足预设访问次数的要求,若是,则执行步骤S508,若否,则执行步骤S510。
步骤S508,若判定所述访问次数满足所述预设访问次数的要求,则将满足访问次数要求的指定元数据写入LRU缓存区。
步骤S510,按照所述预设淘汰条件对所述LRU缓存区的指定元数据进行淘汰。
在本公开的一种示例性实施例中,如图6所示,按照所述预设淘汰条件对所述LRU缓存区的指定元数据进行淘汰包括:
步骤S602,确定所述LRU缓存区的指定元数据的最后一次的访问时间。
步骤S604,在检测到所述LRU缓存区的队列长度达到预设长度时,根据所述访问时间淘汰所述LRU缓存区中的指定元数据。
在本公开的一种示例性实施例中,如图7所示,对所述LRU缓存区淘汰的指定元数据发送至聚合区,并对所述聚合区的指定元数据进行聚合包括:
步骤S702,对所述LRU缓存区淘汰的指定元数据发送至聚合区。
步骤S704,采用一致性哈希算法对所述聚合区的指定元数据进行计算。
步骤S706,根据所述一致性哈希算法的计算结果确定聚合对象。
步骤S708,根据所述聚合对象中的小对象数据的数量对所述指定元数据进行聚合。
在本公开的一种示例性实施例中,根据所述聚合对象的数量对所述指定元数据进行聚合包括:判断任一所述聚合对象的小对象数据的数量是否大于所述小对象数据的平均数量;若判定一个所述聚合对象的小对象数据的数量大于所述平均数量,则开放地址法重新寻址;若判定一个所述聚合对象的小对象数据的数量小于活动等于所述平均数量,则更新所述聚合对象对应的聚合事务,其中,所述聚合对象中的小对象数据的数量被配置为通过梯度下降算法进行均衡。
在本公开的一种示例性实施例中,如图8所示,小对象数据的存储方法的步骤包括:
步骤S802,接收客户端上传的小对象数据。
步骤S804,将小数据的元数据和指定元数据分别写入KV和LRU cache。
步骤S806,数据写入小对象数据缓存池。
步骤S808,LRU将访问较少的小对象数据的元数据信息淘汰至merge模块。
步骤S810,merge(聚类)模块计算各个聚合对象中存储的小对象数据的平均数量。
步骤S812,merge模块进行一致性hash(哈希)计算,确定聚合对象。
步骤S814,判断聚合对象的小对象大小是否达到阈值,若是,则执行步骤S816,若否,则执行步骤S818。
步骤S816,开放地址法重新寻址。
步骤S818,更新聚合对象对应的聚合事务,并返回步骤S814。
步骤S820,判断聚合对象的大小是否达到阈值,若是,则执行步骤S822,若否,则执行步骤S802。
步骤S822,执行聚合对象对应的聚合事务,将聚合对象写入后端存储。
步骤S824,更新对象元数据仓储索引信息。
在本公开的一种示例性实施例中,如图9所示,对小对象数据的元数据进行聚合前包括obj1、obj2、obj3、obj4、……、objN等对象,聚合后的对象元数据的一次索引信息902包括第一聚合对象merge_obj_1,第一聚合对象merge_obj_1的元数据信息包括obj1、obj2、obj3、obj4、……、objN表示的元数据,第二聚合对象merge_obj_2的元数据信息包括多个obj表示的元数据。另外,聚合后的二次索引信息904包括:obj1对应的merge_obj_1,offset(补偿),size(尺寸);obj2对应的merge_obj_1,offset,size;obj3对应的merge_obj_1,offset(补偿),size(尺寸);obj4对应的merge_obj_1,offset,size;……;obj1对应的merge_obj_N,offset(补偿),size(尺寸)。
进一步地,在对数据进行查询的过程中,首先去LRU cache中查询,如果LRU cache中不存在,则去分布式KV集群中查询,两次查询即可返回,读取流程在查询流程的基础上增加了一次IO,要么是从小对象数据缓存池中读取,要么从聚合对象中读取。
在本公开的一种示例性实施例中,如图10所示,小对象数据的存储方法的存储架构基于对象网关服务1000实现,具体包括:后端对象数据存储1002、小对象数据缓存池1004、LRU cache1006、merge模块1008和对象元数据仓储(分布式KV集群)。
具体地,相关技术中的对象存储方案只包括对象网关服务和后端数据存储两部分,而本公开增加了专有的merge模块1008以及用于存储对象元数据的分布式KV集群。
另外,本公开还增加LRU cache 1006筛选“冷”对象,并优先送入merge模块1008进行聚合。
其中,小对象数据缓存池1004专门负责存储小对象数据,为merge模块1008提供聚合数据。对象元数据仓储用于存储对象索引以及聚合后的小对象二级索引等,以此加速数据的存取,提升系统服务性能。
进一步地,分布式KV集群和LRU cache(缓存)1006作为本公开的核心功能模块的原理和效果如下:
1.分布式KV集群:作为对象元数据仓储,保存对象的元数据(包括omap、xattrs),用于实现对象元数据和对象数据的分离,同时存储小对象聚合后的二级索引等。索引数据通常数据量不大,可以全部加载到内存中,读取小对象时可以先访问内存中的索引数据,然后根据索引数据中记录的二级索引信息得到小对象的实际存储位置,进而实现读取操作只进行一次磁盘IO(读写)的目的。
2.LRU cache 1006:缓存小对象数据的部分元数据,记录小对象数据的冷热信息,从而挑选出应该聚合的小对象数据。
但是,LRU算法在面对偶发性、周期性的批量操作时会出现命中率急剧下降,缓存污染较严重的情况。
因此,针对LRU算法的缺陷,如图11所示,本公开使用LRU-K算法1100,LRU-K算法1100相比LRU需要多维护1个队列,用于记录所有缓存数据被访问的历史,只有当数据的访问次数达到K次的时候,才将数据放入缓存。当需要淘汰数据时,LRU-K算法1100会淘汰第K次访问时间距当前时间最大的数据。LRU-K算法1100降低了缓存污染的问题,命中率也比LRU高,LRU-K算法1100具体包括以下步骤:
(1)数据第一次被访问,加入到访问历史列表。
(2)如果数据在访问历史列表里后没有达到K次访问,则按照一定规则(例如,FIFO(先入先出)和LRU等)淘汰。
(3)当访问历史队列中的数据访问次数达到K次后,将数据索引从历史队列删除,将数据移到缓存队列中,并缓存此数据,缓存队列重新按照时间排序。
(4)缓存数据队列中被再次访问后,重新排序。
(5)需要淘汰数据时,淘汰缓存队列中排在末尾的数据,即:淘汰“倒数第K次访问离现在最久”的数据。
如图12所示,将对象的每次操作(包括上传、下载、拷贝等操作)均当作是一次访问。LRU cache1202中用来存储小对象的部分元数据,比如小对象的名称、大小、版本信息、访问次数以及最后访问时间等,当缓存容量达到阈值时,淘汰缓存队列中排在末尾的小对象元数据,将之发送到merge模块,merge模块拿到小对象的元数据信息就可以从小对象数据缓存池中读取对应小对象的数据进行聚合。
小对象上传后,其元数据全部存储在分布式KV集群1204中,LRU cache1202中存储部分元数据,方便检索和后续查找。小对象数据存储在后端对象数据专有缓存1206中,用于上层读取和merge读取聚合。
3.merge模块:merge模块用于小对象的聚合。
如图13所示,本公开使用一致性hash算法1300实现小对象聚合,一致性hash算法1300的主要思想是根据结点的关键码值来确定其存储地址:以关键码值K为自变量,通过一定的函数关系h(K),即散列函数计算出对应的函数值,这个值即为结点的存储地址,将结点存入到此存储单元中。
如图13所示,小对象的key(键)经过一致性hash函数计算后映射到某一个后端聚合对象,然后将其存储到该聚合对象中即可,同时更新对象元数据仓储中的索引数据,其中,N代表聚合对象的数量。
上述hash算法中最大的问题就是聚合对象数量N无法增加或者减少,如果N发生变化,则会造成大量原有小对象的存储位置失效。而实际的对象存储系统,线上多会出现扩容或缩容的现象,本公开中的聚合对象数量N也需要随之变化,一个常见的现象是增加聚合对象,因为聚合对象不能无限增长,其上限与单块磁盘容量及存储的小对象的数量有关。而一致性hash算法可以处理这种情况。
相比于普通的hash算法,一致性hash算法能够实现聚合对象的动态变化,能够实现更高的并发度,提升系统服务性能。系统初始上线运行时,由于集群访问压力较小,可以先创建出少数几个聚合对象用于小对象聚合,后期随着集群访问压力的增大,再逐步增加聚合对象的数量。
如图14所示,常用的哈希算法一般将对应的key(例如key1、key2、key3和key4)哈希到一个具有232大小的类似数组的空间中,而一致性哈希算法将该哈希空间1400收尾相连,形成一个闭合的环,也即将N个聚合对象也映射到环上。
如图15所示,聚合对象B_Obj与小对象sobj处于同一哈希空间1500中,然后按顺时针顺序,小对象sobj1和sobj4存储到聚合对象B_Obj1中,小对象sobj2存储到聚合对象B_Obj2中,小对象sobj3存储到聚合对象B_Obj3中。如果需要增加聚合对象,比如增加聚合对象B_Obj4,小对象sobj3被迁移到了聚合对象B_Obj4中,其他小对象仍保持着原有的存储位置。减少聚合对象的情况与此类似。一致性哈希算法在保持单调性的同时,也避免了大量小对象的迁移。
进一步地,哈希算法由于hash函数的选择,hash之后的key有发生碰撞的局限性,同时可能存在数据分布不均的风险。本发明方案无需考虑碰撞局限性,但是聚合对象1600中存储的小对象数量可能分布不均。比如,在集群初始上线运行时,由于集群压力较小,聚合对象数量较少,聚合对象中存储的小对象数量容易出现分布不均的情况。
针对于此,本公开基于梯度下降法,设计了一种自适应的广义梯度下降优化算法,以此来进一步均衡各个聚合对象中小对象的数量。
梯度下降法,即Gradient Descent Method,是一种常用的最优化方法。梯度下降法的优化思想是用当前位置负梯度方向作为搜索方向,梯度下降法的搜索迭代示意图,如图17所示,图中x0、x1、x2、x3和x4的方向表示梯度下降最快的方向1700。
本公开的实施例中,定义xi为各个聚合对象中已存储的小对象的个数,定义xm为聚合对象中的存储的小对象的平均数量,则有目标函数如公式一所示:
目标函数f(x)可以反映各个聚合对象中存储的小对象数量的均衡情况,f(x)越大,则聚合对象中存储的小对象数量越不均衡,反之越均衡。对xi进行求导,则有如下公式二:
由求导结果可知,当xi-xm<0时,梯度呈下降趋势。
本公开对一致性hash算法的冲突情况做了调整:为使梯度下降,在下一次小对象hash到对应聚合对象时,如果聚合对象中已存储的小对象数量xi>xm,则认为发生了冲突,使用开放地址法重新寻址,直至找到一个聚合对象,其已存储的小对象数量xi<xm。
所谓开放地址法就是hash冲突时去探测hash表中下一个合适的位置。
另外,随着小对象的不断聚合,xm的值是一直增大的,所以只要保证每次hash时小对象hash到存储小对象数量较小的聚合对象上,则目标函数就可以持续减小,从而实现持续的梯度下降,各聚合对象上的小对象数量也就会越来越均衡。边界条件随着xm的变化而变化,实现了自适应的梯度下降调节。
以图17为例,基于梯度下降法,客户端新上传的小对象会被一致性hash到聚合对象B_Obj2和B_Obj3上,hash结果会根据xi和xm自动调节,最终聚合效果如下图18所示的聚合对象1800。
本公开为了实现聚合对象的提交上传,每个聚合对象需要对应一个聚合事务,上层用户上传的小对象通过一致性hash算法平均分配到各个聚合对象的同时,每个聚合对象关联的聚合事务也会记录着该聚合对象中的小对象信息,当聚合对象size达到指定阈值后,执行事务,将聚合大对象写入后端对象存储。
基于一致性hash算法的小对象聚合详细步骤如下:
步骤1、统计并存储各个聚合对象中存储的小对象数量xi。
步骤2、计算所有聚合对象已存储的小对象的平均数量xm。
步骤3、一致性hash算法,判断是否需要开放地址法重新寻址,如果寻址到的聚合对象中已包含的小对象数量xi大于xm,则使用开放地址法重新寻址,确定新的聚合对象,将小对象信息更新到聚合对象关联的聚合事务中。
步骤4、当聚合对象大小达到阈值,执行其对应的聚合事务,将聚合对象写入后端对象存储。
步骤5、更新对象元数据仓储索引信息,更新聚合对象中存储的小对象数量信息xi。
步骤6、转到步骤2,循环重复执行。
对应于上述方法实施例,本公开还提供一种小对象数据的存储装置,可以用于执行上述方法实施例。
图19是本公开示例性实施例中一种小对象数据的存储装置的方框图。
参考图19,小对象数据的存储装置1900可以包括:
接收模块1902,设置为接收待存储的小对象数据。
写入模块1904,设置为将所述小对象数据的元数据写入分布式KV集群。
缓存模块1906,设置为将所述元数据中的指定元数据写入LRU缓存区,并按照预设淘汰条件对所述LRU缓存区的指定元数据进行淘汰。
聚合模块1908,设置为对所述LRU缓存区淘汰的指定元数据发送至聚合区,并对所述聚合区的指定元数据进行聚合。
所述写入模块1904,设置为将聚合后的指定元数据写入后端存储器。
在本公开的一种示例性实施例中,所述分布式KV集群用于存储所述小对象数据的索引,小对象数据的存储装置1900还用于:在完成所述元数据的聚合后,触发所述分布式KV集群对聚合后的元数据的二级索引进行存储。
在本公开的一种示例性实施例中,缓存模块1906还用于:确定所述LRU缓存区的指定元数据的访问次数;判断所述访问次数是否满足所述预设淘汰条件;根据所述预设淘汰条件的判定结果,对所述LRU缓存区的指定元数据进行淘汰。
在本公开的一种示例性实施例中,缓存模块1906还用于:通过LRU-K算法记录所有待缓存的指定元数据的访问历史;根据所述访问历史确定所述待缓存的指定元数据的访问次数;判断所述访问次数是否满足预设访问次数的要求;若判定所述访问次数满足所述预设访问次数的要求,则将满足访问次数要求的指定元数据写入LRU缓存区;按照所述预设淘汰条件对所述LRU缓存区的指定元数据进行淘汰。
在本公开的一种示例性实施例中,缓存模块1906还用于:确定所述LRU缓存区的指定元数据的最后一次的访问时间;在检测到所述LRU缓存区的队列长度达到预设长度时,根据所述访问时间淘汰所述LRU缓存区中的指定元数据。
在本公开的一种示例性实施例中,聚合模块1908还用于:对所述LRU缓存区淘汰的指定元数据发送至聚合区;采用一致性哈希算法对所述聚合区的指定元数据进行计算;根据所述一致性哈希算法的计算结果确定聚合对象;根据所述聚合对象中的小对象数据的数量对所述指定元数据进行聚合。
在本公开的一种示例性实施例中,聚合模块1908还用于:判断任一所述聚合对象的小对象数据的数量是否大于所述小对象数据的平均数量;若判定一个所述聚合对象的小对象数据的数量大于所述平均数量,则开放地址法重新寻址;若判定一个所述聚合对象的小对象数据的数量小于活动等于所述平均数量,则更新所述聚合对象对应的聚合事务,其中,所述聚合对象中的小对象数据的数量被配置为通过梯度下降算法进行均衡。
由于小对象数据的存储装置1900的各功能已在其对应的方法实施例中予以详细说明,本公开于此不再赘述。
综上,针对现有分布式存储系统中的缺点,面对海量小对象场景,本公开的目标在于实现一种显著提升存储性能、大幅减少磁盘碎片和inode数量、显著提升磁盘利用率的对象存储系统。本公开提供了一种基于梯度下降法的自适应一致性哈希算法,使用此算法将多个小对象的数据部分合并成聚合对象,同时分割小对象的元数据和数据部分,并利用高性能分布式KV数据库管理聚合对象索引信息以及小对象的二级索引信息,以此来解决分布式存储系统中对象索引管理效率低、磁盘碎片化严重等问题,为海量小对象存储提供性能保障。
应当注意,尽管在上文详细描述中提及了用于动作执行的设备的若干模块或者单元,但是这种划分并非强制性的。实际上,根据本公开的实施方式,上文描述的两个或更多模块或者单元的特征和功能可以在一个模块或者单元中具体化。反之,上文描述的一个模块或者单元的特征和功能可以进一步划分为由多个模块或者单元来具体化。
在本公开的示例性实施例中,还提供了一种能够实现上述方法的电子设备。
所属技术领域的技术人员能够理解,本公开的各个方面可以实现为系统、方法或程序产品。因此,本公开的各个方面可以具体实现为以下形式,即:完全的硬件实施方式、完全的软件实施方式(包括固件、微代码等),或硬件和软件方面结合的实施方式,这里可以统称为“电路”、“模块”或“系统”。
下面参照图20来描述根据本公开的这种实施方式的电子设备2000。图20显示的电子设备2000仅仅是一个示例,不应对本公开实施例的功能和使用范围带来任何限制。
如图20所示,电子设备2000以通用计算设备的形式表现。电子设备2000的组件可以包括但不限于:上述至少一个处理单元2010、上述至少一个存储单元2020、连接不同系统组件(包括存储单元2020和处理单元2010)的总线2030。
其中,所述存储单元存储有程序代码,所述程序代码可以被所述处理单元2010执行,使得所述处理单元2010执行本说明书上述“示例性方法”部分中描述的根据本公开各种示例性实施方式的步骤。例如,所述处理单元2010可以执行如本公开实施例所示的方法。
存储单元2020可以包括易失性存储单元形式的可读介质,例如随机存取存储单元(RAM)20201和/或高速缓存存储单元20202,还可以进一步包括只读存储单元(ROM)20203。
存储单元2020还可以包括具有一组(至少一个)程序模块20205的程序/实用工具20204,这样的程序模块20205包括但不限于:操作系统、一个或者多个应用程序、其它程序模块以及程序数据,这些示例中的每一个或某种组合中可能包括网络环境的实现。
总线2030可以为表示几类总线结构中的一种或多种,包括存储单元总线或者存储单元控制器、外围总线、图形加速端口、处理单元或者使用多种总线结构中的任意总线结构的局域总线。
电子设备2000也可以与一个或多个外部设备2040(例如键盘、指向设备、蓝牙设备等)通信,还可与一个或者多个使得用户能与该电子设备2000交互的设备通信,和/或与使得该电子设备2000能与一个或多个其它计算设备进行通信的任何设备(例如路由器、调制解调器等等)通信。这种通信可以通过输入/输出(I/O)接口2050进行。并且,电子设备2000还可以通过网络适配器2060与一个或者多个网络(例如局域网(LAN),广域网(WAN)和/或公共网络,例如因特网)通信。如图所示,网络适配器2060通过总线2030与电子设备2000的其它模块通信。应当明白,尽管图中未示出,可以结合电子设备2000使用其它硬件和/或软件模块,包括但不限于:微代码、设备驱动器、冗余处理单元、外部磁盘驱动阵列、RAID系统、磁带驱动器以及数据备份存储系统等。
通过以上的实施方式的描述,本领域的技术人员易于理解,这里描述的示例实施方式可以通过软件实现,也可以通过软件结合必要的硬件的方式来实现。因此,根据本公开实施方式的技术方案可以以软件产品的形式体现出来,该软件产品可以存储在一个非易失性存储介质(可以是CD-ROM,U盘,移动硬盘等)中或网络上,包括若干指令以使得一台计算设备(可以是个人计算机、服务器、终端装置、或者网络设备等)执行根据本公开实施方式的方法。
在本公开的示例性实施例中,还提供了一种计算机可读存储介质,其上存储有能够实现本说明书上述方法的程序产品。在一些可能的实施方式中,本公开的各个方面还可以实现为一种程序产品的形式,其包括程序代码,当所述程序产品在终端设备上运行时,所述程序代码用于使所述终端设备执行本说明书上述“示例性方法”部分中描述的根据本公开各种示例性实施方式的步骤。
根据本公开的实施方式的用于实现上述方法的程序产品可以采用便携式紧凑盘只读存储器(CD-ROM)并包括程序代码,并可以在终端设备,例如个人电脑上运行。然而,本公开的程序产品不限于此,在本文件中,可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。
所述程序产品可以采用一个或多个可读介质的任意组合。可读介质可以是可读信号介质或者可读存储介质。可读存储介质例如可以为但不限于电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。
计算机可读信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了可读程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。可读信号介质还可以是可读存储介质以外的任何可读介质,该可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。
可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于无线、有线、光缆、RF等等,或者上述的任意合适的组合。
可以以一种或多种程序设计语言的任意组合来编写用于执行本公开操作的程序代码,所述程序设计语言包括面向对象的程序设计语言—诸如Java、C++等,还包括常规的过程式程序设计语言—诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算设备上执行、部分地在用户设备上执行、作为一个独立的软件包执行、部分在用户计算设备上部分在远程计算设备上执行、或者完全在远程计算设备或服务器上执行。在涉及远程计算设备的情形中,远程计算设备可以通过任意种类的网络,包括局域网(LAN)或广域网(WAN),连接到用户计算设备,或者,可以连接到外部计算设备(例如利用因特网服务提供商来通过因特网连接)。
此外,上述附图仅是根据本公开示例性实施例的方法所包括的处理的示意性说明,而不是限制目的。易于理解,上述附图所示的处理并不表明或限制这些处理的时间顺序。另外,也易于理解,这些处理可以是例如在多个模块中同步或异步执行的。
本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本公开的其它实施方案。本申请旨在涵盖本公开的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本公开的一般性原理并包括本公开未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本公开的真正范围和构思由权利要求指出。
Claims (9)
1.一种小对象数据的存储方法,其特征在于,包括:
接收待存储的小对象数据;
将所述小对象数据的元数据写入分布式KV集群;
将所述元数据中的指定元数据写入LRU缓存区,并按照预设淘汰条件对所述LRU缓存区的指定元数据进行淘汰,包括:
通过LRU-K算法记录所有待缓存的指定元数据的访问历史;
根据所述访问历史确定所述待缓存的指定元数据的访问次数;
判断所述访问次数是否满足预设访问次数的要求;
若判定所述访问次数满足所述预设访问次数的要求,则将满足访问次数要求的指定元数据写入LRU缓存区;
按照所述预设淘汰条件对所述LRU缓存区的指定元数据进行淘汰;
对所述LRU缓存区淘汰的指定元数据发送至聚合区,并对所述聚合区的指定元数据进行聚合;
将聚合后的指定元数据写入后端存储器。
2.如权利要求1所述的小对象数据的存储方法,其特征在于,所述分布式KV集群用于存储所述小对象数据的索引,所述小对象数据的存储方法还包括:
在完成所述元数据的聚合后,触发所述分布式KV集群对聚合后的元数据的二级索引进行存储。
3.如权利要求1所述的小对象数据的存储方法,其特征在于,按照预设淘汰条件对所述LRU缓存区的指定元数据进行淘汰包括:
确定所述LRU缓存区的指定元数据的访问次数;
判断所述访问次数是否满足所述预设淘汰条件;
根据所述预设淘汰条件的判定结果,对所述LRU缓存区的指定元数据进行淘汰。
4.如权利要求1所述的小对象数据的存储方法,其特征在于,按照所述预设淘汰条件对所述LRU缓存区的指定元数据进行淘汰包括:
确定所述LRU缓存区的指定元数据的最后一次的访问时间;
在检测到所述LRU缓存区的队列长度达到预设长度时,根据所述访问时间淘汰所述LRU缓存区中的指定元数据。
5.如权利要求1-4中任一项所述的小对象数据的存储方法,其特征在于,对所述LRU缓存区淘汰的指定元数据发送至聚合区,并对所述聚合区的指定元数据进行聚合包括:
对所述LRU缓存区淘汰的指定元数据发送至聚合区;
采用一致性哈希算法对所述聚合区的指定元数据进行计算;
根据所述一致性哈希算法的计算结果确定聚合对象;
根据所述聚合对象中的小对象数据的数量对所述指定元数据进行聚合。
6.如权利要求5所述的小对象数据的存储方法,其特征在于,根据所述聚合对象的数量对所述指定元数据进行聚合包括:
判断任一所述聚合对象的小对象数据的数量是否大于所述小对象数据的平均数量;
若判定一个所述聚合对象的小对象数据的数量大于所述平均数量,则开放地址法重新寻址;
若判定一个所述聚合对象的小对象数据的数量小于活动等于所述平均数量,则更新所述聚合对象对应的聚合事务,
其中,所述聚合对象中的小对象数据的数量被配置为通过梯度下降算法进行均衡。
7.一种小对象数据的存储装置,其特征在于,包括:
接收模块,设置为接收待存储的小对象数据;
写入模块,设置为将所述小对象数据的元数据写入分布式KV集群;
缓存模块,设置为将所述元数据中的指定元数据写入LRU缓存区,并按照预设淘汰条件对所述LRU缓存区的指定元数据进行淘汰,包括:
通过LRU-K算法记录所有待缓存的指定元数据的访问历史;
根据所述访问历史确定所述待缓存的指定元数据的访问次数;
判断所述访问次数是否满足预设访问次数的要求;
若判定所述访问次数满足所述预设访问次数的要求,则将满足访问次数要求的指定元数据写入LRU缓存区;
按照所述预设淘汰条件对所述LRU缓存区的指定元数据进行淘汰;
聚合模块,设置为对所述LRU缓存区淘汰的指定元数据发送至聚合区,并对所述聚合区的指定元数据进行聚合;
所述写入模块,设置为将聚合后的指定元数据写入后端存储器。
8.一种电子设备,其特征在于,包括:
存储器;以及
耦合到所述存储器的处理器,所述处理器被配置为基于存储在所述存储器中的指令,执行如权利要求1-6任一项所述的小对象数据的存储方法。
9.一种计算机可读存储介质,其上存储有程序,该程序被处理器执行时实现如权利要求1-6任一项所述的小对象数据的存储方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111683653.0A CN114356241B (zh) | 2021-12-28 | 2021-12-28 | 小对象数据的存储方法、装置、电子设备和可读介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111683653.0A CN114356241B (zh) | 2021-12-28 | 2021-12-28 | 小对象数据的存储方法、装置、电子设备和可读介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN114356241A CN114356241A (zh) | 2022-04-15 |
CN114356241B true CN114356241B (zh) | 2023-11-03 |
Family
ID=81105232
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111683653.0A Active CN114356241B (zh) | 2021-12-28 | 2021-12-28 | 小对象数据的存储方法、装置、电子设备和可读介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114356241B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115033603A (zh) * | 2022-06-16 | 2022-09-09 | 支付宝(杭州)信息技术有限公司 | 一种数据存储、数据查询方法及装置 |
Citations (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102110146A (zh) * | 2011-02-16 | 2011-06-29 | 清华大学 | 基于键值key-value存储的分布式文件系统元数据管理方法 |
CN103577123A (zh) * | 2013-11-12 | 2014-02-12 | 河海大学 | 一种基于hdfs的小文件优化存储方法 |
US10140304B1 (en) * | 2015-12-10 | 2018-11-27 | EMC IP Holding Company LLC | Distributed metadata servers in a file system with separate metadata servers for file metadata and directory metadata |
CN109522243A (zh) * | 2018-10-22 | 2019-03-26 | 郑州云海信息技术有限公司 | 一种全闪存储中元数据缓存管理方法、装置及存储介质 |
CN110232049A (zh) * | 2019-06-12 | 2019-09-13 | 腾讯科技(深圳)有限公司 | 一种元数据缓存管理方法和装置 |
CN110795386A (zh) * | 2018-07-31 | 2020-02-14 | 杭州海康威视系统技术有限公司 | 一种数据写入方法和服务端 |
CN112000281A (zh) * | 2020-07-30 | 2020-11-27 | 北京浪潮数据技术有限公司 | 一种存储系统重删元数据的缓存方法、系统及装置 |
CN112346659A (zh) * | 2020-11-05 | 2021-02-09 | 苏州浪潮智能科技有限公司 | 一种分布式对象存储元数据的存储方法、设备及存储介质 |
CN112799835A (zh) * | 2021-01-27 | 2021-05-14 | 浪潮云信息技术股份公司 | 一种分布式数据库系统元数据的处理方法及系统 |
CN113377868A (zh) * | 2021-06-16 | 2021-09-10 | 浪潮卓数大数据产业发展有限公司 | 一种基于分布式kv数据库的离线存储系统 |
CN113626382A (zh) * | 2021-06-30 | 2021-11-09 | 济南浪潮数据技术有限公司 | 分布式文件系统中聚合对象的索引方法、系统及相关装置 |
CN113821499A (zh) * | 2021-07-30 | 2021-12-21 | 济南浪潮数据技术有限公司 | 一种双存储池数据淘汰方法、装置、设备 |
CN113821477A (zh) * | 2021-11-19 | 2021-12-21 | 苏州浪潮智能科技有限公司 | 一种元数据缓存方法、系统、设备以及介质 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11487665B2 (en) * | 2019-06-05 | 2022-11-01 | Pure Storage, Inc. | Tiered caching of data in a storage system |
-
2021
- 2021-12-28 CN CN202111683653.0A patent/CN114356241B/zh active Active
Patent Citations (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102110146A (zh) * | 2011-02-16 | 2011-06-29 | 清华大学 | 基于键值key-value存储的分布式文件系统元数据管理方法 |
CN103577123A (zh) * | 2013-11-12 | 2014-02-12 | 河海大学 | 一种基于hdfs的小文件优化存储方法 |
US10140304B1 (en) * | 2015-12-10 | 2018-11-27 | EMC IP Holding Company LLC | Distributed metadata servers in a file system with separate metadata servers for file metadata and directory metadata |
CN110795386A (zh) * | 2018-07-31 | 2020-02-14 | 杭州海康威视系统技术有限公司 | 一种数据写入方法和服务端 |
CN109522243A (zh) * | 2018-10-22 | 2019-03-26 | 郑州云海信息技术有限公司 | 一种全闪存储中元数据缓存管理方法、装置及存储介质 |
CN110232049A (zh) * | 2019-06-12 | 2019-09-13 | 腾讯科技(深圳)有限公司 | 一种元数据缓存管理方法和装置 |
CN112000281A (zh) * | 2020-07-30 | 2020-11-27 | 北京浪潮数据技术有限公司 | 一种存储系统重删元数据的缓存方法、系统及装置 |
CN112346659A (zh) * | 2020-11-05 | 2021-02-09 | 苏州浪潮智能科技有限公司 | 一种分布式对象存储元数据的存储方法、设备及存储介质 |
CN112799835A (zh) * | 2021-01-27 | 2021-05-14 | 浪潮云信息技术股份公司 | 一种分布式数据库系统元数据的处理方法及系统 |
CN113377868A (zh) * | 2021-06-16 | 2021-09-10 | 浪潮卓数大数据产业发展有限公司 | 一种基于分布式kv数据库的离线存储系统 |
CN113626382A (zh) * | 2021-06-30 | 2021-11-09 | 济南浪潮数据技术有限公司 | 分布式文件系统中聚合对象的索引方法、系统及相关装置 |
CN113821499A (zh) * | 2021-07-30 | 2021-12-21 | 济南浪潮数据技术有限公司 | 一种双存储池数据淘汰方法、装置、设备 |
CN113821477A (zh) * | 2021-11-19 | 2021-12-21 | 苏州浪潮智能科技有限公司 | 一种元数据缓存方法、系统、设备以及介质 |
Also Published As
Publication number | Publication date |
---|---|
CN114356241A (zh) | 2022-04-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111309732B (zh) | 数据处理方法、装置、介质和计算设备 | |
US10715622B2 (en) | Systems and methods for accelerating object stores with distributed caching | |
US9817765B2 (en) | Dynamic hierarchical memory cache awareness within a storage system | |
US8510499B1 (en) | Solid state drive caching using memory structures to determine a storage space replacement candidate | |
US20220276988A1 (en) | Replicating and migrating files to secondary storage sites | |
US10432723B2 (en) | Storage server and storage system | |
CN107870728B (zh) | 用于移动数据的方法和设备 | |
US8386717B1 (en) | Method and apparatus to free up cache memory space with a pseudo least recently used scheme | |
CN106775446B (zh) | 基于固态硬盘加速的分布式文件系统小文件访问方法 | |
US9817865B2 (en) | Direct lookup for identifying duplicate data in a data deduplication system | |
US10108644B1 (en) | Method for minimizing storage requirements on fast/expensive arrays for data mobility and migration | |
CN105205082A (zh) | 用于处理hdfs中的文件存储的方法和系统 | |
CN106528451B (zh) | 针对小文件的二级缓存预取的云存储框架及构建方法 | |
US11599462B1 (en) | Memory cache entry management with pinned cache entries | |
CN112068765B (zh) | 管理存储系统的方法、设备和计算机程序产品 | |
US10678788B2 (en) | Columnar caching in tiered storage | |
US11392545B1 (en) | Tracking access pattern of inodes and pre-fetching inodes | |
US11455114B1 (en) | Consolidation and migration of cloud data | |
US11288237B2 (en) | Distributed file system with thin arbiter node | |
CN114356241B (zh) | 小对象数据的存储方法、装置、电子设备和可读介质 | |
US20210286730A1 (en) | Method, electronic device and computer program product for managing cache | |
US10719240B2 (en) | Method and device for managing a storage system having a multi-layer storage structure | |
WO2018064319A9 (en) | FOLLOW-UP OF INODES ACCESS SCHEMES AND INOX PREXTRACTION | |
US11287993B2 (en) | Method, device, and computer program product for storage management | |
US20240211154A1 (en) | Method, device, and computer program product for de-duplicating data |
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 |