返回
涂鸦智能选型 TiKV 存储系统的实践与优化
人工智能
2023-12-25 22:13:09
作为全球化的 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 团队保持紧密合作,为涂鸦智能的业务发展提供更加稳定可靠的数据存储服务。