HBase-快照性能

时间:2019-07-19 09:22:52

标签: performance hbase snapshot

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

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

之外,我找不到太多参考资料

1 个答案:

答案 0 :(得分:1)

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

  

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

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

  

...(如果)基本快照已存在100天,则意味着(数据已过时)

是的,这是正确的。快照将仅看到创建时已存在的HFile。