Cassandra TTL é por coluna

2015, Março 02

Cassandra Time-To-Live (TTL) é descrito na documentação Datastax. Este post do blog brevemente explora-o para demonstrar que TTL é definido por coluna, e não por linha.

começamos por recriar o exemplo dado na documentação. Criamos um espaço-chave, uma tabela, e inserimos alguns dados nela. O valor de TTL é muito menor do que a documentação oficial, como eu não quero esperar 24 horas antes que o TTL se esgote.

Agora que criamos o nosso espaço e a tabela, vamos consultar o TTL:

cqlsh> SELECT TTL (date), TTL (name) from excelsior.clicks; ttl(date) | ttl(name)----------------------- 52 | 52

Insert ou Update para alterar o TTL por coluna

Como demonstrado pelo CQL synatx, TTL é definido por coluna. Para demonstrar isso, agora inserimos os dados novamente, mas excluímos a data.

se então esperarmos 11 segundos, podemos ver que diferentes colunas podem expirar em momentos diferentes.

cqlsh> select * from excelsior.clicks; userid | url | date | name--------------------------------------+-------------------+------+------ 3715e600-2eb0-11e2-81c1-0800200c9a66 | http://apache.org | null | Mary

isto pode ser uma surpresa se você estiver habituado a linhas comportando-se como uma única entidade. Se você quiser atualizar o TTL para uma linha inteira em Cassandra, você precisa inserir ou atualizar a linha inteira novamente com um novo TTL.

Deixe uma resposta

O seu endereço de email não será publicado.