【问题标题】:Cassandra TTL changed AutomaticallyCassandra TTL 自动更改
【发布时间】:2017-06-08 22:00:39
【问题描述】:

我在 cassandra 中有一个列族,默认 ttl 为 3024000(35 天),压缩策略是 LCS,表结构是这样的

CREATE TABLE xyz (
logdate text,
cookieid text,
count1 int,
count2 int,
count3 int,
PRIMARY KEY (logdate, cookieid)
) WITH CLUSTERING ORDER BY (cookieid ASC)

但是当我检查 35 天数据的 ttl 时,它仍然显示 20 天,我不明白为什么会发生这种情况。有人对此有想法吗?这是因为压实吗?

【问题讨论】:

    标签: cassandra


    【解决方案1】:

    如果您重新插入了同一行,可能会发生这种情况。

    例如

    INSERT INTO XYZ VALUES(100,..........some value) -- lets say inserted 10 days back.
    

    如果没有再次插入该行,则 TTl 可能会显示 25 天,但可能发生的情况是该行被再次插入。

    INSERT INTO XYZ VALUES(100,..........some other value ) -- lets say inserted 5 days back.
    

    TTL 为 30 天。

    每次插入行时都会重置 TTL 值(相同的行键)。

    【讨论】:

    • 是的,没错,但我再也没有插入我的数据
    • 我没有看到其他原因,您的日期列(即分区键),您是如何计算的?
    • 这是从应用程序中计算出来的。应用程序将其设置为等于当前日期
    • @deenbandhu 那时真的不确定。我也尝试了 compation,但在我的情况下它给出了正确的结果。
    • 值的写入时间是多少?
    猜你喜欢
    • 2015-11-29
    • 1970-01-01
    • 2017-08-01
    • 2018-11-27
    • 2017-08-17
    • 1970-01-01
    • 2016-12-09
    • 1970-01-01
    • 2017-05-23
    相关资源
    最近更新 更多