A expiração do documento, às vezes chamada de "tempo de vida", ou TTL, tem sido uma característica do Servidor Couchbase há algum tempo. O novo lançamento da versão 1.3 adiciona esse recurso a Couchbase Mobile. Vamos explorar um pouco.

Documentos e revisões

O Couchbase armazena dados na forma de JSON documentos. Mais precisamente, o Couchbase armazena revisões de documentos. Os detalhes estão fora do escopo do que quero enfocar aqui, mas é importante entender as revisões. Você pode ler mais sobre elas em este guia.

Exclusão versus eliminação

Em seu banco de dados local, você realmente deseja armazenar apenas o que é necessário. Vamos supor que, por algum motivo, um determinado documento não seja mais relevante. Digamos, por exemplo, que uma transação tenha sido concluída e o usuário não queira mais manter os detalhes.

Você pode excluir o documento. Isso tem dois efeitos. Primeiro, o documento não desaparece totalmente localmente. O Couchbase Lite mantém algumas informações de revisão e substitui o documento por uma entrada de "lápide". Segundo, o fato de o documento ter sido excluído é propagado para todas as réplicas.

Portanto, a exclusão de um documento não libera totalmente o espaço em seu dispositivo. E talvez você não queira excluir o documento em outras cópias do banco de dados. No nosso exemplo, você pode imaginar que o usuário não quer os detalhes da transação no dispositivo no momento, mas pode querer recuperá-los novamente mais tarde.

A limpeza de um documento faz algo bem diferente. A limpeza de um documento remove todos os rastros dele, mas somente no banco de dados local. Se estiver sincronizando seu banco de dados, pode ser útil pensar em um documento eliminado como um documento que nunca foi replicado localmente para começar. O documento ainda existe remotamente. Na verdade, se a versão remota for alterada, o documento poderá aparecer no feed de replicação, de modo que você poderá acabar com uma cópia local novamente.

Isso se encaixa perfeitamente em nosso exemplo. Um usuário não se importa mais com os detalhes de uma transação, portanto, os registros são removidos localmente, liberando espaço. Se algo mudar nos detalhes da transação, um aplicativo poderá ver essas alterações transmitidas em uma replicação e alertar o usuário.

Expiração = purga automatizada

Agora, voltemos à expiração do documento. Eu lhe dei essa outra informação para contextualizar a expiração. Quando um documento expira, ele é automaticamente tratado como se tivesse sido eliminado.

Para que um documento expire, você define uma data de expiração para ele. Aqui está um trecho de código que mostra como fazer isso em Java.

Você pode ver que está definindo um tempo absoluto, não um relativo. Depois que esse tempo passa, o documento se comporta como se tivesse sido eliminado.

Digo que ele se comporta como se tivesse sido eliminado. Pode levar um pouco de tempo para processar as coisas nos bastidores. O documento será realmente eliminado, mas isso pode ser adiado brevemente por vários motivos. Mas não espere uma precisão de milissegundos.

Pós-escrito

Confira mais recursos em nosso portal do desenvolvedor e nos siga no Twitter @CouchbaseDev.

Você pode postar perguntas em nosso fóruns. E participamos ativamente de Estouro de pilha.

Você pode me seguir pessoalmente em @HodGreeley

Autor

Postado por Hod Greeley, Advogado do desenvolvedor, Couchbase

Hod Greeley é um defensor dos desenvolvedores da Couchbase e mora no Vale do Silício. Ele tem mais de duas décadas de experiência como engenheiro de software e gerente de engenharia. Trabalhou em diversas áreas de software, incluindo física e química computacional, segurança de computadores e redes, finanças e dispositivos móveis. Antes de ingressar na Couchbase em 2016, Hod liderou as relações com desenvolvedores para dispositivos móveis na Samsung. Hod é Ph.D. em física química pela Universidade de Columbia.

Deixar uma resposta