是否真的只在主要压缩期间在Hbase中删除了已删除的键值

时间:2015-05-27 12:41:36

标签: hbase

根据this,hbase仅在主要压缩过程中删除重复或删除的键值。

  

在主要压缩中,删除了已删除的键/值,这个新文件   不包含逻辑删除标记和所有重复的键/值   (替换值操作)被删除。

  1. 主要压缩将所有HFile合并为一个大型HFile,而轻微压缩则选择一些HFiles进行合并。这是正确的理解吗?
  2. 如果主要压缩可以删除重复键,为什么不进行轻微压缩?程序基本上不一样吗?

2 个答案:

答案 0 :(得分:1)

要理解这一点,我们首先要了解添加删除标记(墓碑)的时间,删除时间以及它们的更新如何影响Hbase中的数据。关于Hbase如何决定何时执行次要和主要压缩,有一个特定的算法。请查看this,其中使用指标清楚地说明整个过程。快乐的学习和编码:))

答案 1 :(得分:1)

主要压缩是一种实质上更昂贵且耗时的操作,将其视为非常精细的碎片整理过程。它必须检查每个键值,其类型,列中的最大版本数,生存时间。它还根据配置规则和环境参数执行区域拆分。默认情况下,主要压缩通常会被禁用,并在外部触发。轻微的压缩范围很窄,它选择的文件越少(越小),对延迟的影响就越小。