InfluxDB 0.9.3 发布,带来压缩、改进的写入吞吐量以及从 0.8 的迁移

导航至

今天我们发布 InfluxDB v0.9.3。此版本在写入吞吐量、压缩、从 0.8 的迁移以及许多错误修复和较小功能方面进行了重大改进。也有一些重大更改,因此请在升级前仔细阅读 CHANGELOG。此版本的开发工作使峰值写入吞吐量提高了 2 倍以上,磁盘空间减少了 50% 以上。

写入性能和压缩

写入性能已得到显著提高。在我的新 Macbook Pro 上运行测试,跨 10 万个唯一序列(每个序列 1,000 个点)写入 1 亿个数据点,以每请求 5,000 个点的批次发布到 HTTP 端点,显示 0.9.2 版本的以下数字

最差响应时间

3.75s
3.71s
3.71s

平均响应时间为 525 毫秒,测试运行了 1,052 秒,平均插入速率约为每秒 95k 点。0.9.2 版本中写入的最坏情况响应时间给人们带来了许多问题,包括写入超时和持续查询失败。我们决定 0.9.3 版本应优先解决这些问题,方法是将预写日志从 BoltDB 中分离出来。

0.9.3 版本具有以下数字

最差响应时间

889 ms
687 ms
644 ms

平均响应时间为 205 毫秒,测试运行了 428 秒,平均插入速率约为每秒 233k 点。我们还在 EC2 上的 i2.xlarge 实例上运行了此测试,看到每秒写入超过 50 万点,总共写入超过 2.5 亿点。

InfluxDB 压力测试工具用于运行测试。随着时间的推移,我们将扩展此工具,以压力测试具有不同数据形状的场景,并在模拟写入负载时运行查询。

虽然这些数字开始看起来不错,但我应该注意到这仅适用于突发性能。在此级别持续的写入负载最终将使服务器不堪重负,因为 BoltDB 索引将无法跟上。

我们还在这个版本中添加了压缩。之前包含 1 亿个数据点的测试,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] 联系我们,了解更多关于我们如何帮助加速您的项目的信息。