【问题标题】:HBase - snapshots performanceHBase - 快照性能
【发布时间】:2023-03-24 06:24:01
【问题描述】:

我正在研究一个用例,我们需要在 HBase 中为一个表拍摄多个快照 (80-100),我们称之为“数据”。我们希望能够在任何给定时间从这些快照中读取数据。所以我们需要克隆快照并将其用作新表(例如“data_v01”、“data_v02”等。我无法弄清楚是否有多个快照会影响原始“数据”表的性能。

根据我阅读 HBase 文档的理解,HBase 不会在拍摄快照时复制数据,也不会在从快照创建(“克隆”)新表时复制数据。对我来说,这似乎是 HBase 创建了一组基本的 HFile,然后以类似于 WAL 的形式跟踪更改。如果这是真的,并且基本快照是 100 天前的,这意味着更改会很多。我的理解正确吗?除了https://hbase.apache.org/book.html#ops.snapshots

【问题讨论】:

    标签: performance hbase snapshot


    【解决方案1】:

    您可能已经知道,HBase 一致性由HFileWAL 文件的集合提供。快照只是快照时表中所有 HFile 的列表(无论快照是否强制 WAL 和 memstore 刷新)。这就是为什么快照创建起来非常快速且便宜 - 它所做的只是保存一个列表文件的路径。这意味着在压缩的情况下文件不得删除,而是移动到存档文件夹,直到没有快照引用它们(非常类似于 GC)。在某些情况下,这可能会导致存储开销。

    我无法弄清楚拥有多个快照是否会影响原始“数据”表的性能。

    从快照创建表与原始表无关。两个表可能共享一些 HFile 的事实没有任何意义,因为 HFile 是不可变的。

    ...(如果)基本快照已有 100 天的历史,这意味着(数据已过时)

    是的,这是正确的。快照只会看到创建时存在的 HFile。

    【讨论】:

      猜你喜欢
      • 2015-08-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-10-31
      相关资源
      最近更新 更多