分享自:

Torquedb:面向边缘存储的分布式时间序列数据查询

期刊:Lecture Notes in Computer Science (LNCS), SpringerDOI:10.1007/978-3-030-57675-2_18

研究概述

本文是一篇单一原创研究(类型a)的报告,题为《TorqueDB: Distributed Querying of Time-series Data from Edge-local Storage》,作者包括 Dhruv Garg、Prathik Shirolkar、Anshu Shukla 以及 Yogesh Simmhan,分别来自 Ericsson Research 和 Indian Institute of Science。本研究发表于 Euro-Par 2020 会议论文集。


学术背景

本研究涉及边缘计算(edge computing)和时间序列数据库(Time-series Database, TSDB)在物联网(Internet of Things, IoT)应用中的结合。近年来,物联网设备数量的爆炸性增长催生了对分布式时间序列存储和分析的迫切需求,这些设备广泛应用于智慧城市、工业设施、智能家电等场景。由于传感器数据具有时间戳,时间序列数据的查询和分析成为物联网应用的核心需求。

传统方法通常将边缘设备生成的数据上传到云端,进行集中式存储与分析。然而,这种方法的不足之处在于:
1. 网络延迟可能导致响应时间变长,尤其对于需要实时反馈的闭环决策系统。
2. 云服务的计算与存储成本较高。
3. 数据隐私与安全性可能受到影响。

为了解决这些问题,研究者对边缘设备上的时间序列存储与处理展开了相关探索。当前,虽然已有时间序列数据库(例如 InfluxDB 和 Apache Druid)可以在云环境上执行复杂的时间序列查询,但它们在边缘和雾计算(fog computing)中的应用仍存在以下主要缺陷:
1. 现有系统缺乏分布式查询功能。
2. 边缘设备计算与存储资源有限,不足以支持复杂查询与大规模数据管理。
3. 时间序列数据库和边缘本地存储之间缺乏无缝集成机制。

基于这些背景,本研究提出 TorqueDB,一个支持分布式时间序列查询的边缘与雾设备协同系统,旨在填补现有技术的这些空白。


工作流程与研究方法

系统架构设计

TorqueDB 的架构包括以下几个重要模块:边缘设备(edge device)、雾设备(fog resource)以及 Elfstore 和 InfluxDB。系统的总体模型如下:
1. 边缘设备:类似树莓派(Raspberry Pi),主要用于传感器数据的本地存储。使用分布式文件系统 Elfstore 对数据块进行存储和管理,每个数据块包含来自同一传感器的一天的数据,并附带元数据(如传感器类型、位置、时间范围等)。
2. 雾设备:作为边缘设备的统一网关,同时运行 Elfstore 服务以管理数据块副本和元数据索引。每个雾设备还运行一个 InfluxDB 实例,用于执行分布式的查询任务。
3. 组件集成与优化设计
- 数据可以按需从 Elfstore 移入 InfluxDB,而持久存储保存在 Elfstore。
- 查询引擎主要运行在雾设备上,而非完全依赖云端,从而减少网络延迟与云端计算成本。
- 引入了查询规划(Query Planning)机制,通过两种策略(分区本地化与负载平衡)最大化系统性能。


查询处理的工作流程

TorqueDB 的查询处理被分为四个层次(Level 1-Level 4),具体步骤如下:
1. Level 4:元数据过滤
查询从雾设备的元数据索引开始,通过解析查询的时间范围和条件(例如时间戳的范围查询和特定传感器类型的过滤条件),在 Elfstore 中筛选出与查询相关联的数据块。为了实现高效过滤,时间范围被离散化为特定时间块编号来简化元数据搜索。

  1. Level 3:进一步元数据过滤
    在 L3 层次,查询可以根据数据块的统计信息(例如某列的最大值和最小值)进一步剔除不相关的数据块,以减少后续处理的负担。如果查询需要更为复杂的过滤条件(例如某列数值必须大于特定阈值),该过程将检索并使用额外的元数据进行筛选。

  2. Level 2:并行数据查询与子查询执行
    剔除不相关的数据块后,系统将相关数据块分发到不同的雾设备以平行处理。每个雾设备会从 Elfstore 中读取分配给它的数据块,将数据插入本地的 InfluxDB 实例,并执行对应的子查询。

    • 数据传输和插入操作采用多线程技术以提速。
    • 插入到 InfluxDB 的行数据会附带数据块编号以避免重复查询。
    • 查询操作包括选择列(Projection)、过滤、时间窗口汇总、简单和复杂聚合(如 SUM、COUNT、MEAN)等。
  3. Level 1:最终结果聚合与返回
    所有雾设备的子查询结果被返回到查询协调器(Coordinator),随后在 L1 层完成汇总和进一步的全局聚合(如跨设备的汇总计算),最后返回给用户。


实验结果

研究团队在 15 节点 IoT 集群上(包含 12 台树莓派和 3 台雾设备)完成实验,并使用 Microsoft Azure Cloud 上的 VM 作为对比基线。实验选择了来自 Sense Your City 数据集的 19.35M 行传感器时间序列数据。实验设置涵盖了六种查询模式(包括简单投影、多值过滤、简单与复杂聚合、时间窗口等),并对查询响应时间、数据块传输和查询规划策略的影响进行了分析。

  1. 查询性能分析

    • 小范围时间查询大多能在 600 毫秒以内完成,较简单的查询如投影仅需 400 毫秒以下;大时间范围查询因数据量显著增多,延迟达到 700 毫秒左右。
    • 与云服务器上的 InfluxDB 比较,小范围查询性能接近,而大范围查询性能稍逊,主要耗时集中在数据从 Elfstore 加载至 InfluxDB 中,以及表的插入操作。
  2. 查询规划优化

    • 负载平衡策略(QP2)相较于分区本地化策略(QP1)耗时缩短约 0.2% 到 7.6%,尤其在大范围查询中其优越性更为显著。
  3. 缓存机制的贡献

    • 应用缓存后,重复查询的块能被快速复用,有效减少了数据块传输的次数和总时间。即使没有完全重复查询(0% 重叠),大型查询仍然减少约 17% 的数据块读取。

研究意义和亮点

结论

  1. TorqueDB 提供了一种全新的分布式时间序列数据库查询框架,专为边缘和雾计算环境而设计。这一框架将本地持久存储系统 Elfstore 与时间序列数据库 InfluxDB 的分布式查询能力结合起来,有效利用了雾设备的计算、存储资源,避免了额外的网络开销与云端资源压力。
  2. 通过创新设计的查询规划和块缓存机制,TorqueDB 展现出在处理大规模、多样化时间序列数据方面的高效性,是物联网时代分布式数据管理的一个重要方向。

研究亮点

  • 创新性:提出并实现了一种基于边缘、雾计算资源的分布式时间序列查询引擎,这是该领域首次探索这类技术的系统性方案。
  • 灵活性:通过“按需加载”减少了边缘和雾设备在有限资源条件下的冗余存储需求,与原始的 Elfstore 基础设施无缝集成。
  • 可扩展性:系统可支持多达数千台设备的规模,并提供未来对复杂查询如多表 Join 和嵌套查询的支持。

展望

未来研究计划包括将查询进一步下沉至边缘设备,以提升并行化程度;扩展支持更多的查询类型;并对不同场景、设备可靠性、多设备大规模集群环境下的性能表现进行验证。本研究的实践证明,TorqueDB 在应用价值和理论意义上的重要性,将为边缘计算领域的数据管理系统开启更广阔的研究空间。

上述解读依据用户上传的学术文献,如有不准确或可能侵权之处请联系本站站长:admin@fmread.com