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接口的完成队 ...
【技术保护点】
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
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。