关键词:
非易失性内存
时序数据
存储管理
新型存储系统
摘要:
随着万物互联时代的到来,物联网(Internet of things,IoT)系统的重要性日益凸显。物联网系统中通常包含大量的IoT设备,并以固定时间间隔持续产生大量时序数据,这给如何高效存储和管理这些IoT时序数据带来了很大的挑战。非易失性内存(NonVolatile Memory,NVM)具有可字节寻址、低读写延迟、高读写速度、容量大等特性,为高效地存储和管理海量IoT时序数据来了机遇。现有的IoT时序数据存储系统通常是基于通用数据库或存储引擎二次开发而来,在缺乏针对IoT时序数据特性的原生存储机制的同时,也缺乏适应NVM存储设备的优化策略,难以满足海量IoT时序数据高效存储的需求。因此,本文研究和设计基于NVM的IoT时序数据存储系统。首先,结合NVM存储设备的特性,分别从存储算法、查询策略、缓存机制和一致性机制四个方面对现有的IoT时序数据存储系统进行了分析,给出了基于NVM的IoT时序数据存储系统的结构,包含多粒度自转换的IoT时序数据管理引擎和高效的缓存与一致性机制两个主要部分,通过有效发挥NVM存储设备的优势与利用IoT时序数据的特性,提高IoT时序数据的存储与管理效率。其次,针对IoT时序数据的访问具有时效性和NVM存储设备的低延迟等特点,设计了多粒度自转换的IoT时序数据管理引擎。首先给出了多粒度自转换的IoT时序数据存储策略,在将IoT时序数据按时序进行分级的同时,使用不同粒度的数据块组织IoT时序数据,在反映IoT时序数据访问时效性的同时,也能避免额外的复制开销,为提高IoT时序数据的存储与管理效率提供了支撑。其次设计了基于时效的IoT时序数据异构查询策略,利用IoT时序数据的存储结构和访问的时效性,对不同时序级的IoT时序数据设计不同的查找算法,在避免了维护复杂索引产生开销的同时,提升IoT时序数据的查询效率。并在Intel Optane DC Persistent Memory及其设备驱动程序PMEM的基础上,实现了多粒度自转换的IoT时序数据管理引擎的原型TS-MGE,分别使用YCSB-TS与TSBS进行测试分析;结果表明,对比Influx DB、Open TSDB和Timescale DB,TS-MGE最高能提升137%的写吞吐率、175.4%的随机查询吞吐率和213.4%的范围查询吞吐率。最后,针对现有存储系统的缓存机制与一致性机制无法适应NVM存储设备特性和IoT时序数据特性的问题,设计了高效的缓存与一致性机制。首先给出了区域激活的地址预测异常缓存,将预估查找算法出错后正确数据块的地址缓存,并使用基于区域激活的方式改进缓存管理算法,适应了IoT时序数据的存储结构和查询特点,提高了低时序级IoT时序数据的查询吞吐率。其次设计了融合异常值的日志,通过异常值向异常摘要的转换,在保证日志管理效率的同时,提高IoT系统中异常数据的查询效率。接着设计了IoT时序数据存储的一致性策略,保证了数据块写入NVM的一致性和自转换流程的一致性。并在Intel Optane DC Persistent Memory及其设备驱动程序PMEM的基础上,实现了基于NVM的IoT时序数据存储系统的原型NBTSMS,使用YCSB-TS进行测试分析。结果表明,与Influx DB、Open TSDB、Timescale DB,以及TS-MGE相比,NBTSMS最高能提升180.1%的随机查询吞吐率,降低20%的随机查询延迟;在融合异常值日志的测试中,NBTSMS最高能够减少15%的日志空间开销,降低48.1%的异常值查询延迟;在多线程测试中,NBTSMS最高能提升103.1%的写吞吐率、135.7%的随机查询吞吐率,和128.2%的范围查询吞吐率。