Pinterest 弃用 HBase


Pinterest 工程团队的博客文章“Pinterest 弃用 HBase”概述了 Pinterest 弃用分布式 NoSQL 数据库 Apache HBase 并迁移到开源分布式 SQL 数据库 TiDB 的历程。

为何弃用 HBase

  • 维护成本高:由于历史原因,我们的 HBase 版本落后上游五年,缺少关键的错误修复和改进。
  • 缺少功能
  • 系统复杂度高:我们在 HBase 和Manas realtime之上构建了[url=https://medium.com/pinterest-engineering/building-scalable-near-real-time-indexing-on-hbase-7b5eeb411888]Ixia ,以支持 HBase 中的全局二级索引。我们还在[/url]Apache Phoenix Omid之上构建了 Sparrow,以支持 HBase 上的分布式事务。虽然当时我们没有更好的替代方案来满足业务需求,但这些系统产生了巨大的开发成本并增加了维护负担。
  • 基础设施成本高:生产 HBase 集群通常使用具有六个数据副本的主备用设置以实现快速灾难恢复,但在我们的规模下,这会带来极高的基础设施成本。将 HBase 迁移到其他每个唯一数据副本成本较低的数据存储将带来巨大的基础设施节省机会。例如,通过谨慎的复制和放置机制,TiDB、Rockstore 或 MySQL 可以使用三个副本,而不会在可用性 SLA 上做出太大牺牲。
  • 行业使用和社区支持的减弱:过去几年,我们看到行业内 HBase 的使用率和社区活动似乎稳步下降,因为许多同行公司都在寻找更好的替代方案来替代其生产环境中的 HBase。这反过来又导致人才库萎缩、进入门槛提高,新工程师成为 HBase 主题专家的动力降低。

为了满足其余的 HBase 使用情况,我们需要一种新技术,它既能提供像 NoSQL 数据库一样的出色可扩展性,又能支持像传统 RDBMS 一样强大的查询功能和 ACID 语义。我们最终选择了TiDB,这是一种满足我们大部分要求的分布式 NewSQL 数据库。


关键点

  • Pinterest 于 2012 年采用 HBase 来存储和提供其核心产品 Pins 的元数据。然而,随着 Pinterest 的规模和需求的增长,HBase 在性能、可操作性和可维护性等方面面临挑战。
  • 在评估了各种替代方案后,Pinterest 选择了 PingCAP 开发的云原生分布式 SQL 数据库 TiDB 作为 HBase 的替代品。
  • 从 HBase 迁移到 TiDB 涉及多个阶段,包括数据迁移、应用程序更改和基础架构更新。Pinterest 开发了工具和流程以确保顺利过渡。
  • TiDB 的云原生架构、水平可扩展性和 SQL 接口为 Pinterest 提供了比 HBase 更好的性能、更简单的维护和更大的灵活性。
  • 成功迁移到 TiDB 使 Pinterest 能够更好地支持其不断增长的业务需求,并为其用户提供更可靠、更高效的服务。

这篇博文详细介绍了 Pinterest 的决策过程、面临的挑战以及采用 TiDB 替代 HBase 所实现的好处。它强调了选择正确的技术堆栈来支持公司不断变化的需求的重要性,以及 TiDB 等开源解决方案在实现可扩展性和创新方面的价值。