可变长序列匹配方法、数据库访问方法及装置制造方法及图纸

技术编号:26504813 阅读:22 留言:0更新日期:2020-11-27 15:32
本发明专利技术提供了一种可变长序列匹配方法、数据库访问方法及装置,该可变长序列匹配方法,包括:按序列流顺序以最小比较单元为粒度分别缓存待匹配序列流的数据位和模板序列的数据位;待匹配序列流和模板序列的最小比较单元包括相同位宽数据位;分别从缓存的待匹配序列流的数据位和缓存的模板序列的数据位中读取最小比较单元的数据位,并进行匹配比较;匹配一致时,若当前读取的待匹配序列流的数据位为子序列的最后一个最小比较单元,且当前读取的模板序列的数据位为模板的最后一个最小比较单元,则获取并输出当前子序列的索引值。通过上述方案能够提升数据库专用处理器的性能,进而提高数据库性能。

【技术实现步骤摘要】
可变长序列匹配方法、数据库访问方法及装置
本专利技术涉及一种数据库
,尤其涉及一种可变长序列匹配方法、数据库访问方法及装置。
技术介绍
在数据库中,数据涉及很多数据类型,例如,char、varchar、text、binary、tinyint、int、decimal等。数据库中一个数据表中可能包含多个属性的数据列,其中,不同属性的数据列的宽度可能不同,同一属性的数据列中的不同数据元素的长度也可能不同。简单而言,数据库中的数据表中不同数据列或一列中的不同数据元素可以是可变长的。而在访问数据库中的数据时,常常涉及匹配出数据元素或数据序列的操作,例如,在一个数据表中查询符合一定条件的数据列,或在数据表的一列中查询符合一定条件的数据元素。为数据库设计专用处理器(如,FPGA、ASIC等硬件)能够提升数据库访问的速度。然而,如何对可变长序列进行匹配成为影响专用处理器性能的关键因素。
技术实现思路
本专利技术提供了一种可变长序列匹配方法、数据库访问方法及装置,以提升数据库专用处理器的性能,进而提高数据库性能。根据本专利技术的一个方面,提供了一种可变长序列匹配方法,包括:按序列流顺序以最小比较单元为粒度缓存待匹配序列流的数据位,以及按序列流顺序以最小比较单元为粒度缓存模板序列的数据位;其中,所述待匹配序列流的最小比较单元和所述模板序列的最小比较单元包括相同位宽的数据位;按序列流顺序从缓存的所述待匹配序列流的数据位中读取一个最小比较单元的数据位,以及按序列流顺序从缓存的所述模板序列的数据位中读取一个最小比较单元的数据位;将读取的所述待匹配序列流的一个最小比较单元的数据位和读取的所述模板序列的一个最小比较单元的数据位进行匹配比较;在匹配比较一致的情况下,若当前读取的所述待匹配序列流的数据位所属最小比较单元是其所属子序列的最后一个最小比较单元,且当前读取的所述模板序列的数据位所属最小比较单元是模板的最后一个最小比较单元,则获取当前读取的所述待匹配序列流的数据位所属子序列的索引值,并输出获取的索引值。在一些实施例中,按序列流顺序以最小比较单元为粒度缓存待匹配序列流的数据位,以及按序列流顺序以最小比较单元为粒度缓存模板序列的数据位之前,所述方法,还包括:按序列流顺序将待匹配序列流的子序列以最小比较单元为粒度进行划分,以及按序列流顺序将模板序列以最小比较单元为粒度进行划分;其中,所述待匹配序列流的最小比较单元包括设定位宽的数据位和用于标识该最小比较单元所属子序列的标志位,所述模板序列的最小比较单元包括所述设定位宽的数据位。在一些实施例中,所述方法还包括:在匹配比较一致的情况下,若当前读取的所述待匹配序列流的数据位所属最小比较单元不是其所属子序列的最后一个最小比较单元,且当前读取的所述模板序列的数据位所属最小比较单元不是模板的最后一个最小比较单元,则获取当前读取的所述待匹配序列流的数据位所属最小比较单元的下一个最小比较单元的数据位,以及获取当前读取的所述模板序列的数据位所属最小比较单元的下一个最小比较单元的数据位,以进行下一次匹配比较。在一些实施例中,所述方法还包括:在匹配比较不一致的情况下,则将所述模板序列的读取位置重置至模板的初始位置,以及将所述待匹配序列流的读取位置跳至当前读取的数据位所属子序列的下一个子序列的初始最小比较单元。在一些实施例中,按序列流顺序以最小比较单元为粒度缓存待匹配序列流的数据位时,所述方法,还包括:对缓存的所述待匹配序列流的数据位所属的子序列进行计数,以得到相应子序列的索引值。在一些实施例中,按序列流顺序以最小比较单元为粒度缓存模板序列的数据位,包括:按序列流顺序以最小比较单元为粒度依次缓存模板序列的所有最小比较单元的数据位。在一些实施例中,按序列流顺序以最小比较单元为粒度缓存待匹配序列流的数据位,包括:按序列流顺序以最小比较单元为粒度依次缓存待匹配序列流的多个最小比较单元的数据位。在一些实施例中,所述设定位宽为一个字节的位宽。在一些实施例中,所述待匹配序列流的最小比较单元的标志位为第一数值,以表明该最小比较单元与其紧邻下一个最小比较单元属于同一子序列;所述待匹配序列流的最小比较单元的标志位为不同于所述第一数值的第二数值,以表明该最小比较单元与其紧邻下一个最小比较单元属于不同子序列。在一些实施例中,按序列流顺序以最小比较单元为粒度缓存待匹配序列流的数据位,包括:在接收到外部序列流输出装置的读取数据指令的情况下,按序列流顺序以最小比较单元为粒度缓存待匹配序列流的数据位。在一些实施例中,按序列流顺序从缓存的所述待匹配序列流的数据位中读取一个最小比较单元的数据位,以及按序列流顺序从缓存的所述模板序列的数据位中读取一个最小比较单元的数据位,包括:在接收到外部匹配结果接收装置的匹配指令的情况下,按序列流顺序从缓存的所述待匹配序列流的数据位中读取一个最小比较单元的数据位,以及按序列流顺序从缓存的所述模板序列的数据位中读取一个最小比较单元的数据位。在一些实施例中,按序列流顺序从缓存的所述待匹配序列流的数据位中读取一个最小比较单元的数据位之后,所述方法,还包括:在存在空闲的用于存储待匹配序列流的数据位的缓存空间的情况下,向外部序列流输出装置发送获取所述待匹配序列流的新的最小比较单元的请求,以缓存所述待匹配序列流的最新已缓存数据位所属最小比较单元的下一个最小比较单元的数据位。在一些实施例中,所述模板序列为一个模板。在一些实施例中,所述模板序列被划分为多个模板;所述模板序列的最小比较单元包括设定位宽的数据位和用于标识该最小比较单元所属模板的标志位。根据本专利技术的另一个方面,提供了一种数据库访问方法,包括:基于数据库访问语句得到待匹配序列流和模板序列;利用本专利技术任一实施例所述的可变长序列匹配方法将所述待匹配序列流与所述模板序列进行匹配比较,得到匹配比较一致的所述待匹配序列流的子序列的索引值;基于得到的所述待匹配序列流的子序列的索引值得到数据库访问语句对应的数据访问结果。根据本专利技术的又一个方面,提供了一种可变长序列匹配装置,包括:临时缓存处理模块,用于按序列流顺序以最小比较单元为粒度缓存待匹配序列流的数据位;比较模板模块,用于按序列流顺序以最小比较单元为粒度缓存模板序列的数据位;其中,所述待匹配序列流的最小比较单元和所述模板序列的最小比较单元包括相同位宽的数据位;所述临时缓存处理模块,还用于按序列流顺序从缓存的所述待匹配序列流的数据位中读取一个最小比较单元的数据位;所述比较模板模块,用于按序列流顺序从缓存的所述模板序列的数据位中读取一个最小比较单元的数据位;比较模块,用于将读取的所述待匹配序列流的一个最小比较单元的数据位和读取的所述模板序列的一个最小比较单元的数据位进行匹配比较;所述比较模块,还用于在匹配比较一致的情况下,若当前读取的所述待匹配序列流的数据位所属最小比较单元是其所属子序列的最后一个最小比较单元,且当前读取的所述本文档来自技高网...

【技术保护点】
1.一种可变长序列匹配方法,其特征在于,包括:/n按序列流顺序以最小比较单元为粒度缓存待匹配序列流的数据位,以及按序列流顺序以最小比较单元为粒度缓存模板序列的数据位;其中,所述待匹配序列流的最小比较单元和所述模板序列的最小比较单元包括相同位宽的数据位;/n按序列流顺序从缓存的所述待匹配序列流的数据位中读取一个最小比较单元的数据位,以及按序列流顺序从缓存的所述模板序列的数据位中读取一个最小比较单元的数据位;/n将读取的所述待匹配序列流的一个最小比较单元的数据位和读取的所述模板序列的一个最小比较单元的数据位进行匹配比较;/n在匹配比较一致的情况下,若当前读取的所述待匹配序列流的数据位所属最小比较单元是其所属子序列的最后一个最小比较单元,且当前读取的所述模板序列的数据位所属最小比较单元是模板的最后一个最小比较单元,则获取当前读取的所述待匹配序列流的数据位所属子序列的索引值,并输出获取的索引值。/n

【技术特征摘要】
1.一种可变长序列匹配方法,其特征在于,包括:
按序列流顺序以最小比较单元为粒度缓存待匹配序列流的数据位,以及按序列流顺序以最小比较单元为粒度缓存模板序列的数据位;其中,所述待匹配序列流的最小比较单元和所述模板序列的最小比较单元包括相同位宽的数据位;
按序列流顺序从缓存的所述待匹配序列流的数据位中读取一个最小比较单元的数据位,以及按序列流顺序从缓存的所述模板序列的数据位中读取一个最小比较单元的数据位;
将读取的所述待匹配序列流的一个最小比较单元的数据位和读取的所述模板序列的一个最小比较单元的数据位进行匹配比较;
在匹配比较一致的情况下,若当前读取的所述待匹配序列流的数据位所属最小比较单元是其所属子序列的最后一个最小比较单元,且当前读取的所述模板序列的数据位所属最小比较单元是模板的最后一个最小比较单元,则获取当前读取的所述待匹配序列流的数据位所属子序列的索引值,并输出获取的索引值。


2.如权利要求1所述的可变长序列匹配方法,其特征在于,按序列流顺序以最小比较单元为粒度缓存待匹配序列流的数据位,以及按序列流顺序以最小比较单元为粒度缓存模板序列的数据位之前,所述方法,还包括:
按序列流顺序将待匹配序列流的子序列以最小比较单元为粒度进行划分,以及按序列流顺序将模板序列以最小比较单元为粒度进行划分;其中,所述待匹配序列流的最小比较单元包括设定位宽的数据位和用于标识该最小比较单元所属子序列的标志位,所述模板序列的最小比较单元包括所述设定位宽的数据位。


3.如权利要求1所述的可变长序列匹配方法,其特征在于,还包括:
在匹配比较一致的情况下,若当前读取的所述待匹配序列流的数据位所属最小比较单元不是其所属子序列的最后一个最小比较单元,且当前读取的所述模板序列的数据位所属最小比较单元不是模板的最后一个最小比较单元,则获取当前读取的所述待匹配序列流的数据位所属最小比较单元的下一个最小比较单元的数据位,以及获取当前读取的所述模板序列的数据位所属最小比较单元的下一个最小比较单元的数据位,以进行下一次匹配比较。


4.如权利要求1所述的可变长序列匹配方法,其特征在于,还包括:
在匹配比较不一致的情况下,则将所述模板序列的读取位置重置至模板的初始位置,以及将所述待匹配序列流的读取位置跳至当前读取的数据位所属子序列的下一个子序列的初始最小比较单元。


5.如权利要求1所述的可变长序列匹配方法,其特征在于,按序列流顺序以最小比较单元为粒度缓存待匹配序列流的数据位时,所述方法,还包括:
对缓存的所述待匹配序列流的数据位所属的子序列进行计数,以得到相应子序列的索引值。


6.如权利要求1所述的可变长序列匹配方法,其特征在于,按序列流顺序以最小比较单元为粒度缓存模板序列的数据位,包括:
按序列流顺序以最小比较单元为粒度依次缓存模板序列的所有最小比较单元的数据位。


7.如权利要求1所述的可变长序列匹配方法,其特征在于,按序列流顺序以最小比较单元为粒度缓存待匹配序列流的数据位,包括:
按序列流顺序以最小比较单元为粒度依次缓存待匹配序列流的多个最小比较单元的数据位。


8.如权利要求2所述的可变长序列匹配方法,其特征在于,所述设定位宽为一个字节的位宽。


9.如权利要求2所述的可变长序列匹配方法,其特征在于,所述待匹配序列流的最小比较单元的标志位为第一数值,以表明该最小比较单元与其紧邻下一个最小比较单元属于同一子序列;所述待匹配序列流的最小比较单元的标志位为不同于所述第一数值的第二数值,以表明该最小比较单元与其紧邻下一个最小比较单元属于不同子序列。


10.如权利要求1所述的可变长序列匹配方法,其特征在于,按序列流顺序以最小比较单元为粒度缓存待匹配序列流的数据位,包括:
在接收到外部序列流输出装置的读取数据指令的情况下,按序列流顺序以最小比较单元为粒度缓存待匹配序列流的数据位。


11.如权利要求1所述的可变长序列匹配方法,其特征在于,按序列流顺序从缓存的所述待匹配序列流的数据位中读取一个最小比较单元的数据位,以及按序列流顺序从缓存的所述模板序列的数据位中读取一个最小比较单元的数据位,包括:
在接收到外部匹配结果接收装置的匹配指令的情况下,按序列流顺序从缓存的所述...

【专利技术属性】
技术研发人员:鄢贵海孔浩
申请(专利权)人:中科驭数北京科技有限公司
类型:发明
国别省市:北京;11

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

1