基于数据关联性提升负载访问性能的方法、设备及系统技术方案

技术编号:32639118 阅读:18 留言:0更新日期:2022-03-12 18:14
本发明专利技术公开了基于数据关联性负载访问性能的方法、设备及系统,属于存储服务领域,包括:若当前请求为写请求且对象存在显性数据关联,则在存储主对象的同时,在主对象中附加与之关联的成员对象的索引列表;若为写请求且对象存在隐性数据关联,则将存在隐性数据关联的多个对象聚集到同一个超级对象中,并转发至同一个存储节点;若为读请求且对象存在显性数据关联,则从存储节点访问主对象时,将相关联的成员对象进行预取;若为读请求且对象存在隐性数据关联,则从存储节点访问对象时,在相应的超级对象较小时,将相关联的对象进行预取。本发明专利技术在存储对象时对数据关联性进行维护,在访问对象时,基于数据关联性预取对象,有效提升了负载的访问性能。了负载的访问性能。了负载的访问性能。

【技术实现步骤摘要】
基于数据关联性提升负载访问性能的方法、设备及系统


[0001]本专利技术属于存储服务领域,更具体地,涉及一种基于数据关联性提升负载访问性能的方法、设备及系统。

技术介绍

[0002]云对象存储系统分为前端访问层的代理节点和后端存储层的存储节点。代理节点负责转发请求但不存储数据,存储节点负责管理对象的数据和元数据。对于每个对象的读请求,需要从代理节点转发到存储节点上处理,存储节点将对象返回代理节点,之后代理节点将对象返回用户并响应请求。
[0003]在很多云对象存储的使用场景中,对象存在数据关联,即存在于对象内容之间的关联性。一种情况是以主对象为中心的显性数据关联,表现为一个主对象的内容中有指向多个成员对象的引用。这种引用关系可以通过明显的引用语法关键词被发掘,并且主对象是这组关联对象的访问入口。比如,对一个网页对象的访问通常触发访问页面中引用的对象,包括超链接对象、图片对象和文本对象等等。另一种情况下,多个对象以逻辑路径中的语义而关联,这些关联的对象有相似的内容,比如同样特征的多张图片,或者一个文件在不同时间备份的多个版本。这些对象之间的关联性称为隐性数据关联。多个关联的对象通常会被相近访问,但访问没有固定的顺序。
[0004]在现有的云对象存储系统中,当存储连续到来的关联对象时,代理节点在转发请求时采取尽可能分散的原则,多个关联对象被转发后分散在不同的存储节点。此外,对象在存储节点上被存储的磁盘路径与逻辑路径截然不同,对于存在隐性数据关联的多个对象,这种存储方式失去原本逻辑路径中隐含的关联语义。因此,现有的云对象存储系统不能有效维护对象之间的关联性。后续访问关联对象时,每个对象都需要在用户发起访问请求后从存储节点获取,并且关联对象分散在不同存储节点,获取这些分散的对象是很耗时的,导致负载的访问性能不佳。

技术实现思路

[0005]针对现有技术的缺陷和改进需求,本专利技术提供了一种基于数据关联性提升负载访问性能的方法、设备及系统,旨在现有的云对象存储系统未考虑对象的数据关联性负载访问性能不佳的技术问题。
[0006]为实现上述目的,按照本专利技术的一个方面,提供了一种基于数据关联性提升负载访问性能的方法,包括:
[0007]对于发送至代理节点的当前请求,若当前请求为写请求,且被请求的对象存在显性数据关联,则执行显性数据关联对象的存储步骤;
[0008]显性数据关联对象的存储步骤,包括:
[0009](S1)判断被请求的对象的类型,若为主对象,则转入步骤(S2);若为成员对象,则转入步骤(S3);
[0010](S2)获取主对象所属负载中与主对象相关联的成员对象,并将各成员对象的索引信息记录到主对象的元数据的扩展字段中,转入步骤(S3);
[0011](S3)将当前请求转发至存储节点,以实现被请求的对象的持久化存储,对当前请求的处理结束;
[0012]其中,索引信息包括成员对象的路径、大小和时间戳。
[0013]进一步地,被请求的对象是否存在显性数据关联的判断方式,包括:
[0014]判断是否存在与当前请求相对应的引用语法关键词,若存在,则判断被请求的对象存在显性数据关联;若不存在,则判断被请求的对象不存在显性数据关联;
[0015]并且,步骤(S1)中,判断被请求的对象的类型,包括:
[0016]判断被请求的对象的内容中是否存在引用语法关键词,若存在,则判断被请求的对象为主对象;若不存在,则判断被请求的对象为成员对象;
[0017]其中,引用语法关键词由请求发送方预先定义,用于在主对象的内容中识别出与之存在显性数据关联的成员对象。
[0018]进一步地,本专利技术提供的基于数据关联性提升负载访问性能的方法,还包括:
[0019]存储节点接收到由代理节点转发的请求后,若被请求的对象存在显性数据关联且是主对象,则将主对象的元数据的扩展字段中的索引信息抽出,记录至单独的索引文件后,将索引文件连同主对象的数据和元数据存储至同一磁盘目录下;若被请求的对象存在显性数据关联且是成员对象,则将被请求的对象的数据和元数据存储至同一磁盘目录下。
[0020]进一步地,本专利技术提供的基于数据关联性提升负载访问性能的方法,还包括:
[0021]若当前请求为读请求,且被请求的对象存在显性数据关联,则执行显性数据关联对象的访问步骤;
[0022]显性数据关联对象的访问步骤,包括:
[0023](T1)判断代理节点中是否缓存了被请求的对象,若是,则从缓存中获取被请求的对象并返回,对当前请求的处理结束;若否,则将当前请求转发至存储节点,并转入步骤(T2);
[0024](T2)判断被请求的对象的类型,若为主对象,则转入步骤(T3);若为成员对象,则转入步骤(T4);
[0025](T3)从存储节点获取被请求对象的数据、元数据和相关联的索引文件,根据索引文件获取与被请求对象存在显性数据关联的成员对象,并将被请求对象及与之关联的成员对象的数据和元数据均缓存至代理节点,转入步骤(T5);
[0026](T4)从存储节点获取被请求对象的数据和元数据,缓存至代理节点,转入步骤(T5);
[0027](T5)返回被请求的对象,对当前请求的处理结束。
[0028]进一步地,本专利技术提供的基于数据关联性提升负载访问性能的方法,还包括:
[0029]若当前请求为写请求,且被请求的对象存在隐性数据关联,则执行隐性数据关联对象的存储步骤;
[0030]隐性数据关联对象的存储步骤,包括:
[0031](U1)将被请求的对象分配至当前请求所属负载的其中一个超级对象;
[0032](U2)利用被请求对象的逻辑路径“账户/容器/对象”中的账户和容器信息,为该对
象构造新的逻辑路径“账户/容器/超级对象/对象”,并将其中的对象信息记录到被请求对象的元数据的扩展字段中;
[0033](U3)按照新的逻辑路径中的前三层“账户/容器/超级对象”,将当前请求转发至存储节点,以实现被请求对象的持久化存储,对当前请求的处理结束;
[0034]其中,超级对象为用于聚合一组存在隐性数据关联的对象的逻辑概念,且同一个超级对象下聚合的对象存储在同一个存储节点上;同一个负载对应一个或多个超级对象。
[0035]进一步地,被请求对象是否存在隐性数据关联的判断方式,包括:
[0036]若被请求的对象与同一负载中的其他对象的逻辑路径中,账户和容器信息相同,且对象信息的相似度高于预设的关联阈值,则判定被请求对象存在隐性数据关联;否则,判断被请求对象不存在隐性数据关联。
[0037]进一步地,本专利技术提供的基于数据关联性提升负载访问性能的方法,还包括:
[0038]存储节点接收到由代理节点转发的请求后,若被请求的对象存在隐性数据关联,则从被请求对象的元数据的扩展字段中提取对象信息,并拼接至当前请求的转发路径之后,得到新的逻辑路径“账户/容器/超级对象/对象”,作为磁本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种基于数据关联性提升负载访问性能的方法,其特征在于,包括:对于发送至代理节点的当前请求,若所述当前请求为写请求,且被请求的对象存在显性数据关联,则执行显性数据关联对象的存储步骤;所述显性数据关联对象的存储步骤,包括:(S1)判断被请求的对象的类型,若为主对象,则转入步骤(S2);若为成员对象,则转入步骤(S3);(S2)获取所述主对象所属负载中与所述主对象相关联的成员对象,并将各成员对象的索引信息记录到所述主对象的元数据的扩展字段中,转入步骤(S3);(S3)将所述当前请求转发至存储节点,以实现被请求的对象的持久化存储,对所述当前请求的处理结束;其中,所述索引信息包括成员对象的路径、大小和时间戳。2.如权利要求1所述的基于数据关联性提升负载访问性能的方法,其特征在于,被请求的对象是否存在显性数据关联的判断方式,包括:判断是否存在与所述当前请求相对应的引用语法关键词,若存在,则判断被请求的对象存在显性数据关联;若不存在,则判断被请求的对象不存在显性数据关联;并且,所述步骤(S1)中,判断被请求的对象的类型,包括:判断被请求的对象的内容中是否存在引用语法关键词,若存在,则判断被请求的对象为主对象;若不存在,则判断被请求的对象为成员对象;其中,所述引用语法关键词由请求发送方预先定义,用于在主对象的内容中识别出与之存在显性数据关联的成员对象。3.如权利要求1或2所述的基于数据关联性提升负载访问性能的方法,其特征在于,还包括:所述存储节点接收到由所述代理节点转发的请求后,若被请求的对象存在显性数据关联且是主对象,则将所述主对象的元数据的扩展字段中的索引信息抽出,记录至单独的索引文件后,将所述索引文件连同所述主对象的数据和元数据存储至同一磁盘目录下;若被请求的对象存在显性数据关联且是成员对象,则将被请求的对象的数据和元数据存储至同一磁盘目录下。4.如权利要求3所述的基于数据关联性提升负载访问性能的方法,其特征在于,还包括:若所述当前请求为读请求,且被请求的对象存在显性数据关联,则执行显性数据关联对象的访问步骤;所述显性数据关联对象的访问步骤,包括:(T1)判断所述代理节点中是否缓存了被请求的对象,若是,则从缓存中获取被请求的对象并返回,对所述当前请求的处理结束;若否,则将所述当前请求转发至存储节点,并转入步骤(T2);(T2)判断被请求的对象的类型,若为主对象,则转入步骤(T3);若为成员对象,则转入步骤(T4);(T3)从所述存储节点获取被请求对象的数据、元数据和相关联的索引文件,根据所述索引文件获取与被请求对象存在显性数据关联的成员对象,并将被请求对象及与之关联的
成员对象的数据和元数据均缓存至所述代理节点,转入步骤(T5);(T4)从所述存储节点获取被请求对象的数据和元数据,缓存至所述代理节点,转入步骤(T5);(T5)返回被请求的对象,对所述当前请求的处理结束。5.如权利要求1~4任一项所述的基于数据关联性提升负载访问性能的方法,其特征在于,还包括:若所述当前请求为写请求,且被请求的对象存在隐性数据关联,则执行隐性数据关联对象的存储步骤;所述隐性数据关联对象的存储步骤,包括:(...

【专利技术属性】
技术研发人员:童薇冯丹陈宇吕鹏泽
申请(专利权)人:华中科技大学
类型:发明
国别省市:

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

1