一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种时序存储引擎内存设计及分配方法及装置与流程

2022-11-30 10:13:33 来源:中国专利 TAG:

技术特征:
1.一种时序存储引擎内存设计及分配方法,其特征在于,时序数据库存储引擎对外提供的存储数据的最小单元是objecttable,一个所述obejcttable在内存中有多个block用于存储一个时间段内的时序数据,当一个所述block写满或者时间跨度超过设定阈值时,需要改变当前block的状态为不可写,然后创建新的block;创建所述block时,需要根据计算得到的block大小申请对应的内存,每次所述block需要写入数据时,从申请的内存中申请固定大小的buffer,当所述block刷盘完成后申请的内存放到回收队列中等待回收。2.根据权利要求1所述的一种时序存储引擎内存设计及分配方法,其特征在于,对于写入的时序数据,使用存储内部的编解码策略,保持每条数据长度固定,每条数据的头部增加bitmap记录值为空的列;一条数据由多个列或属性组成,在时序数据场景中,第一个属性为时间戳,第二个属性是一个bitmap,记录值为空的列,之后的属性都是value。3.根据权利要求1或2所述的一种时序存储引擎内存设计及分配方法,其特征在于,所述block的创建是在数据写入时,首先计算得到一条数据的长度valuelength,根据所述valuelength计算出所述block存储数据需要的大小,并在block创建时申请对应的内存空间,其中一条数据的计算方式为:valuelength=timestamp.size() bitmap.size() columnvalue.size()。4.根据权利要求3所述的一种时序存储引擎内存设计及分配方法,其特征在于,根据元数据中的时间跨度阈值及写入数据的时间间隔,估算得到block中需要存储的数据条数,根据需要存储的数据条数和数据大小,计算得到block需要分配的内存大小。5.根据权利要求4所述的一种时序存储引擎内存设计及分配方法,其特征在于,校验所述内存大小是否在设置的内存阈值之间,超出时,需要将申请的内存大小置为最大或者最小内存阈值,申请连续内存空间的内存。6.根据权利要求5所述的一种时序存储引擎内存设计及分配方法,其特征在于,当申请的内存大小与需要的内存大小不一致时,根据写入数据的长度,重新计算所述block可以存储的数据量。7.根据权利要求6所述的一种时序存储引擎内存设计及分配方法,其特征在于,申请的内存放入链表中进行管理,写入数据时,每次从申请的内存中分配一定大小的buffer,并记录当前数据写入的偏移量,当前buffer存满后,将从申请的内存中分配一个新的buffer。8.根据权利要求7所述的一种时序存储引擎内存设计及分配方法,其特征在于,buffer中只用来存储顺序数据,对于乱序数据,当需要向所述block中插入乱序数据时,每次申请一个最小的page页,这个空间不算入block空间中;当一个block写满或者需要使用新的时间段时,转为immutable block,此时所述block不能写入数据,放到刷盘队列中等待落盘;当数据持久化完成后,block申请的内存可以回收,将所述block申请的内存放入回收队列中等待回收,在回收队列中的数据在block中依然可以读取。9.一种时序存储引擎内存设计及分配装置,其特征在于,包括:至少一个存储器和至少一个处理器;所述至少一个存储器,用于存储机器可读程序;
所述至少一个处理器,用于调用所述机器可读程序,执行权利要求1至8中任一所述的方法。

技术总结
本发明涉及数据库管理技术领域,具体提供了一种时序存储引擎内存设计及分配方法,时序数据库存储引擎对外提供的存储数据的最小单元是ObjectTable,一个ObejctTable在内存中有多个block用于存储一个时间段内的时序数据,当一个block写满或者时间跨度超过设定阈值时,需要改变当前block的状态为不可写,然后创建新的block;创建block时,需要根据计算得到的block大小申请对应的内存,每次block需要写入数据时,从申请的内存中申请固定大小的buffer,当所述block刷盘完成后申请的内存放到回收队列中等待回收。与现有技术相比,本发明提升了时序数据库内存的利用率,方便数据的写入和查询,防止出现数据写入异常的场景出现。现。现。


技术研发人员:张华海 梁波 张炜刚
受保护的技术使用者:浪潮软件集团有限公司
技术研发日:2022.08.01
技术公布日:2022/11/29
再多了解一些

本文用于创业者技术爱好者查询,仅供学习研究,如用于商业用途,请联系技术所有人。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献