[发明专利]一种基于折半查找的时序数据库迭代器查询优化方法在审
申请号: | 202310006270.2 | 申请日: | 2023-01-04 |
公开(公告)号: | CN116361324A | 公开(公告)日: | 2023-06-30 |
发明(设计)人: | 王云龙;于暄 | 申请(专利权)人: | 上海沄熹科技有限公司 |
主分类号: | G06F16/2453 | 分类号: | G06F16/2453;G06F16/2458 |
代理公司: | 济南信达专利事务所有限公司 37100 | 代理人: | 阚恭勇 |
地址: | 200120 上海市浦东新区中国(上海)自由贸*** | 国省代码: | 上海;31 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 基于 折半 查找 时序 数据库 迭代器 查询 优化 方法 | ||
本发明提供一种基于折半查找的时序数据库迭代器查询优化方法,属于时序数据库领域,本发明基于数据特点,在使用迭代器进行查询时,放弃逐个判断block块是否满足条件,使用折半查找定位第一个满足查询条件的block及第一条满足查询条件的行,从而实现性能提升。
技术领域
本发明涉及时序数据库领域,尤其涉及一种基于折半查找的时序数据库迭代器查询优化方法。
背景技术
ZDP是一个集云(C)边(E)端(T)一体的时序数据库平台,数据通过终端的采集器收集后同步到边端,边端提供数据持久化能力,整体采用LSM架构,数据先写入内存,等内存数据达到阈值后进行Flush持久化。内存的数据以block为单位进行内存分配和回收,由WriteCache组件进行统一管理,每个block大小均相等,依次放在WriteCache维护的一个队列里,队列头的block数据最老,block按照时间戳依次排序,每个block内部数据也是基于时间错排序的。当上层caller需要读取内存的数据时,就需要生成一个迭代器,传入参数(min_ts,max_ts)就可以进行扫描读取。而当前默认实现是通过逐个遍历的方式来确定满足条件的block以及block中第一条满足条件的行,这成为生成迭代器性能瓶颈。
发明内容
为了解决以上技术问题,本发明提供了一种基于折半查找的时序数据库迭代器查询优化方法,较大的提升迭代器查询性能。
本发明的技术方案是:
一种基于折半查找的时序数据库迭代器查询优化方法,在迭代器初始化阶段,通过折半查找方法进行搜索满足条件的block集合左右边界,同时用折半查找定位第一条满足条件的行,代替了逐个遍历block来判断是否满足要求,提升数据库读性能。
迭代器本身维护了满足读条件的block集合,在初始化过程中,不再逐个遍历block判断是否满足条件,而是基于数据是有序的特征,通过折半查找的方式来实现block集合左右边界的确定,实现迭代器读性能提升。
进一步的,
实现包括内容如下:
1)迭代器的初始化,首先是确定满足条件的block集合和第一条满足条件的行位置row_cursor_,之后才可以正常使用迭代器。
2)当WriteCache的block为空、option.min_tslast_block.max_ts、option.max_tsfirst_block.min_ts三种情况时,直接返回,代表当前没有满足条件的数据。
3)若存在满足条件的数据,当option.max_tslast_block.min_ts,则代表已经找到右边界,记has_found_right_boundary=true;当option.min_tsfirst_block.max_ts,则代表已经找到左边界,记has_found_left_boundary=true。
4)若has_found_left_boundary=false,则代表还未确定左边界,需要使用折半查找来定位。首先初始化left=0,right=block_num-1,mid=(left+right)/2,通过不断比较option.min_ts与mid_block.max_ts大小,最终确定左边界;同理,来确定右边界。
再进一步的,当rightleft+1条件不满足时,跳出循环。当mid_block.max_tsoption.min_ts时,代表数据在mid的右边,故设置left=mid,否则设置right=mid。跳出循环后,可以确定right-left=1,因为确定数据存在,故left_boundary=right,同理找出右边界。最终把左右边界内的block添加到迭代器维护的block列表中。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于上海沄熹科技有限公司,未经上海沄熹科技有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202310006270.2/2.html,转载请声明来源钻瓜专利网。