宣布 InfluxDB 0.10 GA 版本,支持每秒数百万次写入和 98% 的压缩率提升
作者:Paul Dix / 产品
2016年2月4日
导航至
InfluxData 团队激动地宣布 InfluxDB 0.10 版本的稳定版!这是一个重要的发布,因为它现在使用了 TSM 存储引擎。稳定性、性能和压缩的改进非常巨大。这是 InfluxDB 迄今为止最大、最重要的发布,因此现在是考虑迁移策略的时候了。继续阅读以获取所有详细信息。
性能
我们在 TSM 存储引擎上所做的改进显著提高了写入性能。除了整体吞吐量外,我们还降低了 IOPS 负载超过一个数量级。在一个具有 4 个核心和 16GB RAM 的系统上测试中,我们在 5,000 个点的批次中写了 100B 的数据点。在整个测试过程中,持续的写入负载超过 350,000 点每秒,IOPS 大约稳定在 750。
这使得在具有旋转磁盘的硬件上运行 TSM 和 InfluxDB 在大量写入负载下成为可能。在此阶段,写入性能主要受 CPU 限制。具有更多 CPU 的服务器将能够支持更高的写入吞吐量。
此版本的 InfluxDB 的性能现在超过了 0.9.x 版本的任何内容,超过 70 倍。此版本还显著超过了任何以前的 InfluxDB 发布的写入性能,包括 0.8.x 系列版本。
InfluxDB 写入吞吐量比较(越大越好)
压缩
TSM 存储引擎具有针对时序数据特定的压缩功能。对于每种数据类型,我们使用不同的压缩技术。这很大程度上取决于您数据的形式,但是,在每秒精度的规则时间戳和 float64 下,我们已经看到压缩将每个点减少到大约 2.2 字节。
这种压缩比 0.9.x 时的压缩提高了 98%,比 0.8 提供的更好。如果您正在运行测试,您会看到随着压缩过程在后台运行,压缩得到改善。这是在 InfluxDB 运行时自动发生的。
在此版本中,InfluxDB 为时序解决方案提供了一些最好的压缩。
InfluxDB 每点字节比较(越小越好)
稳定性和测试
我们在本次版本中投入了大量精力进行测试和稳定性提升。针对TSM存储引擎,我们已经在各种硬件配置、客户部署和云端环境中连续数月积极进行测试。我们在数据库压缩、写入和查询过程中进行破坏性测试,并重复进行。
在本版本中,我们无法创建数据库损坏的场景。简单来说,这个版本的代码经过了比以往任何代码或版本都要多的测试和老化。请查看以下视频,这是在最近的《旧金山InfluxDB Meetup》中给出的,工程副总裁兼联合创始人Todd Persen将向您介绍测试和基准测试的方法。
从先前版本升级
如何从0.9升级到0.10?
如果您正在从0.9.x版本升级,并且运行的是单服务器,则应进行就地升级。现有分片将继续使用旧存储引擎,而新分片将使用TSM存储引擎。这意味着如果您进行升级,您不会立即看到性能提升。您需要等待新分片创建。
关于0.9分片怎么办?
InfluxDB的未来版本将移除对使用旧存储引擎的分片的支持。我们已经创建了一个迁移工具,可以将旧存储引擎转换为TSM。对于运行本版本来说这不是必需的,但如果您进行转换,将大幅减少旧分片占用的磁盘空间。
关于升级0.9集群怎么办?
如果您正在运行0.9.x的集群设置并想进行升级,您将需要我们的帮助。请在[email protected] 联系我们,安排与我们的解决方案架构师进行咨询。
从0.8升级怎么办?
如果您正在运行0.8.9或更早的版本,现在是时候开始考虑迁移到0.10.0了。如果您遇到任何阻止您迁移的障碍,请告诉我们,我们将优先考虑将这些内容纳入下一个版本。需要帮助制定迁移计划?我们可以帮忙!请在[email protected]联系我们,安排咨询。
集群改进
您接下来的问题可能是“关于集群怎么办?”我们投入了大量精力改进集群实现并启用了一些有用的新配置。我们现在有元节点和数据节点的概念。默认情况下,集群中的所有服务器都将充当两者。然而,现在可以分离它们。
这意味着在非常大的集群或数据节点负载较重的配置中,可以将元节点分离。另一个有用的配置是,两个节点既充当元节点又充当数据节点,而第三个功能较弱的节点只能充当元节点。这与一些允许您使用两个大型服务器和一个“仲裁者”的其他数据库类似。
本版本中,集群的设置方式略有变化。请阅读此指南了解如何设置InfluxDB集群的更多信息。
集群仍然标记为实验性,但我们的测试正在加速,我们发现它变得更加可靠。如果您对使用当前版本在生产环境中运行集群感兴趣,请在[email protected]联系我们,安排咨询如何以最小的风险部署到生产环境中。
接下来是什么?
前往下载页面开始评估新版本。我们还有更多计划,但这个版本标志着InfluxDB持续发展和成熟的重大里程碑。更多时间序列的好东西即将到来!