gpt4 book ai didi

Cassandra ttl 连续

转载 作者:行者123 更新时间:2023-12-03 21:55:28 28 4
gpt4 key购买 nike

我知道 Cassandra 中的列有 TTL。但是也可以在一行上设置 TTL 吗?在每列上设置 TTL 并不能解决我的问题,如下面的用例所示:

在某些时候,一个进程想要删除一个带有 TTL 的完整行(假设行“A”的 TTL 为 1 周)。它可以通过替换具有相同内容但 TTL 为 1 周的所有现有列来实现此目的。

但是可能有另一个进程在“A”行上同时运行,它插入新列或替换没有 TTL 的现有列,因为该进程不知道要删除该行(它同时运行!)。因此,1 周后,除了这些新插入的列之外,“A”行的所有列都将因 TTL 被删除。我也希望它们被删除。

那么这个用例是否有或将有 Cassandra 支持,还是我必须自己实现一些东西?

亲切的问候
斯特凡

最佳答案

目前无法在 Cassandra 中对一行设置 TTL。 TTL 设计用于在写入时已知其生命周期时删除单个列。

您可以通过延迟过程来实现您想要的 - 而不是想要插入 1 周的 TTL,而是在一周后运行它并删除该行。行删除具有以下语义:之前插入的任何列都将被删除,但之后插入的列不会被删除。

如果将来插入的列仍然需要删除,您可以在将来插入带有时间戳的行删除以确保这一点,但要非常小心:如果您以后想插入到该行中,您不能,列只会写入该行时消失(直到墓碑被垃圾收集)。

关于Cassandra ttl 连续,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16544051/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com