暂无图片
暂无图片
暂无图片
暂无图片
暂无图片
一种时序数据快速存储和查询的方法_CN118394757A__上海沄熹科技.pdf
8
17页
0次
2025-03-06
免费下载
(19)国家知识产权局
(12)发明专利申请
(10)申请公布号
(43)申请公布日
(21)申请号 202410511171 .4
(22)申请日 2024 .04 .26
(71)申请人 上海沄熹科技有限公司
地址 200120 上海市浦东新区中国上海
自由贸易试验区张东路1158丹桂
10592305-22
(72)发明人 梁波 贾德星 陈磊 张炜刚 
(74)专利代理机构 济南信达专利事务所有限公
37100
专利代理师 陈婷婷
(51)Int.Cl .
G06F
16/22
(2019 .01)
G06F
16/2458
(2019 .01)
G06F
16/14
(2019 .01)
G06F
16/16
(2019 .01)
(54)发明名称
一种时序数据快速存储和查询的方法
(57)摘要
本发明公开了一种时序数据快速存储和查
询的方法属于数据库技术领域使用固定大小
MMAP文件MMAP文件对应的内存地址始终有
将时序数据与索引数据分离并且将时序数
据与索引数据分割到多个不同文件中用以实现
对已过期时序数据的清理时序数据存入MMAP
Block每个Block块都由RT基数树进行索引
用户插入的时序数据按照顺序依次放入Block
中;在查询时序数据时先根据RT基数树快速找
到满足条件的第一个block块对应的叶子节点
然后通过该叶子节点内的指针快速找到下一个
叶子节点本发明可快速定位数据位置不必遍
历所有数据提升插入和查询的性能
权利要求书3页 说明书9页 附图4页
CN 118394757 A
2024.07.26
CN 118394757 A
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数据文件划分为多个BlockBlock块存储的时序数据条数也可配置程序运行
时每条记录的长度都是固定的因此每个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
CN 118394757 A
2
知文件是否被误删第一个MMAP索引文件不会删除因此该字段从第二个MMAP索引文件的
编码开始
RT基数树根节点的文件位置RT基数树根节点在MMAP索引文件的位置
RT基数树会不断申请新的空间用于存储树结构当前MMAP索引文件空间不足时会新
MMAP索引文件并从新的MMAP索引文件中申请空间申请空间成功后更新元数据结构体
中的已分配到的文件位置
5 .根据权利要求134所述的一种时序数据快速存储和查询的方法其特征在于RT
树中节点间通过MMAP索引文件的位置信息连接通过文件位置计算出节点结构体所在MMAP
索引文件以及在MMAP索引文件的偏移量
假设节点对应MMAP索引文件位置为V所有MMAP索引文件对应的内存首地址形成的数
组为mems ,每个索引文件的大小为M则节点的内存地址为
6 .根据权利要求5所述的一种时序数据快速存储和查询的方法其特征在于RT基数树
数据结构为RT基数树通过key快速检索到相应的value的一种数据结构Keyvalue一一对
应;存储value的节点是叶子节点Key被分解存储到每层的中间节点中RT基数树的key
block块内最大的数据时间戳
RT基数树的节点包括
Rootnode根节点根节点是RT基数树的第一个节点检索时根据该第一个节点逐层向
下寻找
Middlenode中间节点RT基数树的中间节点用于快速定位叶子节点
Leafnode叶子节点存储value值;value是个结构体用于存放对应的MMAP数据文件
Block块信息
RT基数树的key对应于MMAP数据文件中block块中时序数据的最大时间戳当两个或多
block块中数据最小时间戳相同时也就是有多个叶子节点的key相同时只在RT基数树
上挂载一个叶子节点通过设置叶子节点结构体的下一个叶子节点位置将剩余相同key
的叶子节点串联起来
7 .根据权利要求34所述的一种时序数据快速存储和查询的方法其特征在于用户
插入一条数据时如果元数据结构体中的当前block块已经写入的记录条数小于Block块数
据容量则该条数据可以写入到当前block块中写入数据并更新当前block块已经写入的
记录条数值后退出
如果block容量不足则判断MMAP数据文件是否存在未使用的block如果没有则需
要创建新的MMAP数据文件并将mmap产生的地址放到数据文件地址的数组中
每个MMAP数据文件的文件编码与数据文件地址数组的下标对应MMAP数据文件中申
请新的block块,并创建叶子节点指向这个block将元数据结构体中的当前正在插入数
据的块对应的叶子节点的文件位置对应的叶子节点挂载到RT基数树中同时修改元数据结
构体的当前正在插入数据的块对应的叶子节点的文件位置为新创建的叶子节点的文件位
置,修改元数据结构体中的当前block块已经写入的记录条数为0最后从新的block块中申
请一个数据的空间写入数据并更新当前block块已经写入的记录条数值后退出
权 利 要 求 书
2/3
3
CN 118394757 A
3
of 17
免费下载
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文档的来源(墨天轮),文档链接,文档作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。