时序数据库 InfluxDB 3.0 版本性能实测报告:写入吞吐量提升效果验证

亮点总结:

TSBS 测试表明,对于少于 100 万台设备的数据集,InfluxDB OSS 3.0 的数据写入速度实际上比 InfluxDB OSS 1.8 更慢。

对于 100 万台及以上设备的数据集,InfluxDB OSS 3.0 的数据写入性能才开始超过 InfluxDB OSS 1.8。

InfluxDB OSS 3.0 的数据写入接口与 InfluxDB 1.8 并不兼容,用户无法顺利迁移。

早在 2023 年,在 InfluxDB 3.0 推向企业用户时,官方曾宣称其相比旧版本有显著的性能提升。为了验证这一说法,InfluxData 还发布了一份基准测试报告,对比了 InfluxDB 3.0 企业版与 InfluxDB OSS 1.8,结果显示 InfluxDB 3.0 在各方面表现出色。

我们对这个版本非常好奇,但作为非企业用户,只能和大多数人一样等待了一年半,直到今年 1 月 InfluxDB OSS 3.0 终于公开发布。虽然目前的版本仅是“public alpha”,但这并不妨碍我们对其性能抱有很高的期待,毕竟 InfluxData 已经第二次彻底重构产品架构。对于那些希望平稳升级的用户来说,这无疑是个不小的冲击,更何况官方还直接放弃了 Flux 语言。如果 InfluxDB 3.0 无法在性能上带来真正的突破,那这样的升级又有何意义?

实际测试:InfluxDB 3.0 真的更快吗?

为了验证 InfluxDB 3.0 是否真的如官方宣传般带来巨大性能提升,我们采用 Time Series Benchmark Suite (TSBS) 进行对比测试。TSBS 由 InfluxData 最初开发,目前由 Timescale 维护,是业界公认的时序数据库基准测试工具。理论上,InfluxDB 3.0 仍支持 InfluxQL 和传统的 Line Protocol,因此应该能够直接运行针对 1.8 版本的测试套件。然而,在实际测试过程中,我们遇到了多个兼容性问题,不得不寻找替代方案,这部分将在后续介绍测试方法的章节中详细说明。

我们之所以选择 TSBS 作为测试工具,不仅因为它比 QuestDB 之前发布的简单基准测试更全面,还因为它提供了一个公开透明的测试框架,让不同数据库的对比变得更加公平。然而,测试结果却让我们大跌眼镜。

TSBS 提供了两个测试场景:DevOps 监控(CPU 监测)和物联网(IoT,车辆跟踪)。在测试中,我们使用 TSBS 生成数据,并分别写入 InfluxDB 3 0.1.0(修订版 v2.5.0-14345)、InfluxDB OSS 1.8 和 TDengine OSS 3.3.5.8。以下图表展示了各系统在不同测试场景下的写入性能(指标数/秒)。

TSBS DevOps 用例:

TSBS IoT 用例:

测试结果分析:InfluxDB 3.0 写入提升远不及 45 倍

在最大规模的数据集中,InfluxDB 3.0 在 DevOps 场景下的写入性能提升了 5.4 倍,在物联网(IoT)场景下提升了 4.9 倍。这与 InfluxData 基准测试报告中声称的“写入吞吐量提升 45 倍”相去甚远。更令人意外的是,在设备数量不超过 10 万的场景下,InfluxDB 1.8 的写入性能竟然优于 InfluxDB 3.0。这表明,InfluxDB 3.0 所谓的性能提升,要么仅适用于企业版,要么在独立测试中并不成立。

从测试结果我们也可以看到,TDengine 的写入速度比 InfluxDB 3.0 快 4.4 至 11.3 倍,相较 InfluxDB 1.8 更是提升了 3.1 至 22.8 倍。这进一步证明,即便 InfluxDB 3.0 进行了彻底重构,其写入性能仍难以与 TDengine 相媲美。

TSBS 适配已完成,欢迎查看源码自行测试

本次测试在一台 40 核、256GB 内存的服务器上进行。该服务器的配置略低于 InfluxDB 官方基准测试环境,高于 QuestDB 的测试环境,但硬件差异对整体性能趋势的影响可忽略不计。

由于 TSBS 尚未针对 InfluxDB 3.0 进行更新,我们不得不对其进行一定的修改。为确保公平性,我们尽量减少了改动,但仍需解决以下问题:

  • 数据库管理指令不兼容 TSBS 运行 InfluxDB 1.8 时使用的 SHOW、CREATE、DELETE 数据库命令在 InfluxDB 3.0 中已不可用。因此,我们改用 InfluxDB v3 API:

    • GET /api/v3/configure/database 查询数据库

    • POST /api/v3/configure/database 创建数据库

    • DELETE /api/v3/configure/database 删除数据库

  • 多线程写入失败 在使用多个并发写入进程时,InfluxDB 3.0 频繁出现写入失败,并报错 Invalid write response (status 409): catalog update error: table already exists。为解决此问题,我们修改了 TSBS,使其在遇到该错误时自动重试,而不是直接退出。此外,数据写入采用 InfluxDB 3.0 提供的 /api/v3/write_lp 接口。

现在所有修改均已提交到我们维护的 TSBS 分支,任何人都可以查看源码并自行运行测试。

结语

尽管 InfluxDB 3.0 经过全面重构,并宣传性能显著提升,但从写入性能来看,至少对开源用户而言,这一承诺并未兑现。测试结果表明,其写入性能仅在超大规模数据集下略优于 InfluxDB 1.8,而对于大多数用户,尤其是设备数少于 100 万场景下,性能反而有所下降。即便目前仍处于 Public Alpha 阶段,但该版本已开发一年多的时间,它的表现真的值得开源社区期待吗?

此外,InfluxDB 3.0 采用了全新架构,导致用户无法顺利从 1.8 版本升级。对于开源用户而言,这次升级是否值得,也确实需要慎重考虑。尤其是当数据写入性能成为瓶颈时,从目前的测试结果来看,InfluxDB 3.0 并未能提供令人信服的解决方案。相比之下,TDengine 始终坚持对开源社区的承诺,不仅提供高性能、全功能的软件,还确保所有用户都能公平获取和使用。面对时序数据存储与处理的挑战,选择一款真正高效、稳定的数据库,才是更明智的决定。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/diannao/72717.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

AS32X601双核锁步MCU技术优势分析

AS32X601是国科安芯公司研制的一系列基于32位RISC-V指令集车规级MCU处理器芯片。主频高达180MHz,支持双核锁步架构,基于软错误防护技术加持,显著提高芯片安全性能。产品具有高安全、低失效、多IO、低成本、抗辐照等特点。 一、功能安全与可靠…

基于 LeNet 网络的 MNIST 数据集图像分类

1.LeNet的原始实验数据集MNIST 名称:MNIST手写数字数据集 数据类型:灰度图 (一通道) 图像大小:28*28 类别数:10类(数字0-9) 1.通过torchvision.datasets.MNIST下载并保存到本地…

电池综合测试仪:科技赋能,精准守护能源安全

在当今这个科技日新月异的时代,电池作为众多电子设备的心脏,其性能的稳定与高效直接关系到设备的运行质量与使用安全。随着电动汽车、可穿戴设备、储能系统等领域的快速发展,对电池性能的检测与评估提出了更高要求。在此背景下,电…

【Linux 22.4 ubuntu 安装cuda12.1 完整方案】

下载cuda12.1 官网网址 wget https://developer.download.nvidia.com/compute/cuda/12.1.1/local_installers/cuda_12.1.1_530.30.02_linux.run sudo sh cuda_12.1.1_530.30.02_linux.run!import! 如果已经安装驱动,则不要选择dirver那项 添加环境变量 vim ~/.b…

实战案例分享:Android WLAN Hal层移植(MTK+QCA6696)

本文将详细介绍基于MTK平台,适配高通(Qualcomm)QCA6696芯片的Android WLAN HAL层的移植过程,包括HIDL接口定义、Wi-Fi驱动移植以及wpa_supplicant适配过程,涵盖STA与AP模式的常见问题与解决方法。 1. HIDL接口简介 HID…

Greenplum6.19集群搭建

一,安装说明 1.1环境说明 1、首先确定部署的环境,确定下服务器的端口,一般默认是22的端口; 2、当前这份文档是服务器处于10022端口下部署的(现场生产环境要求,22端口在生产环境存在安全隐患)&…

电商项目-秒杀系统(四)秒杀异步下单防止重复秒杀

一、 防止恶意刷单解决 在生产场景下,可能会有一些人会恶意访问当前网站,来进行恶意的刷单。这样会造成当前系统出现一些业务上的业务混乱,出现脏数据,或者造成后端访问压力大等问题。 一般要解决这个问题的话,前端可…

原生android 打包.aar到uniapp使用

1.原生安卓里面引入uniapp官方提供的包文件: uniapp-v8-release.aar 2.提供uniapp调用的接口,新建类文件继承UniModule, package com.dermandar.panoramal;import com.scjt.lib.certlib;import io.dcloud.feature.uniapp.annotation.UniJSM…

Android 多用户相关

Android 多用户相关 本文主要记录下android 多用户相关的adb 命令操作. 1: 获取用户列表 命令: adb shell pm list users 输出如下: Users:UserInfo{0:机主:c13} running默认只有一个用户, id为0 ,用户状态为运行 2: 创建新用户 命令: adb shell …

基于Spring Boot的高校就业招聘系统的设计与实现(LW+源码+讲解)

专注于大学生项目实战开发,讲解,毕业答疑辅导,欢迎高校老师/同行前辈交流合作✌。 技术范围:SpringBoot、Vue、SSM、HLMT、小程序、Jsp、PHP、Nodejs、Python、爬虫、数据可视化、安卓app、大数据、物联网、机器学习等设计与开发。 主要内容:…

前端安全面试题汇总及参考答案

目录 简述 XSS 攻击的原理及三种常见类型(存储型、反射型、DOM 型) 如何在前端防御 XSS 攻击?列举编码、过滤、CSP 策略的具体实现方式 富文本编辑器场景下如何安全处理用户输入的 HTML 内容? 如何通过 HttpOnly 属性增强 Cookie 安全性?它与 XSS 防御的关系是什么? …

Linux驱动开发(1.基础创建)

序言:从高层逻辑到底层硬件的回归 在当今的软件开发中,我们习惯于用高级语言构建抽象层——通过框架、库和云服务快速实现功能。这种“软逻辑”的便利性让开发效率倍增,却也逐渐模糊了我们对计算机本质的认知:一切代码终将落地为…

Gradle本地配置文件分享

Gradle本地配置文件分享 allprojects {repositories {mavenLocal()maven { name "Alibaba" ; url "https://maven.aliyun.com/repository/public" }maven { name "Bstek" ; url "https://nexus.bsdn.org/content/groups/public/" }ma…

deepseek 本地部署

deepseek 本地部署 纯新手教学,手把手5分钟带你在本地部署一个私有的deepseek,再也不用受网络影响。流畅使用deepseek!!! 如果不想看文章,指路:Deep seek R1本地部署 小白超详细教程 &#xff0…

HTML学习笔记(全)

基本结构 <!DOCTYPE html> <html> <head><meta charset"UTF-8"><title></title> </head> <body></body> </html> 基本标签元素 标题&#xff08;heading&#xff09; <h1>一级标题</h1> &…

腾讯云对象存储服务(COS)

腾讯云对象存储服务&#xff08;COS&#xff09; 安全、可扩展、低成本的云存储解决方案 腾讯云 对象存储服务&#xff08;COS&#xff0c;Cloud Object Storage&#xff09; 是一种高可靠、高性能、可扩展的云存储服务&#xff0c;专为海量非结构化数据&#xff08;如图片、…

从ETL到数仓分层:大数据处理的“金字塔”构建之道

在当今数据驱动的时代&#xff0c;大数据处理已成为企业决策和业务优化的核心。而ETL&#xff08;Extract, Transform, Load&#xff09;作为数据处理的基石&#xff0c;其背后的数仓分层理念更是决定了数据处理的效率与质量。本文将深入探讨ETL工作中的数仓分层理念&#xff0…

数字孪生对于新基建的价值浅析,算是抛砖引玉。

数字孪生&#xff08;Digital Twin&#xff09;作为一项融合物理世界与数字世界的关键技术&#xff0c;在新基建中扮演着虚实协同、智能决策、全生命周期管理的核心角色&#xff0c;其价值贯穿于基础设施的设计、建设、运维到优化全流程。 一、核心价值&#xff1a;虚实映射与智…

从零开始实现大语言模型(十三):预训练大语言模型GPTModel

1. 前言 使用梯度下降算法通过下一个token预测任务预训练大语言模型GPTModel&#xff0c;前向传播流程每次会输入一个batch的长度均为context_len的训练样本&#xff0c;执行 batch_size context_len \text{batch\_size}\times\text{context\_len} batch_sizecontext_len次下…

QWQ大模型评测榜单

评测榜单说明 在数学推理基准AIME24上&#xff0c;QwQ-32B达到了79.5分&#xff0c;几乎与DeepSeek-R1-617B的79.8分持平&#xff0c;远超OpenAI o1-mini的63.6分&#xff0c;及相同尺寸的R1蒸馏模型。 在编程能力方面&#xff0c;QwQ-32B 在LiveCodeBench上获得了63.4分&…