1 .一种时序数据快速存储和查询的方法,其特征在于,
使用固定大小的MMAP文件,MMAP文件对应的内存地址始终有效;
将时序数据与索引数据分离,并且将时序数据与索引数据分割到多个不同文件中,用
以实现对已过期时序数据的清理;
时序数据存入MMAP技术打开的数据文件中,数据文件划分成多个Block块,每个Block
块都由RT基数树进行索引;用户插入的时序数据按照顺序依次放入Block块中;
在查询时序数据时,先根据RT基数树快速找到满足条件的第一个block块对应的叶子
节点,然后通过该叶子节点内的指针快速找到下一个叶子节点,从而减少了遍历的block数
量;
根据RT基数树找到最后一个叶子节点,遍历这个节点以及正在写入的节点对应的
Block就能找到最大时间戳的时序数据。
2 .根据权利要求1所述的一种时序数据快速存储和查询的方法,其特征在于,所述使用
RT基数树索引block块,将RT基数树结构存入MMAP技术打开的索引文件中,使得RT基数树索
引被高效持久化。
3 .根据权利要求1所述的一种时序数据快速存储和查询的方法,其特征在于,将存储的
文件划分为MMAP数据文件和MMAP索引文件,MMAP数据文件用于存放用户插入的时序数据;
MMAP索引文件用于存放快速查询用途的RT基数树结构;
所述MMAP数据文件使用MMAP技术进行读写,MMAP数据文件存储的时序数据条数可配
置;将MMAP数据文件划分为多个Block块,Block块存储的时序数据条数也可配置;程序运行
时每条记录的长度都是固定的,因此,每个Block块大小固定,每个MMAP数据文件大小也固
定;
用户插入的时序数据,会按照顺序依次存放到MMAP数据文件的Block块中,当Block块
满时,会继续写入MMAP数据文件的下一个Block块;当MMAP数据文件写满时,会继续写入到
新生成的MMAP数据文件的第一个block块中,通过调用函数将MMAP数据文件立即同步到磁
盘中;
所述MMAP索引文件使用MMAP技术进行读写,MMAP索引文件大小可以配置;第一个MMAP
索引文件的前64个字节存储元数据结构体,元数据结构体中包含:已分配到的文件位置、当
前正在插入数据的块对应的叶子节点的文件位置、起始文件编码、RT基数树根节点的文件
位置、当前block块已经写入的记录条数;
MMAP索引文件编码从0开始,第一个MMAP索引文件编码为0,并且这个MMAP索引文件会
一直存在,不会被清理掉。
4 .根据权利要求3所述的一种时序数据快速存储和查询的方法,其特征在于,已分配到
的文件位置:用于存储当前MMAP索引文件已经写入到文件的哪个位置,下次再分配空间时
会从这个位置继续申请;
当前正在插入数据的块对应的叶子节点的文件位置:正在插入的数据写入到的block
块对应的叶子节点所在文件的位置,新的叶子节点会在向新的block块申请空间时创建出
来,用于快速索引这个block块;
起始文件编码:随着时序数据不断过期,会将过期数据的索引文件删除,MMAP索引文件
的文件编码会递增创建;此字段存储还在使用的最小索引文件编码,以便在重启时能够感
权 利 要 求 书
1/3 页
2
相关文档
评论