关键词:
时序数据
时序数据库
传感器
多线程
开放通道固态盘
摘要:
在工业物联网场景中,由各种类型的传感器设备产生的时序数据量呈爆炸式增长,如何对这类时序数据进行高效的存储与管理便成了一个需要解决的关键问题。对这类时序数据的存储与管理通常采用时序数据库,但现有的时序数据库还有所不足,一方面,未充分考虑到工业物联网中时序数据结构化、数据量平稳且可预测等特点;另一方面,依赖传统硬件的时序数据处理在性能局限上越来越明显,需要新型硬件突破这些限制,满足物联网等应用需求。因此,本文基于时序数据的特点以及新硬件开放通道固态盘(Open-Channel SSD,OCSSD)的特性,在真实开放通道固态盘上设计并实现了一套时序数据存储与检索系统。针对现有时序数据库在存储和管理时序数据时,未充分考虑到时序数据的特点这一问题,提出了一种面向多源时序数据的存储与检索方法。并针对当前搭建在开放通道固态盘上的存储系统大多基于模拟平台实现这一现象,基于所提方法在真实开放通道固态盘上搭建了一套面向工业物联网的时序数据存储与检索系统OC-TS,并为该系统设计了冗余消除及缓存策略、空间管理策略和时序数据检索策略。最后,与时序数据库TDengine进行了对比测试与分析,实验结果表明OC-TS的写入速度相比TDengine最高能提升8.5倍,查询速度相比于TDengine最高能提升1.5倍。读写时在面对传感器数量变化的情况下,OC-TS始终保持着稳定的性能。为了使搭建在开放通道固态盘上的系统在多线程多传感器情况下,保持更加稳定的性能,进一步提出了多通道空间管理策略和多通道环形缓冲区策略。结合开放通道固态盘的特性,在主机端分配物理空间时将传感器数据分布在不同通道,减轻开放通道固态盘在进行有效页迁移时对性能的影响,充分利用多通道的并行性。其次,在开放通道固态盘的块设备驱动中,将单个环形缓冲区划分为多个环形缓冲区,划分的个数与通道数保持一致,并为每个缓冲区分配一个回写线程,减少了多个传感器数据写入环形缓冲区时等待空闲空间的时间。最后,搭建多通道时序数据存储与检索系统MCTS,并与OC-TS和时序数据库TDengine进行了对比测试与分析,实验结果表明多线程多传感器情况下,MC-TS与OC-TS相比,数据的写入性能提升了23.2%,跟TDengine相比,数据的写入性能提升了4.3倍,在多线程写的情况下,保持着更加稳定的状态。