首页 专利交易 科技果 科技人才 科技服务 商标交易 会员权益 IP管家助手 需求市场 关于龙图腾
 /  免费注册
到顶部 到底部
清空 搜索

【发明授权】一种基于LSM_Tree的面向SSD的时序数据存储方法和系统_中国科学院软件研究所_202310402127.5 

申请/专利权人:中国科学院软件研究所

申请日:2023-04-14

公开(公告)日:2024-06-11

公开(公告)号:CN116414839B

主分类号:G06F16/22

分类号:G06F16/22;G06F16/2455;G06F3/06;G06F16/2458

优先权:

专利状态码:有效-授权

法律状态:2024.06.11#授权;2023.07.28#实质审查的生效;2023.07.11#公开

摘要:本发明涉及一种基于LSM_Tree的面向SSD的时序数据存储方法和系统。该方法在WAL模块提供了多个WALWriter,将接收的数据均分到每个WALWriter,数据可以并行写入WAL文件;在将缓存Cache写入磁盘SSTables文件时,通过FieldValues的字段值数量对SeriesKey进行排序,只将FieldValues的字段值数量达到阈值的时序数据写入SSTable文件,不满足条件的数据继续在缓存中,有利于SSTable文件中保存尽可能大的SeriesKey的数据,减小较小文件合并时数据被重复读取的概率。本发明充分利用了SSD内部并行性,提高了整个存储系统的写入吞吐,并能够减小写放大问题,延长SSD磁盘寿命,降低存储成本。

主权项:1.一种基于LSM_Tree的面向SSD的时序数据存储方法,其特征在于,包括以下步骤:将接收到的时序数据解析为SeriesKey=FieldValue模型,其中为SeriesKey为时间序列键,FieldValue为字段值;对所述SeriesKey进行哈希运算,得到64位无符号SeriesID,即时间序列ID,以减小元数据内存占用;将每个SeriesKey对应的时序数据写入缓存;在WAL模块设置多个预写日志线程WALWriter,将接收的时序数据均分到每个WALWriter中,利用多个WALWriter和SSD内部并行性将数据并行写入WAL文件;当缓存中的数据达到最大缓存阈值max_cache_threshold,或者缓存存在的时间超过最大缓存时间max_cache_cold_duration,将缓存中的数据写入SSTables文件,写入之前,通过FieldValues的字段值数量对SeriesKey进行排序,仅将FieldValues的字段值数量达到阈值的时序数据写入SSTable,不满足条件的数据继续在缓存中,使SSTable文件中保存尽可能大的SeriesKey的数据,减小较小文件合并时数据被重复读取的概率;所述将接收的时序数据均分到每个WALWriter中,包括:通过计算SeriesID%WAL_WRITER_NUMBER得到该SeriesKey对应的WALWriter,其中WAL_WRITER_NUMBER表示预写日志线程的数量;WALWriter的数量与CPU核心数或SSD内部通道数相同,每个WALWriter对应一个打开的可写入的文件句柄;其中,每个WAL文件的文件尾有一个比特位图Bitmap,保存WAL文件中所保存的SeriesID对应的数据,数据写入WAL文件后,将SeriesID添加到Bitmap;当缓存中的数据达到最大缓存阈值,或者缓存存在的时间超过最大缓存时间后,将缓存中的数据写入SSTables文件;在所述将FieldValues的字段值数量达到阈值的时序数据写入SSTable之后,记录已落盘的SeriesKey的SeriesIDs;根据记录的已落盘的SeriesKey的SeriesIDs,通过计算SeriesID%WAL_WRITER_NUMBER,得到每个SeriesKey对应的WALWriter,遍历WALWriter中所有的WAL文件,从每个WAL文件的Bitmap中删除已落盘的SeriesID,如果WAL文件的Bitmap为空,那么直接删除该WAL文件,否则保留该WAL文件。

全文数据:

权利要求:

百度查询: 中国科学院软件研究所 一种基于LSM_Tree的面向SSD的时序数据存储方法和系统

免责声明
1、本报告根据公开、合法渠道获得相关数据和信息,力求客观、公正,但并不保证数据的最终完整性和准确性。
2、报告中的分析和结论仅反映本公司于发布本报告当日的职业理解,仅供参考使用,不能作为本公司承担任何法律责任的依据或者凭证。