Pinterest大幅提升时序数据库Goku存储效率和资源使用

12次阅读

作者 | Mohit Palriwal

译者 | 明知山

策划 | Tina

Pinterest 对其 Goku 时序数据库进行了现代化改造和增强。最新的更新着重优化存储效率和资源使用,同时确保不牺牲服务质量。

Pinterest 开发的 Goku 是一个内部数据库引擎,旨在解决 OpenTSDB 中的特定限制。你可以通过这篇文章详细了解 Pinterest 开发 Goku 的动机。

Pinterest大幅提升时序数据库Goku存储效率和资源使用

图 1:ns1、ns2 和 ns3 三个命名空间的示例配置。

Pinterest大幅提升时序数据库Goku存储效率和资源使用

图 2:带有命名空间的 Goku 架构

一系列架构优化进一步降低了基础设施成本。通过改进指标名称的索引,每个主机的内存使用量从 12GB 降低到了 3GB。此外,Goku Compactor 中引入的字典编码技术有效解决了内存不足的问题,可以使用成本更低的硬件。

Pinterest大幅提升时序数据库Goku存储效率和资源使用

图 3:存储某个指标的主机的内存消耗。

Pinterest大幅提升时序数据库Goku存储效率和资源使用

图 4:在使用字典编码后,每个主机进行层压缩的内存使用量下降。

Pinterest 还优化了内存分配策略。通过解决内部碎片化和内存过度分配问题,显著节省了内存的使用。例如,对 folly::IOBuf 结构的优化使得每台主机的内存使用量减少了 8 到 11GB。

Meta 在其 Gorilla 时序数据库中也采用了诸如增量增量时间戳和 XOR 编码浮点值等压缩技术,成功将存储减少至原来的十分之一,并显著提高了查询效率。更多细节可以在他们的研究论文中找到。

Pinterest 所做的努力是整个科技行业优化时序数据管理系统趋势的一部分。类似的还有 Apple FiloDB、Netflix Atlas、Uber M3、Meta Gorilla 和 Salesforce Argus。这些项目,像 Goku 一样,专注于高效的时序数据管理,有些已在 GitHub 等平台上作为开源。它们代表了向更高伸缩性和成本效益的数据基础设施的集体转变。

这些增强使得 Pinterest 将时间序列存储量减少了 40% ,并将成本下降了 70%。此外,这些改进还使得 Pinterest 能够在不增加容量的情况下适应 30% 的有机存储增长。关于可观测性和效率的相关讨论可以在这篇 Reddit 帖子中找到,行业专业人士在其中分享了他们的见解和基准。例如,Reddit 用户 serverlessmom 表示:

在许多企业中,可观测性成本仅次于实际的基础设施 / 托管成本,排在第二位。企业为了深入了解其软件的运行情况,支付了相当高的费用。

查看英文原文

https://www.infoq.com/news/2024/11/time-series-db-pinterest/

Kubernetes 是一条“死胡同”!?6 年挣扎后,Gitpod 另辟蹊径打造全新开发环境

Linux 版微信正式官宣,居然选了这个 90 年代的“过气”框架

全球超万亿使用量的热门数据库,首次被大模型揪出了严重漏洞

数据碎片化、基础设施落后,看金奖团队如何为农业生产转型提供新解法

会议推荐

就在 12 月 13 日 -14 日,AICon 将汇聚 70+ 位 AI 及技术领域的专家,深入探讨大模型与推理、AI Agent、多模态、具身智能等前沿话题。此外,还有丰富的圆桌论坛、以及展区活动,满足你对大模型实践的好奇与想象。现在正值 8 折倒计时,名额有限,快扫码咨询了解详情,别错过这次绝佳的学习与交流机会!返回搜狐,查看更多

责任编辑:

正文完
 0
网站地图