一种数据操作方法和装置制造方法及图纸

技术编号:20448618 阅读:27 留言:0更新日期:2019-02-27 02:50
本发明专利技术公开了一种数据操作方法和装置,所述方法包括:确定当前时刻是否到达NVMe接口的完成队列的查询时刻;所述NVMe接口的完成队列中存储有NVMe接口处理IO访问请求后的处理结果;若未到达所述查询时刻,则从NVMe接口的待提交队列中获取第一IO访问请求;所述待提交队列中存储有状态为就绪状态的数据操作请求的IO访问请求;将所述第一IO访问请求发给所述NVMe接口,并将所述第一IO访问请求对应的第一数据操作请求的状态标记为等待状态;返回确定当前时刻是否到达NVMe接口的完成队列的查询时刻的步骤,直至到达所述查询时刻或所述NVMe接口的待提交队列中无IO访问请求。

A Data Operating Method and Device

The invention discloses a data operation method and device, which includes: determining whether the current time arrives at the query time of the NVMe interface completion queue; storing the processing result of the NVMe interface processing IO access request in the completion queue of the NVMe interface; and obtaining the first IO access request from the pending queue of the NVMe interface if the query time does not arrive; The IO access request storing the data operation request in the ready state in the submission queue; the first IO access request is sent to the NVMe interface, and the status of the first data operation request corresponding to the first IO access request is marked as the waiting state; the step of determining whether the current time arrives at the completion queue query time of the NVMe interface is returned until the said time is reached. There is no IO access request in the query time or the pending queue of the NVMe interface.

【技术实现步骤摘要】
一种数据操作方法和装置
本专利技术涉及聚类算法领域,尤其涉及一种数据操作方法和装置。
技术介绍
近年来,存储硬件不断演化,产生出基于NANDFlash的SSD(SolidStateDisk)、PCM到基于3D-XPointOptane等新的存储介质。这些新的存储介质展现出远超过磁盘的数据访问性能。为提高数据访问效率,比较常用的方式是将多个IO操作并行处理,从而最大化的利用SSD内部的高并发能力,提升索引效率。然而,这种方式采用同步IO的方式进行数据块的读写操作,需要同时运行大量的索引线程,造成显著的进程切换代价和操作系统线程调度代价。造成了大量的CPU浪费,数据读写效率很低。
技术实现思路
本专利技术实施例通过提供一种数据操作方法和装置,解决了现有技术中,无法利用新的存储介质的高并发能力,导致整个数据访问过程效率低的问题。本专利技术实施例提供一种数据操作方法,所述方法包括:确定当前时刻是否到达NVMe接口的完成队列的查询时刻;所述NVMe接口的完成队列中存储有NVMe接口处理IO访问请求后的处理结果;若未到达所述查询时刻,则从NVMe接口的待提交队列中获取第一IO访问请求;所述待提交队列中存储有状态为就绪状态的数据操作请求的IO访问请求;将所述第一IO访问请求发给所述NVMe接口,并将所述第一IO访问请求对应的第一数据操作请求的状态标记为等待状态;返回确定当前时刻是否到达NVMe接口的完成队列的查询时刻的步骤,直至到达所述查询时刻或所述NVMe接口的待提交队列中无IO访问请求。一种可能的实现方式,所述方法还包括:若到达所述查询时刻,则从所述NVMe接口的完成队列中查询是否有IO访问请求的处理结果;若存在n个IO访问请求的处理结果,且所述NVMe接口的待提交队列中包括m个IO访问请求,则从所述NVMe接口的待提交队列中获取至少n个IO访问请求;m大于等于n;n,m为正整数;将所述至少n个IO访问请求发给所述NVMe接口,并将所述至少n个IO访问请求对应的数据操作请求的状态标记为等待状态。一种可能的实现方式,所述方法还包括,针对所述n个IO访问请求的处理结果中的每个IO访问请求的处理结果,执行:确定第二IO访问请求对应的第二数据操作请求是否执行完毕,若未执行完毕,则将所述第二数据操作请求的状态设置为就绪状态;所述第二IO访问请求为所述n个IO访问请求中的任一个;根据所述第二IO访问请求的处理结果和所述第二数据操作请求,生成第三IO访问请求;将所述第三IO访问请求放入所述NVMe接口的待提交队列中。一种可能的实现方式,所述数据操作请求为针对B+树的索引访问请求;所述确定第二IO访问请求对应的第二数据操作请求是否执行完毕,包括:确定所述第二IO访问请求的处理结果是否为B+树中的叶子节点;若是,则确定所述第二IO访问请求对应的第二数据操作请求执行完毕;若否,则确定所述第二IO访问请求对应的第二数据操作请求未执行完毕。一种可能的实现方式,所述查询时刻是根据预设时间段向所述NVMe接口提交的IO访问请求的数量,以及线性回归模型确定的。本专利技术实施例提供一种数据操作装置,所述装置包括:处理单元,用于确定当前时刻是否到达NVMe接口的完成队列的查询时刻;所述NVMe接口的完成队列中存储有NVMe接口处理IO访问请求后的处理结果;若未到达所述查询时刻,则从NVMe接口的待提交队列中获取第一IO访问请求;所述提交队列中存储有状态为就绪状态的数据操作请求的IO访问请求;收发单元,用于将所述第一IO访问请求发给所述NVMe接口;所述处理单元,还用于将所述第一IO访问请求对应的第一数据操作请求的状态标记为等待状态;返回确定当前时刻是否到达NVMe接口的完成队列的查询时刻的步骤,直至到达所述查询时刻或所述NVMe接口的待提交队列中无IO访问请求。一种可能的实现方式,所述处理单元还用于:若到达所述查询时刻,则从所述NVMe接口的完成队列中查询是否有IO访问请求的处理结果;若存在n个IO访问请求的处理结果,且所述NVMe接口的待提交队列中包括m个IO访问请求,则从所述NVMe接口的待提交队列中获取至少n个IO访问请求;m大于等于n;n,m为正整数;将所述至少n个IO访问请求发给所述NVMe接口,并将所述至少n个IO访问请求对应的数据操作请求的状态标记为等待状态。一种可能的实现方式,所述处理单元还用于,针对所述n个IO访问请求的处理结果中的每个IO访问请求的处理结果,执行:确定第二IO访问请求对应的第二数据操作请求是否执行完毕,若未执行完毕,则将所述第二数据操作请求的状态设置为就绪状态;所述第二IO访问请求为所述n个IO访问请求中的任一个;根据所述第二IO访问请求的处理结果和所述第二数据操作请求,生成第三IO访问请求;将所述第三IO访问请求放入所述NVMe接口的待提交队列中。一种可能的实现方式,所述数据操作请求为针对b+树的索引访问请求;所述处理单元,具体用于:确定所述第二IO访问请求的处理结果是否为b+树中的叶子节点;若是,则确定所述第二IO访问请求对应的第二数据操作请求执行完毕;若否,则确定所述第二IO访问请求对应的第二数据操作请求未执行完毕。一种可能的实现方式,所述查询时刻是根据预设时间段向所述NVMe接口提交的IO访问请求的数量,以及线性回归模型确定的。本专利技术实施例提供了一种数据查询装置,所述装置包括:至少一个处理器,以及与所述至少一个处理器连接的存储器;其中,所述存储器存储有可被所述至少一个处理器执行的指令,所述至少一个处理器通过执行所述存储器存储的指令,执行如第一方面实施例所述的方法。本专利技术实施例提供了一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现如第一方面实施例所述方法的步骤。本专利技术实施例中提供的一个或多个技术方案,至少具有如下技术效果或优点:本专利技术实施例中的NVMe接口,可以将接收IO访问请求的提交队列和处理完IO访问请求的完成队列分离开来,通过设置数据操作请求的状态,若未到达所述查询时刻,可以将多个就绪状态的数据操作请求生成IO访问请求,并将提交IO访问请求的数据操作请求的状态设置为等待状态,实现了异步的IO访问请求的提交,在到达查询时刻后,到NVMe接口的完成队列中确定完成的IO访问请求的处理结果,进而确定对应的数据操作请求的下一步处理。从而使得PA-Tree在只需要一个或少数几个索引线程,在单位时间内向NVMe接口提交大量的IO访问请求,并根据查询时刻,异步处理多个数据操作请求。在降低IO访问CPU消耗的同时,避免引入进程切换代价,从而显著降低CPU开销、有效的提升索引的性能、充分发挥新硬件巨大的IO并行处理能力,进而提升了数据操作的性能。附图说明图1为本专利技术实施例提供的数据操作方法的流程示意图;图2为本专利技术实施例提供的数据操作方法的流程示意图;图3为本专利技术实施例提供的数据操作方法的流程示意图;图4为本专利技术实施例提供的数据操作方法的流程示意图;图5a为本专利技术实施例提供的数据操作方法的流程示意图;图5b为本专利技术实施例提供的数据操作方法的流程示意图;图6为本专利技术实施例提供的数据操作方法的流程示意图;图7为本专利技术实施例提供的数据操作装置的结构示意图;图8为本专利技术实施例提供的数据访问装置的结构示本文档来自技高网...

【技术保护点】
1.一种数据操作方法,其特征在于,所述方法包括:确定当前时刻是否到达NVMe接口的完成队列的查询时刻;所述NVMe接口的完成队列中存储有NVMe接口处理IO访问请求后的处理结果;若未到达所述查询时刻,则从NVMe接口的待提交队列中获取第一IO访问请求;所述待提交队列中存储有状态为就绪状态的数据操作请求的IO访问请求;将所述第一IO访问请求发给所述NVMe接口,并将所述第一IO访问请求对应的第一数据操作请求的状态标记为等待状态;返回确定当前时刻是否到达NVMe接口的完成队列的查询时刻的步骤,直至到达所述查询时刻或所述NVMe接口的待提交队列中无IO访问请求。

【技术特征摘要】
1.一种数据操作方法,其特征在于,所述方法包括:确定当前时刻是否到达NVMe接口的完成队列的查询时刻;所述NVMe接口的完成队列中存储有NVMe接口处理IO访问请求后的处理结果;若未到达所述查询时刻,则从NVMe接口的待提交队列中获取第一IO访问请求;所述待提交队列中存储有状态为就绪状态的数据操作请求的IO访问请求;将所述第一IO访问请求发给所述NVMe接口,并将所述第一IO访问请求对应的第一数据操作请求的状态标记为等待状态;返回确定当前时刻是否到达NVMe接口的完成队列的查询时刻的步骤,直至到达所述查询时刻或所述NVMe接口的待提交队列中无IO访问请求。2.如权利要求1中所述的数据操作方法,其特征在于,所述方法还包括:若到达所述查询时刻,则从所述NVMe接口的完成队列中查询是否有IO访问请求的处理结果;若存在n个IO访问请求的处理结果,且所述NVMe接口的待提交队列中包括m个IO访问请求,则从所述NVMe接口的待提交队列中获取至少n个IO访问请求;m大于等于n;n,m为正整数;将所述至少n个IO访问请求发给所述NVMe接口,并将所述至少n个IO访问请求对应的数据操作请求的状态标记为等待状态。3.如权利要求2所述的方法,其特征在于,所述方法还包括,针对所述n个IO访问请求的处理结果中的每个IO访问请求的处理结果,执行:确定第二IO访问请求对应的第二数据操作请求是否执行完毕,若未执行完毕,则将所述第二数据操作请求的状态设置为就绪状态;所述第二IO访问请求为所述n个IO访问请求中的任一个;根据所述第二IO访问请求的处理结果和所述第二数据操作请求,生成第三IO访问请求;将所述第三IO访问请求放入所述NVMe接口的待提交队列中。4.如权利要求1所述的方法,其特征在于,所述数据操作请求为针对B+树的索引访问请求;所述确定第二IO访问请求对应的第二数据操作请求是否执行完毕,包括:确定所述第二IO访问请求的处理结果是否为B+树中的叶子节点;若是,则确定所述第二IO访问请求对应的第二数据操作请求执行完毕;若否,则确定所述第二IO访问请求对应的第二数据操作请求未执行完毕。5.如权利要求1-4任一项所述的方法,其特征在于,所述查询时刻是根据预设时间段向所述NVMe接口提交的IO访问请求的数量,以及线性回归模型确定的。6.一种数据操作装置,其特征在于,所述装置包括:处理单元,用于确定当前时刻是否到达NVMe接口的完成队列的查询时刻;所述NVMe接口的完成队列中存储有NVMe接口处理IO访问请求后的处理结果;若未...

【专利技术属性】
技术研发人员:王立张振杰周健
申请(专利权)人:上海依图网络科技有限公司
类型:发明
国别省市:上海,31

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

1