InfluxDB 0.9.3 发布,包含压缩、改进写入吞吐量和从 0.8 的迁移

导航至

今天,我们发布了InfluxDB v0.9.3版本。这个版本在写入吞吐量、压缩、从0.8的迁移以及许多错误修复和小功能方面有显著的改进。还有一些破坏性变化也包含在内,所以在升级之前请仔细阅读变更日志。这次发布的努力使得峰值写入吞吐量提高了2倍以上,磁盘空间减少了50%以上。

写入性能和压缩

写入性能得到了显著提升。在我的新Macbook Pro上进行测试,写入100M数据点,包含100k个唯一序列(每个序列1,000个点),以5,000个点每批次的请求发送到HTTP端点,从0.9.2版本的以下数据可以看出

最差响应时间

3.75s
3.71s
3.71s

平均响应时间为525ms,测试运行了1,052秒,平均插入率约为95k点每秒。0.9.2版本中写入的最坏情况响应时间导致了许多问题,包括写入超时和连续查询失败。我们决定将0.9.3版本优先用于解决这些问题,通过从BoltDB中提取写入前日志。

0.9.3版本的这些数据

最差响应时间

889 ms
687 ms
644 ms

平均响应时间为205ms,测试运行了428秒,平均插入率约为233k点每秒。我们还在EC2上的i2.xlarge实例上进行了测试,以超过500k点每秒的速度写入超过2.5亿点。

使用InfluxDB Stress工具进行测试。我们将随着时间的推移扩大测试范围,以不同的数据形状和模拟写入负载时的查询进行压力测试。

虽然这些数字看起来不错,但应注意的是,这仅适用于爆发性能。在这个水平上的持续写入负载最终会超过服务器,因为BoltDB索引无法跟上。

我们还在这个版本中添加了压缩。之前的100M数据点测试中,0.9.2版本的BoltDB磁盘大小为7GB,而0.9.3版本的磁盘大小为4GB。由于BoltDB的工作方式,1GB之后的增量总是以1GB为步长,因此7GB和4GB并不完全准确反映其大小。在磁盘大小保持不变的情况下,可以写入更多数据。

我们将随着时间的推移改进压缩和写入性能。这只是漫长旅程的第一步。

从之前的0.9版本升级

如果您是从之前的0.9版本升级的,可能需要更新您的配置文件。具体来说,是UDP和Graphite输入部分。我们还更改了行协议,因此如果您正在写入整数,您需要更新客户端以及InfluxDB的此升级。

您将不会立即看到写入性能和存储的增益。0.9.3将同时运行旧的和新的存储引擎。升级后,将使用旧存储引擎,直到创建下一个时间块的新碎片。这可能需要7天时间。在此期间,您将使用0.9.2使用的相同旧存储引擎。

请谨慎进行此升级。底层存储引擎发生了重大变化,因此最好备份您的数据并谨慎操作。

从0.8升级

本次发布,我们提供了从0.8到0.9.3的迁移路径。过程是先升级到0.8.9,然后运行导出工具,再运行导入到0.9.3。详细信息请参阅从0.8升级的readme

我应该指出,0.9中缺少一些功能,可能会延迟某些人的升级。具体来说,我们需要添加TOP函数按时间降序排序,并启用连续查询以对多个度量进行下采样

我们在0.9.4周期开始这三个功能的工作。它们应该在9月10日的发布或10月1日的0.9.5发布中提供。

聚类在哪里?

一些关于聚类的工 作被纳入了本次发布,但尚未准备好。现在您应该能够启动包含不同复制因子的3个以上节点的大型集群。然而,并非所有查询都已被配置为分布式。我们还在移动碎片数据以及在集群中替换服务器时缺少一些功能。我们将在0.9.4周期开始这项工作。聚类很快将进入可全面测试的状态。然而,反熵功能将在0.9.5发布周期开始,这是在长期停机场景中进行自动恢复的必要功能。

结论

您可以在此处下载InfluxDB或注册一个免费试用云中的托管InfluxDB服务器

我们还提供InfluxDB的专业咨询服务,包括帮助、功能请求、性能和高级配置。通过[email protected]联系我们,了解我们如何帮助加速您的项目。