一种高效访问海量非结构化元数据的方法技术

技术编号:37862042 阅读:20 留言:0更新日期:2023-06-15 20:52
本发明专利技术公开了一种高效访问海量非结构化元数据的方法,包括:步骤1,IDC Client通过IDC API向IDC Server发起索引元数据请求;步骤2,IDC Core将请求封装成报文通过IDC Net发送到元数据索引服务器,同时初始化IDC Async,准备异步响应获取索引元数据;步骤3,IDC Server接收到IDC API请求,生成异步查询标志并立即返回至IDC Client,同时异步构建查询处理,将结果集存入服务端IDC Cache;步骤4,IDC Core通过查询标志向IDC Server异步轮循请求索引元数据,并存入IDC Cache;步骤5,IDC Client从IDC Cache中查询业务需要的索引元数据。本发明专利技术在客户端和服务端引入自定义的缓存基础构件,极大地缩短元数据请求链路上占主要耗时的网络IO;提升了获取海量非结构化元数据的性能,促进了上层数据应用业务的整体可用性、并发性。发性。发性。

【技术实现步骤摘要】
一种高效访问海量非结构化元数据的方法


[0001]本专利技术涉及数据备份
,具体涉及一种高效访问海量非结构化元数据的方法。

技术介绍

[0002]在数据备份
,针对海量非结构化数据的备份恢复,为满足快速地增量备份;以及细粒度的快速恢复;通常需要搭配高性能的元数据系统服务,进行高效的映射索引,从而满足快速地检索,查询插入等操作。但是,在海量数据的场景下,离散的网络请求IO会严重的影响系统整体的吞吐量,从而降低数据备份恢复速度。

技术实现思路

[0003]为了解决上述问题,本专利技术提供了一种高效访问海量非结构化元数据的方法,通过自定义的缓存架构模型,高效地归并离散网络请求IO,从而提升数据备份性能,有效地支撑海量数据业务场景。
[0004]为了达到上述目的,本专利技术是通过以下技术方案来实现的:本专利技术是一种高效访问海量非结构化元数据的方法,具体步骤为:步骤1,IDC客户端通过IDC应用程序接口向IDC服务端发起索引元数据请求;步骤2,IDC核心模块将步骤1中请求封装成报文通过IDC网络通信模块 发送到元数据索引服务器,同时初始化IDC异步模块,准备异步响应获取索引元数据;步骤3,IDC服务端接收到IDC应用程序接口请求,生成异步查询标志并立即返回至IDC客户端,同时异步构建查询处理,将结果集存入服务端IDC缓存模块;步骤4,IDC核心模块通过步骤3中返回的查询标志,向IDC服务端 异步轮循请求索引元数据,并存入本地IDC缓存模块;步骤5,IDC客户端 从本地IDC缓存模块中查询业务需要的索引元数据。
[0005]本专利技术的进一步改进在于:所述IDC客户端与IDC服务端使用异步双端阻塞队列机制。
[0006]本专利技术的进一步改进在于:所述步骤1中的索引元数据请求为携带缓存名参数的一条控制流消息,用于在IDC服务端标识一个独立的缓存队列。
[0007]本专利技术的进一步改进在于:所述步骤3中IDC服务端接收到索引元数据请求后,通过接收到的当前缓存名参数,随机生产一个全球唯一标志ID,并与缓存名结合,组成当前请求会话下的唯一标志,以控制流的方式返回给IDC客户端,同时异步地根据唯一标志创建对应的缓存生产者工作线程,此工作线程负责异步的从IDC服务端数据库中获取元数据信息,并将这些元数据组织成元数据对象,加入到唯一标识命名的阻塞队列中。
[0008]本专利技术的有益效果是:(1)通过异步双端阻塞队列机制,一方面可实施流控;另一方面可以提升系统整体吞吐量(内部核心使用内核级的同步机制,减少了高并发场景下的内核态,用户态的切换成本);
(2)通过高效灵活的通信,缓存,查询数据结构设计,提升可自定义化能力,使系统更健壮,更易于扩展;(3)通过基于IO复用架构的多链路并发模型,更好的支撑了服务端的缓存查询能力。
附图说明
[0009]图1是本专利技术实施例的方法流程图。
[0010]图2是本专利技术方法实施例的架构图。
具体实施方式
[0011]为了使本专利技术的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本专利技术进行进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本专利技术,并不用于限定本专利技术。
[0012]如图1

2所示,本专利技术的一种高效访问海量非结构化元数据的方法充分利用现有IO多路复用技术,在此基础上,通过设计唯一通信请求标志,在IDC Server端结合多级反馈队列,构建快速响应请求,以及针对密集型请求的高并发架构模型,最大程度地提升了IDC Server的缓存处理请求能力。本专利技术包括索引数据管理( 以下简称IDC ) API(IDC应用程序接口),IDC Client(IDC客户端), IDC Core(IDC核心模块),IDC Net(IDC网络通信模块),IDC Async(IDC 异步模块),IDC Server(IDC服务端),IDC Cache(IDC缓存模块),其中,IDC core为是IDC Client内部的一个核心工作模块,它不负责与外部交互,只负责在内部与IDC server 交互,而不需要IDC客户端直接与IDC server交互。
[0013]本专利技术的具体步骤如下:步骤1,IDC Client通过IDC API 向IDC Server发起索引元数据请求;步骤2,IDC Core 将步骤1中的索引元数据请求封装成报文通过IDC Net 发送到元数据索引服务器,同时初始化IDC Async ,准备异步响应获取索引元数据;步骤3,IDC Server接收到IDC API请求,生成异步查询标志并立即返回至IDC Client,同时异步构建查询处理,将结果集存入服务端IDC Cache;步骤4,IDC Core通过步骤3中返回的查询标志,向IDC Server 异步轮循请求索引元数据,并存入本地IDC Cache;步骤5,IDC Client 从本地IDC Cache中查询业务需要的索引元数据。
[0014]本专利技术中IDC Client与IDC Server使用异步双端阻塞队列机制,充分实现高效的异步并发性,提升系统整体吞吐量。
[0015]如图2所示,IDC客户端通过IDC应用程序接口,向IDC服务端发送元数据信息请求,此请求不涉及实际的元数据实体信息传输,只是一条控制流消息;该控制消息携带缓存名称参数,用于在服务端标识一个独立的缓存队列,以达到在服务端可以支撑高并发请求下的高性能响应;IDC服务端接收到元数据控制流消息后,通过接收到的当前缓存名参数,随机生产一个全球唯一标志ID,并与缓存名结合,组成当前请求会话下的唯一标志,以控制流的方式返回给IDC客户端;同时异步地根据唯一标志创建对应的缓存生产者工作线程,此工作线程
负责异步的从IDC服务端数据库中获取元数据信息,并将这些元数据组织成元数据对象,加入到唯一标识命名的阻塞队列中(一个队列对应一个唯一标志,并将唯一标志作为Hash Map的key,统一管理存放),以支持IDC客户端异步的针对唯一标志做多次相同会话下的查询;对应于生产者工作线程,另外有一个消费者工作线程,负责从阻塞队列中异步地消费元数据对象,并监听IDC客户端发送的元数据数据流请求;IDC客户端首先会接收到IDC服务端对应的控制流请求的响应,其中包括返回的唯一标志(全球唯一标志ID + 缓存名);IDC客户端然后通过唯一标志,向IDC服务端发送元数据数据流请求;IDC服务端接收到IDC客户端的元数据数据流请求,即通过唯一标志参数,结合消费者线程向Hash Map中查询对应的阻塞队列,获取阻塞队列中的元数据对象,返回给客户端;IDC客户端接收到IDC服务端数据流响应后,解析元数据对象,分装成Hash Map(以具体请求的元数据名为键值),供客户端异步的查询;到此,IDC客户端与IDC服务端的异步元数据请求响应完成;可以看出整个查询操作,是在异步的情况下进行,客户端不会被请求业务中断其他业务;服务端也可以处理多个客户端的请求;整体的吞度量,并发性具有较好的鲁棒性。
...

【技术保护点】

【技术特征摘要】
1.一种高效访问海量非结构化元数据的方法,其特征在于:包括如下步骤:步骤1,IDC客户端通过IDC应用程序接口向IDC服务端发起索引元数据请求;步骤2,IDC核心模块将步骤1中索引元数据请求封装成报文通过IDC网络通信模块发送到元数据索引服务器,同时初始化IDC异步模块,准备异步响应获取索引元数据;步骤3,IDC服务端接收到IDC应用程序接口请求,生成异步查询标志并立即返回至IDC客户端,同时异步构建查询处理,将结果集存入服务端IDC缓存模块;步骤4,IDC客户端的IDC核心模块通过步骤3中返回的查询标志,向IDC服务端异步轮循请求索引元数据,并存入本地IDC缓存模块;步骤5,IDC客户端从本地IDC缓存模块中查询业务需要的索引元数据。2.根据权利要求1所述的一种高效访问海量非结构化元数据的...

【专利技术属性】
技术研发人员:王仁杰赵大龙张有成
申请(专利权)人:南京壹进制信息科技有限公司
类型:发明
国别省市:

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

1