删除cassandra中指定的ttl

时间:2016-08-06 21:34:07

标签: cassandra

我读过有关更新ttl的内容,并且只能通过更新行来实现。 但我想删除ttl。我担心这是同一个过程,但我没有找到任何有关它的信息。有没有办法在不更新所有行的情况下删除ttl?

我所做的是在用户注册时使用ttl保存用户信息。因此,如果用户未验证他/她的邮件地址,则该条目将自动删除。

1 个答案:

答案 0 :(得分:1)

以下是官方文档here的摘录。

  

如果要更改过期数据的TTL,则必须重新插入   使用新TTL的数据。在Cassandra中,数据的插入是   实际上是一个插入或更新操作,取决于是否   存在以前版本的数据。

     

TTL数据的精度为1秒,在服务器上计算。   因此,一个非常小的TTL可能没有多大意义。   而且,服务器上的时钟应该同步;除此以外   由于到期时间的原因,可以观察到精度降低   在接收初始插入的主要主机上计算但是   然后由群集中的其他主机解释。

这在实践中有点不愉快,但是构建一个非常简单的迁移工具相对容易,你只需遍历整个表并用另一个表中的新TTL重新插入所有记录。

如果计算/存储方面你可以负担得起这个,那么将记录存储两次可能是一个更有说服力的想法,一次使用TTL,一次不使用,只需绕过限制:你不能取消或更改TTL卡桑德拉。