5

当发布Delete到 hbase 时,我知道它不会立即删除数据。但是什么时候删除数据,我的意思是,物理上?

4

1 回答 1

17

当您向 HBase 写入内容时,它会存储在 memstore (RAM) 中,然后再写入磁盘。这些磁盘写入通常是不可变的,除非压缩。

在 hbase 的主要压缩期间会处理删除 - 这些大约每 24 小时运行一次,并且可以通过 API 或 shell 触发。主要压缩过程删除标记 - 次要压缩不会。

当您发出正常删除时,它会产生一个删除(墓碑)标记 - 这些删除标记和它们所代表的数据在压缩期间被删除(在压缩后的合并文件中不存在)。

此外,如果您删除数据并放入更多数据但时间戳早于墓碑时间戳(& 符合早期删除的标准),则删除/墓碑标记可能会掩盖进一步的获取(仅在主要压缩后修复已运行)&因此在这种情况下,直到主要压缩之后,您才会收到插入的值。

希望能帮助到你

于 2012-07-25T20:47:52.513 回答