什么时候HBase实际上删除了一行?

时间:2012-07-25 20:45:44

标签: hbase

向hbase发出Delete时,我发现它不会立即删除数据。但是,什么时候删除数据,我的意思是,身体?

1 个答案:

答案 0 :(得分:14)

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

在hbase的主要压缩过程中会删除删除操作 - 这些操作大约每24小时运行一次。可以通过API或shell触发。主要压缩过程删除标记 - 次要压缩不会。

当您发出正常删除时,会导致删除(墓碑)标记 - 这些删除标记和&它们所代表的数据在压缩过程中被移除(压缩后的合并文件中不存在)。

此外,如果您删除数据并放置更多数据但时间戳早于墓碑时间戳(&符合之前删除的条件),则删除/逻辑删除标记可能会掩盖其他内容(仅限于在主要压实运行后修复)&因此,在这种情况下,在重大压实之后,您将不会收到插入值。

希望有所帮助