2024年11月6日消息,Pinterest 对其 Goku 时序数据库进行了现代化改造和增强。最近的更新侧重于在不影响服务质量的情况下优化存储和资源使用。
Pinterest 构建 Goku,一个内部数据库引擎,解决 OpenTSDB 的特定限制。Pinterest 在本文中详细解释了激励Pinterest的动机。
在最近的博客文章中,Goku 团队介绍了两个功能,度量命名空间和提供写入度量度,帮助他们减少存储在 Goku 上的数据。这些创新已经显著减少数据存储需求。度命名空间组织度配置,允许有效数据管理。同时,系统识别度帮助 Observability 团队阻止不必要的数据,减少存储时间序列 37%。

图 :名为 ns1、ns2 和 ns3 的三个命名空间的示例配置
Pinterest 也专注于优化内存分配。通过解决内部碎片和过度分配内存,团队实现显著内存节省。例如,folly::IOBuf 结构的变化减少每主机内存使用 8-11 GB。

图 :存储指标名称的主机级内存消耗

图 :字典编码后,每个执行大量层压缩的主机的内存使用量下
降
时间序列压缩算法对于高效存储和处理大量时间戳数据至关重要。这些算法通过识别模式和冗余,允许更快的查询处理和减少存储成本。使用这些算法,如 delta 编码,delta-of-delta 编码和 XOR 基于压缩,实现显著存储效率。例如,TimescaleDB,一个开源时间序列数据库,使用这些算法实现超过 90% 存储效率,转化为成本节省和改进查询性能。
Meta,在其 Gorilla 时间序列数据库,也利用压缩技术,如 delta-of-delta 时间戳和 XOR’d 浮点值,减少存储足迹 10x,显著增强查询效率。更多细节可以在他们的研究论文中找到。
Pinterest 的努力是技术行业优化时间序列数据管理系统的更广泛趋势的一部分。类似的倡议包括 Apple FiloDB,Netflix Atlas,Uber M3,Meta Gorilla 和 Salesforce Argus。这些项目,像 Goku,专注于高效时间序列数据管理,一些作为开源解决方案在 GitHub 等平台上。他们代表向更可扩展和成本效益数据基础设施的集体移动。
这些增强使 Pinterest 实现时间序列存储 40% 减少和成本 70% 下降。改进还允许 Pinterest 容纳有机存储增长 3% 没有额外容量。关于 Observability 支出和效率的相关讨论可以在 Reddit 线程中找到,行业专业人士分享见解和基准。例如,serverlessmom 在 Reddit 上说:
“为了设定一个基准:在许多企业中,可观测性(Observability)的成本仅次于基础设施/托管的实际成本。人们为了了解他们的软件在做什么,正在支付大量的费用。”
作者:Mohit Palriwal,Netflix 高级软件工程师,Netflix Observability 团队的关键成员。Netflix Atlas 项目背后的团队的一部分,一个开源维度时间序列数据库设计处理高规模要求。加入 Netflix 之前,Mohit 是 Salesforce 的首席软件工程师,他合作在 AWS 上构建 Observability 云。
文章来源:InfoQ
文章作者:Mohit Palriwal( Netflix 的高级软件工程师)




