一种针对海量大对象数据的高效能存储方法技术

技术编号:24121214 阅读:45 留言:0更新日期:2020-05-13 03:08
本发明专利技术公开了一种针对海量大对象数据的高效能存储方法,其特征在于,包括步骤1,部署与客户端通讯连接的分布式Key‑Value集群,用于接收客户端上传的大对象数据,一套为meta‑cluster,一套为blob‑cluster,所述meta‑cluster用于存储meta信息部分,所述blob‑cluster包括reference‑db,用于接收reference,所述blob‑cluster用于存储blob值;步骤2,处理大对象记录写入场景;步骤3,处理大对象记录删除场景;步骤4,处理大对象记录复制场景;步骤5,处理大对象记录更新场景。本发明专利技术可以达到blob值去重、大幅降低数据的存储占用空间从而降低部署成本、大幅提升更新大对象记录meta信息的效率、可以独立运维等效果。

【技术实现步骤摘要】
一种针对海量大对象数据的高效能存储方法
本专利技术涉及海量数据存储领域,特别是涉及一种针对海量大对象数据的高效能存储方法。
技术介绍
近些年来,随着互联网应用的蓬勃发展,产生了海量的诸如视频、音频、图片等多媒体数据,为存储这些海量的大对象数据,涌现出一大批分布式的NOSQL存储产品。其中相当一部分为key-value结构的分布式存储系统,由于其具备较好的可扩展性,且数据结构简单,它们被众多互联网企业所应用于海量大对象数据的存储场景中,并且不少企业使用它们存储了PB乃至EB级的数据。然而,随着存储量的快速增长,人们逐渐意识到在很多互联网应用场景下,海量大对象数据的blob部分实际上存在大量的重复;比如,在社交平台中,不同的用户很可能发布相同的图片、视频等内容,这些直接造成了存储资源的快速消耗。此外,当需要将大对象数据在逻辑空间中,进行数据复制/剪切时,或是对大对象数据的meta信息部分进行修改更新时,由于涉及对blob数据的处理,表现出较为低下的性能。面对这些问题,可以在应用层面进行大量的开发工作,比如:增加重复blob值的判定,并构建、维护应用到blob值的映射关系,以达到复用blob值的目的,但这样势必造成应用层面的复杂度。此外,在海量大对象数据的去重问题上,专利《一种数据去重的方法及装置》(申请号:CN201611129751.9)相关研究,此专利提出对上传的大对象数据的blob部分进行MD5计算,进而依据MD5值判定数据库中是否存在对应的blob值,对于blob值已经存在的情形,将做放弃存储处理,并告知用户相应的记录标识。上述方案虽然避免了相同blob值的重复存储问题,但是其本质上是直接拒绝了用户的一些“重复”存储请求(这些请求包含已经存在的blob值),并期望由用户根据拒绝响应,进行后续的二次处理;按此方案,上层应用不得不自行构建、维护一层到blob值的映射关系;工程上,增加了架构复杂度,也增加了开发、维护成本。
技术实现思路
为解决现有大对象存储技术存在的问题,本专利技术将大对象记录分为meta与blob两个部分,并分别存储于两个相互独立的分布式Key-Value存储系统(以下分别称为:meta-cluster和blob-cluster)中。meta-cluster用于存储meta信息部分,其key为大对象记录标识,其value为大对象记录的meta信息,该meta信息包括blob值对应的MD5码;而blob-cluster用于存储blob部分,其key为大对象记录blob值的MD5码,其value为大对象记录的blob值。此外,在blob-cluster中,还将建立一个reference库(以下称:reference-db),该库保存大对象记录对blob值的reference;当meta-cluster中新增/删除一条记录时,将连带地在reference-db中新增/删除该记录对应的reference;当reference-db中某个blob值没有任何reference记录时,即表示该blob值不再被meta-cluster所引用,此时可将其清除。本专利技术提供一种针对海量大对象数据的高效能存储方法,包括如下步骤:步骤1,部署与客户端通讯相连的分布式Key-Value集群,用于接收客户端上传的大对象数据,所述大对象数据的记录个体称为大对象记录,所述客户端用于计算blob值的MD5码,具体为,基于Key-Value存储引擎,做两套部署,一套为meta-cluster,一套为blob-cluster,所述meta-cluster用于存储meta信息部分,其key为大对象记录标识,其value为大对象记录的meta信息,该meta信息包括blob值对应的MD5码;所述blob-cluster包括reference-db,用于接收reference,所述blob-cluster用于存储blob值,其key为大对象记录blob值的MD5码,其value为大对象记录的blob值;步骤2,处理大对象记录写入场景:客户端计算blob值的MD5码,并以此MD5码向blob-cluster发起校验blob值存在性请求,以确定是否需要上传blob值;客户端向meta-cluster发起meta记录写入请求,以记录大对象记录标识到blob值的映射关系;meta-cluster向blob-cluster发起建立大对象记录到blob值的reference;步骤3,处理大对象记录删除场景:客户端向meta-cluster发起删除指定的大对象记录请求,meta-cluster在删除对应的meta记录的同时,根据meta信息中包含的blob的MD5码向blob-cluster发起清除相应reference的请求;步骤4,处理大对象记录复制场景:客户端向meta-cluster请求将指定的大对象记录复制到指定的逻辑库表中,meta-cluster根据指定的复制目标逻辑库表,构建新的大对象记录标识,并以此为key写入一条meta记录;此外,meta-cluster还需向blob-cluster请求写入新的大对象记录对应的reference;步骤5,处理大对象记录更新场景:客户端向meta-cluster请求修改指定的大对象记录,meta-cluster根据大对象记录标识查找到对应的meta记录,并修改之;此步骤不涉及与blob-cluster的任何交互。所述步骤2的处理大对象记录写入场景,具体为:步骤2-1:客户端上传大对象数据时,首先计算blob值的MD5码,并向blob-cluster发送该MD5码,用以验证待上传blob是否存在;步骤2-2:若blob存在,则客户端只向meta-cluster发送写入大对象记录meta信息的请求,所述meta信息中包含MD5码;若blob不存在,则客户端还需向blob-cluster发送写入相应blob数据的请求,所述请求包含blob值及其MD5码;步骤2-3:当meta-cluster接收到大对象记录的meta信息写入请求后,将以其标识为key,以其meta信息为value存储一条key-value记录;同时,meta-cluster向blob-cluster发起写入一条reference记录的请求,所述请求中包含大对象记录的标识及meta信息中的blob值的MD5码;步骤2-4:当blob-cluster接收到大对象记录的blob信息写入请求后,将以blob对应的MD5码为key,以blob值为value写入一条blob数据记录;blob-cluster接收到reference写入请求后,将以大对象记录标识与相应MD5码的组合键为key向reference-db写入一条记录。所述步骤3的处理大对象记录删除场景,具体为:步骤3-1:客户端向meta-cluster发起删除特定大对象记录的请求,所述请求中包含大对象记录的唯一标识;步骤3-2:meta-cluster根据删除请求中的大对象记录标识,查找本文档来自技高网
...

【技术保护点】
1.一种针对海量大对象数据的高效能存储方法,其特征在于,包括如下步骤:/n步骤1,部署与客户端通讯相连的分布式Key-Value集群,用于接收客户端上传的大对象数据,所述大对象数据的记录个体称为大对象记录,所述客户端用于计算blob值的MD5码,具体为,基于Key-Value存储引擎,做两套部署,一套为meta-cluster,一套为blob-cluster,所述meta-cluster用于存储meta信息部分,其key为大对象记录标识,其value为大对象记录的meta信息,该meta信息包括blob值对应的MD5码;所述blob-cluster包括reference-db,用于接收reference,所述blob-cluster用于存储blob值,其key为大对象记录blob值的MD5码,其value为大对象记录的blob值;/n步骤2,处理大对象记录写入场景:客户端计算blob值的MD5码,并以此MD5码向blob-cluster发起校验blob值存在性请求,以确定是否需要上传blob值;客户端向meta-cluster发起meta记录写入请求,以记录大对象记录标识到blob值的映射关系;meta-cluster向blob-cluster发起建立大对象记录到blob值的reference;/n步骤3,处理大对象记录删除场景:客户端向meta-cluster发起删除指定的大对象记录请求,meta-cluster在删除对应的meta记录的同时,根据meta信息中包含的blob的MD5码向blob-cluster发起清除相应reference的请求;/n步骤4,处理大对象记录复制场景:客户端向meta-cluster请求将指定的大对象记录复制到指定的逻辑库表中,meta-cluster根据指定的复制目标逻辑库表,构建新的大对象记录标识,并以此为key写入一条meta记录;此外,meta-cluster还需向blob-cluster请求写入新的大对象记录对应的reference;/n步骤5,处理大对象记录更新场景:客户端向meta-cluster请求修改指定的大对象记录,meta-cluster根据大对象记录标识查找到对应的meta记录,并修改之;此步骤不涉及与blob-cluster的任何交互。/n...

【技术特征摘要】
1.一种针对海量大对象数据的高效能存储方法,其特征在于,包括如下步骤:
步骤1,部署与客户端通讯相连的分布式Key-Value集群,用于接收客户端上传的大对象数据,所述大对象数据的记录个体称为大对象记录,所述客户端用于计算blob值的MD5码,具体为,基于Key-Value存储引擎,做两套部署,一套为meta-cluster,一套为blob-cluster,所述meta-cluster用于存储meta信息部分,其key为大对象记录标识,其value为大对象记录的meta信息,该meta信息包括blob值对应的MD5码;所述blob-cluster包括reference-db,用于接收reference,所述blob-cluster用于存储blob值,其key为大对象记录blob值的MD5码,其value为大对象记录的blob值;
步骤2,处理大对象记录写入场景:客户端计算blob值的MD5码,并以此MD5码向blob-cluster发起校验blob值存在性请求,以确定是否需要上传blob值;客户端向meta-cluster发起meta记录写入请求,以记录大对象记录标识到blob值的映射关系;meta-cluster向blob-cluster发起建立大对象记录到blob值的reference;
步骤3,处理大对象记录删除场景:客户端向meta-cluster发起删除指定的大对象记录请求,meta-cluster在删除对应的meta记录的同时,根据meta信息中包含的blob的MD5码向blob-cluster发起清除相应reference的请求;
步骤4,处理大对象记录复制场景:客户端向meta-cluster请求将指定的大对象记录复制到指定的逻辑库表中,meta-cluster根据指定的复制目标逻辑库表,构建新的大对象记录标识,并以此为key写入一条meta记录;此外,meta-cluster还需向blob-cluster请求写入新的大对象记录对应的reference;
步骤5,处理大对象记录更新场景:客户端向meta-cluster请求修改指定的大对象记录,meta-cluster根据大对象记录标识查找到对应的meta记录,并修改之;此步骤不涉及与blob-cluster的任何交互。


2.如权利要求1所述的一种针对海量大对象数据的高效能存储方法,其特征在于:所述步骤2的处理大对象记录写入场景,具体为:
步骤2-1:客户端上传大对象数据时,首先计算blob值的MD5码,并向blob-cluster发送该MD5码,用以验证待上传blob是否存在;
步骤2-2:若blob存在,则客户端只向meta-cluster发送写入大对象记录meta信息的请求,所述meta信息中包含MD5码;若blob不存在,则客户端还需向blob-cluster发送写入相应blob数据的请求,所述请求包含blob值及其MD5码;
步骤2-3:当meta-cluster接收到大对象记录的meta信息写入请求后,将以其标识为key,以其meta信息为value存储一条key-value记录;同时,meta-cluster向blob-cluster发起写入一条reference记录的请求,所述请求中包含大对象记录的标识及meta信息中的blob值的MD5码;
步骤2-4:当blob-cluster接收到大对象记录的blob信息写入请求后,将以blob对应的MD5码为key,以blob值为value写入一条blob数据记录;blob-cluster接收到refer...

【专利技术属性】
技术研发人员:梁峰
申请(专利权)人:焦点科技股份有限公司
类型:发明
国别省市:江苏;32

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1