如何在汽车中构建一个时序数据库 (TSDB)?

为什么需要在车中使用时序数据库 (TSDB)?

随着电动汽车智能化的发展,车辆运行时生成的时序数据量不断增加,导致数据收集、传输和存储成本高昂。GreptimeDB 车云一体化解决方案利用现代车载设备的先进计算能力,解决了这些问题。与传统的车云协同方案中车辆仅充当数据收集器不同,这一新方案将车辆视为可以本地运行复杂任务的完整服务器。从 32 位微控制单元(MCU)到像高通 8155 或 8295 这样的强大芯片模块的演进,使得智能车辆能够高效地执行边缘计算,从而降低数据传输和存储成本并提升整体效率。

原生 GreptimeDB 解决方案及面临的挑战

GreptimeDB 是一款云原生的时序数据库,具有高度可扩展性。然而,最初研发团队并未把车端使用纳入到 GreptimeDB 的构建计划当中,于是在 GreptimeDB 上车使用后发现了一些显著的问题:

  • 资源使用的限制:GreptimeDB 运行在车辆的驾驶舱域控制器中,必须尽量减少 CPU 和内存的使用,以避免干扰信息娱乐系统。
  • 稳健性:GreptimeDB 从 CAN 总线收集关键诊断指标,因此任何崩溃都可能导致数据丢失。
  • 强环境适应能力:此外,与数据中心的服务器不同,基于车辆的 GreptimeDB 需要在各种条件下运行,如频繁的电源循环和由于道路交通变化而波动的 ADAS 数据速率,因此它需要在保持稳定和高效的同时适应这些变化。

在接下来的部分中,我们将详细阐述遇到的挑战及其解决方案。

CPU 使用量

与其他在数据中心运行的数据库类似,GreptimeDB 在使用时往往会占用尽可能多的 CPU 资源——这是衡量数据库可扩展性的一个关键指标。然而,在电动汽车中的使用情况有所不同,车载的人机界面(HMI)不仅要执行基本的数据收集任务,还需为乘客提供娱乐信息功能。因此,我们需要限制车载数据库的 CPU 资源消耗,以避免影响其他进程。

db#1694 实现之后,GreptimeDB 提供了一个便捷的工具用于记录和分析 CPU 使用情况。在持续的数据写入过程中,该工具会捕捉不同任务所消耗的 CPU 周期,并生成火焰图,显示每个组件的 CPU 使用情况,如下图所示。


(图 1 :数据库端(左)与 SDK 端(右)的 CPU 火焰图)

基于共享内存 IPC 的专有 SDK

上述图表显示,协议编码/解码在数据库端占用了大约 30% 的 CPU 周期,而在 SDK 端大约占用了 36%。优化协议处理将显著降低平均 CPU 使用率。目前,开源的 GreptimeDB SDK 使用 gRPC 作为其

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值