[发明专利]查询请求处理方法、装置及设备、键值查询系统有效
申请号: | 202110912297.9 | 申请日: | 2021-08-10 |
公开(公告)号: | CN113360525B | 公开(公告)日: | 2021-12-07 |
发明(设计)人: | 朱炳鹏;付治钧;江进;张松清;胡瑜;周猛 | 申请(专利权)人: | 支付宝(杭州)信息技术有限公司 |
主分类号: | G06F16/245 | 分类号: | G06F16/245;G06F16/28;G06F9/54 |
代理公司: | 北京永新同创知识产权代理有限公司 11376 | 代理人: | 林锦辉;刘景峰 |
地址: | 310000 浙江省杭州市*** | 国省代码: | 浙江;33 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 查询 请求 处理 方法 装置 设备 键值 系统 | ||
本说明书的实施例提供一种查询请求处理方法、查询请求处理装置、查询请求处理设备及键值查询系统。在该查询请求方法中,在查询请求处理设备创建第一线程‑第二线程对,利用第一线程对所接收的键值查询请求进行处理得到IO查询请求并提供给操作系统实现IO查询,并且利用第二线程对操作系统的IO查询结果进行处理并返回给查询请求发起设备。在进行数据查询请求处理时,第一线程和第二线程异步执行,并且共用同一查询上下文池和同一IO查询请求队列。
技术领域
本说明书实施例通常涉及数据处理领域,尤其涉及查询请求处理方法、查询请求处理装置、查询处理设备以及键值查询系统。
背景技术
在一些键值查询系统中,例如,基于哈希的分布式键值对查询系统,在键值查询系统的服务端设备接收到客户端设备发起的键值查询请求后,需要通过服务端设备的IO接口查询例如本地数据存储器的数据存储设备,由此获得键值查询结果并返回给客户端设备。这种数据查询方式也称为IO查询。
在一些应用场景下,例如,在分布式键值对查询系统中,存在多个客户端设备同时对键值查询系统发起键值查询请求,并且每个键值查询请求包括大量键(Key),由此使得服务端设备的负载大大增大。在这种情况下,服务端IO设备的IO性能会严重制约键值查询系统的吞吐量并且增加查询处理延迟。
发明内容
鉴于上述,本说明书实施例提供查询请求处理方法、查询请求处理装置、查询请求处理设备及键值查询系统。利用该查询请求处理方案,通过在查询请求处理装置创建第一线程-第二线程对,利用第一线程对所接收的键值查询请求进行处理得到IO查询请求并提供给操作系统实现IO查询,并且利用第二线程来对操作系统的IO查询结果进行处理,可以解耦发起IO查询的键值查询请求处理过程以及返回数据查询结果的IO查询结果处理过程,由此提升IO查询性能。
根据本说明书实施例的一个方面,提供一种用于处理键值查询请求的方法,所述方法由查询请求处理设备执行,所述查询请求处理设备创建有第一线程-第二线程对,所述方法包括:运行所述第一线程-第二线程对中的第一线程来执行下述过程:响应于接收到来自查询请求发起设备的键值查询请求,从所述第一线程的查询上下文池中为所述键值查询请求分配第一查询上下文,所述键值查询请求的请求参数包括至少一个键;根据所述键值查询请求生成至少一个IO查询请求,每个键对应一个IO查询请求;为各个IO查询请求设置IO完成事件的回调函数;将所述键值查询请求的请求参数以及各个IO查询请求的回调函数保存在所述第一查询上下文中;以及将各个IO查询请求以及对应的回调函数提交给所述查询请求处理设备的操作系统中的与所述第二线程对应的IO查询请求队列,所述操作系统基于所述IO查询请求队列发起针对数据存储设备的IO查询,运行所述第二线程来执行下述过程:响应于所述第二线程接收到所述操作系统返回的IO完成事件,通过对应的回调函数处理所述IO完成事件中的IO查询数据,以将所得到的IO查询数据填充到键值查询响应消息中;在所有IO查询请求所对应的IO查询数据填充到所述键值查询响应消息中时,将所述键值查询响应消息返回给所述查询请求发起设备。
可选地,在上述方面的一个示例中,所述第一线程的处理过程与所述第二线程的处理过程异步执行。
可选地,在上述方面的一个示例中,所述第一线程与所述第二线程共用同一查询上下文池和同一IO查询请求队列。
可选地,在上述方面的一个示例中,所述方法还可以包括:在接收到所有IO查询请求所对应的IO完成事件后,经由所述第二线程将分配给所述键值查询请求的第一查询上下文释放回所述查询上下文池。
可选地,在上述方面的一个示例中,所述第一线程-第二线程对包括至少两个第一线程-第二线程对,所述方法还可以包括:在经由所述第一线程从所述第一线程的查询上下文池中为所述键值查询请求分配所述查询上下文池中的最后一个查询上下文,并且在将对应的IO查询请求提交到所述IO查询请求队列后,将所述第一线程保持为阻塞状态,直到先前分配的第一查询上下文被释放回所述查询上下文池。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于支付宝(杭州)信息技术有限公司,未经支付宝(杭州)信息技术有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202110912297.9/2.html,转载请声明来源钻瓜专利网。