【问题标题】:Is a row automatically deleted if all the values are garbage-collected?如果所有值都被垃圾收集,是否会自动删除一行?
【发布时间】:2019-02-10 13:27:27
【问题描述】:

假设有一行包含一个列族和一个列。该列族具有 gc 策略,并且该列中的所有值都刚刚过期。

那么,那一行会发生什么?垃圾收集器会删除该行吗?或者,它是否仍然存在并且可以访问?

我检查了文档,但只发现来自 https://cloud.google.com/bigtable/docs/overview#empty-cells 的一些模糊评论

Cloud Bigtable 表中的空单元格不占用任何空间。每一行本质上是键/值条目的集合,其中键是列族、列限定符和时间戳的组合。如果一行不包含特定键的值,则键/值条目根本不存在。

在我的情况下,根据上述文本,该集合将为空。然后,我的问题是空集合是否仍然存在。

理想情况下,我希望自动删除一个空行,以防止表中有太多空行。如果一个空行没有被自动删除,除了编写一个扫描和删除这些行的程序之外,有没有什么办法可以自动删除?

【问题讨论】:

    标签: bigtable google-cloud-bigtable


    【解决方案1】:

    如果所有单元格都为一个行键被垃圾回收,那么该行确实被删除了。请注意garbage collection is asynchronous,可能需要长达一周的时间才能完全删除数据。

    【讨论】:

    • 如果不同的列族有不同的 gc 策略(就天数而言),那么当最后一个列族被垃圾回收时,该行是否会被删除?
    • 正确。当一行的所有单元格被完全删除(通过垃圾收集或删除)时,该行将被完全删除
    猜你喜欢
    • 1970-01-01
    • 2013-12-07
    • 2020-02-11
    • 1970-01-01
    • 2020-01-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多