[发明专利]面向混合固态存储系统的嵌入式IoT时序数据库设计方法在审
| 申请号: | 202011302704.6 | 申请日: | 2020-11-19 |
| 公开(公告)号: | CN112506922A | 公开(公告)日: | 2021-03-16 |
| 发明(设计)人: | 蔡涛;刘佩瑶;施健聪;高鹏飞;牛德姣;李雷 | 申请(专利权)人: | 江苏大学 |
| 主分类号: | G06F16/22 | 分类号: | G06F16/22;G06F16/174;G06F3/06 |
| 代理公司: | 暂无信息 | 代理人: | 暂无信息 |
| 地址: | 212013 江*** | 国省代码: | 江苏;32 |
| 权利要求书: | 查看更多 | 说明书: | 查看更多 |
| 摘要: | |||
| 搜索关键词: | 面向 混合 固态 存储系统 嵌入式 iot 时序 数据库 设计 方法 | ||
1.面向混合固态存储系统的嵌入式IoT时序数据库设计方法,其特征在于,具体步骤如下:步骤1)在存储器驱动中建立时序数据存储引擎;
步骤2)在写入数据时根据IoT源的不同对时序数据进行分区;
步骤3)将时序数据以4KB的块为单位进行删冗压缩后存储在非易失性存储器NVM中;
步骤4)当NVM内数据块数量达到一定阈值时,将时效性较低的时序数据块迁移到固态硬盘SSD中,并且在NVM上保存其摘要;
步骤5)在查询数据时根据分级异构的时序数据索引机制索引NVM和SSD中的时序数据。
2.根据权利要求1所述的一种面向混合固态存储系统的嵌入式IoT时序数据库,其特征在于,所述步骤1),具体步骤如下:
步骤1.1:在内核的系统调用库中申明时序数据库引擎系统调用函数sys_call_TSNSM(name,interval,precision,range),参数name代表传感器的名称,在存储系统中称之为IoT源的名称,interval代表该设备发送数据的时间间隔,precision表示该设备所发送的数据值的小数位数字个数,range表示用户需要对这个设备的数据经常访问的时间范围;
步骤1.2:在内核的存储器驱动中实现时序数据库所需要的读写函数;
put_tsnsm(name,timestamp,value,batch)写函数,name表示IoT源的名称,timestamp表示时间戳,value表示数值,batch表示插入模式是普通插入还是批量插入,默认为普通插入;
read_tsnsm(name,time_start,time_end)读函数,name表示IoT源的名称,time_start和time_end分别表示要读取的时间段的起点和终点;
步骤1.3:在内核中为上述函数指定系统调用号,函数sys_call_TSNSM(),put_tsnsm(),read_tsnsm()的系统调用号分别为330、331、332。
3.利要求1所述的一种面向混合固态存储系统的嵌入式IoT时序数据库,其特征在于,所述步骤2),具体步骤如下:
步骤2.1:在NVM中为IoT源建立信息区,包括IoT源的名称name、产生数据的时间间隔interval、数值精度precision、频繁查询时间范围range,迁移阈值threshold,并为此IoT源分配一个独立的时序数据存储区;
步骤2.2:为IoT源信息区建立Hash索引结构,将IoT源名称由字符串转换为唯一的纯数字字符串,以该纯数字字符串为Key,以该IoT源信息区地址为Value,使用平方取中法为每个IoT源分配Hash值。
4.根据要求3所述的一种面向混合固态存储系统的嵌入式IoT时序数据库,其特征在于,所述步骤3),具体步骤如下:
步骤3.1:在时序数据存储区内,检查所含数据块的数量;
步骤3.2:若数据块的数量为零,建立一个大小为4KB的数据块,它由块首的(start_stime,start_value,p_num,next,pre)和块的主体D数组构成,start_stime表示数据块的起始时间,start_value表示起始数值,p_num表示start_value连续重复出现的个数,next表示下一个块的地址,pre表示下一个块的地址,D数组用来存储一个个压缩后的数值d;将待存储的时序数据的时间戳和数值保存在块首的start_time和start_value位置;
步骤3.3:若数据块的数量不为零,检查第一个数据块是否还有空间容纳新值,若没有,则以步骤3.2的方法生成一个新块,并使next指针指向目前第一个块,然后让目前第一个块的pre指针指向这个新建的块,从而使新建的块永远在第一个块;
步骤3.4:若第一个数据块还有空间容纳新值,则将待存储的时序数据点的数值Value与start_value进行对比,若相等,则仅让数据块块首的p_num变量自加,若不相等,则对Value进行计算得到一个数正整数d,将d存入D数组,d的计算公式为:
d=(Value–start_value)*10precision。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于江苏大学,未经江苏大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202011302704.6/1.html,转载请声明来源钻瓜专利网。





