返回

涂鸦智能选型 TiKV 存储系统的实践与优化

人工智能

作为全球化的 IoT 开发平台,涂鸦智能以云为核心,通过模块化、碎片化的方式整合硬件和软件,赋能开发者快速搭建智能硬件产品。在海量的 IoT 设备连接和数据采集场景中,涂鸦智能面临着海量设备数据管理、实时数据处理、数据安全及高可靠等多方面的挑战。

本文将重点分享涂鸦智能在 TiKV 存储系统选型、优化和实践过程中的经验和最佳实践,为其他企业在 IoT 场景中选用分布式数据库提供参考。

选型 TiKV 的契机

在海量的 IoT 设备接入场景中,涂鸦智能的业务特点决定了其对存储系统提出了以下要求:

  • 海量设备数据存储: 需要存储来自数亿台 IoT 设备的数据,包括设备状态、传感器数据、历史记录等。
  • 实时数据处理: 需要对实时采集的设备数据进行快速处理,以支持设备控制、数据分析等应用。
  • 数据安全及高可靠: 需要保障设备数据的安全性和可靠性,防止数据丢失或泄露。
  • 高并发访问: 需要支持同时来自数百万台设备的高并发数据访问。

基于这些要求,涂鸦智能团队对主流的分布式存储系统进行了全面的调研和评估,最终选择了 TiKV 作为其核心存储系统。TiKV 是一款开源的分布式事务性 KV 存储系统,具有以下优势:

  • 高性能: TiKV 采用 Raft 共识算法和 RocksDB 存储引擎,提供高吞吐量和低延迟的读写性能。
  • 高可用: TiKV 采用多副本机制和故障自动转移,确保数据的高可用性。
  • 弹性扩展: TiKV 可以根据业务需求灵活地进行横向扩展,满足海量数据存储的需求。
  • 事务支持: TiKV 支持 ACID 事务,保证数据的完整性和一致性。

TiKV 的优化实践

在将 TiKV 引入生产环境后,涂鸦智能团队对 TiKV 进行了一系列的优化实践,以满足业务需求和提升系统性能。

硬件优化:

  • 采用高性能服务器,配备大容量内存和高速 SSD 硬盘。
  • 部署 TiKV 集群,并合理配置节点数量和副本数。

调优参数:

  • 根据业务负载和硬件配置调整 TiKV 的相关参数,如 raft 日志大小、存储引擎参数等。
  • 使用 Grafana 和 Prometheus 等监控工具监控 TiKV 的运行状态,并及时调整参数以优化性能。

数据分区:

  • 针对不同的业务场景和数据类型,对数据进行合理的垂直或水平分区。
  • 通过分区可以降低单节点的负载,提升系统整体性能。

索引优化:

  • 根据查询模式创建合适的索引,以提升查询效率。
  • 使用覆盖索引避免二次查询,减少 IO 开销。

实际应用场景

在涂鸦智能的实际应用场景中,TiKV 扮演着以下几个关键角色:

  • 设备数据存储: 存储来自数亿台 IoT 设备的设备状态、传感器数据、历史记录等。
  • 实时数据处理: 支持设备控制、数据分析等应用对实时设备数据的处理。
  • 告警管理: 存储设备告警信息,并提供快速查询和处理功能。
  • 设备管理: 存储设备信息、设备分组、设备固件等数据,提供设备管理功能。

总结

通过一系列的选型、优化和实践,涂鸦智能成功将 TiKV 引入生产环境,支撑其海量的 IoT 设备数据存储和处理需求。TiKV 的高性能、高可用、弹性扩展和事务支持等特性,满足了涂鸦智能在 IoT 场景中的存储系统要求。

未来,涂鸦智能将继续深入探索 TiKV 的特性和功能,并与 PingCAP 团队保持紧密合作,为涂鸦智能的业务发展提供更加稳定可靠的数据存储服务。