Amazon DynamoDB TTL:Time To Live: cómo funciona?

Cuando Time To Live está habilitado en una tabla, un trabajo en segundo plano comprueba el atributo Amazon DynamoDB TTL de los elementos para ver si están caducados.

Amazon DynamoDB TTL compara la hora actual en formato de tiempo de época con el tiempo almacenado en el atributo Tiempo de vida de un artículo. Si el valor de tiempo de época almacenado en el atributo es menor que la hora actual, el elemento se marca como caducado y posteriormente eliminado.

Nota

El formato de tiempo de época es el número de segundos transcurridos desde las 12:00:00 a. M. Del 1 de enero de 1970 UTC.

DynamoDB elimina los elementos caducados según el mejor esfuerzo para garantizar la disponibilidad del rendimiento para otras operaciones de datos.

DynamoDB típicamente elimina los artículos vencidos dentro de las 48 horas de su vencimiento.

La duración exacta dentro de la cual un elemento se elimina realmente después de la caducidad es específico para la naturaleza de la carga de trabajo y el tamaño de la tabla. Los elementos que han expirado y no se han eliminado seguirán apareciendo en lecturas, consultas y escaneos.

A medida que se eliminan los elementos, se eliminan de cualquier índice secundario local e índice secundario global de inmediato de la misma manera eventualmente consistente que una operación de eliminación estándar.

Por ejemplo, considere una tabla llamada SessionData que rastrea el historial de la sesión de los usuarios.

Cada elemento en SessionData se identifica mediante una clave de partición (UserName) y una clave de clasificación (SessionId). Los atributos adicionales como UserName, SessionId, CreationTime y ExpirationTime siguen la información de la sesión.

El siguiente diagrama muestra cómo se organizarían los elementos en la tabla.

El atributo ExpirationTime se establece como el atributo Time To Live (Amazon DynamoDB TTL). (No se muestran todos los atributos):

 

SessionData

UserName SessionId CreationTime ExpirationTime (TTL) SessionInfo
user1 74686572652773 1461931200 1461938400 {JSON Document}
user2 6e6f7468696e67 1461920400 1461927600 {JSON Document}
user3 746f2073656520 1461922200 1461929400 {JSON Document}
user4 68657265212121 1461925380 1461932580 {JSON Document}
user5 6e6572642e2e2e 1461920400 1461927600 {JSON Document}

En este ejemplo, cada elemento tiene un valor de atributo ExpirationTime establecido cuando se crea. Considere el primer registro:

SessionData

UserName SessionId CreationTime ExpirationTime (TTL) SessionInfo
user1 74686572652773 1461931200 1461938400 {JSON Document}

 

En este ejemplo, el elemento CreationTime está configurado para el viernes 29 de abril a las 12:00 p. UTC 2016 y el tiempo de expiración se establece 2 horas más tarde para el viernes 29 de abril a las 2:00 p. M. UTC 2016.

El ítem caducará cuando la hora actual, en formato epoch, es mayor que el tiempo en el atributo ExpirationTime. En este caso, el elemento con la clave {Username: user1, SessionId: 74686572652773} caducará después de las 2:00 PM (1461938400).

Nota

Debido a la posible demora entre el vencimiento y el tiempo de eliminación, es posible que obtenga elementos caducados al consultar los artículos.

Si no necesita ver los elementos vencidos cuando emite una solicitud de lectura, debe filtrar los elementos caducados utilizando el atributo de caducidad que ha definido

Puede hacerlo utilizando una expresión de filtro que devuelve solo los elementos en los que el valor de caducidad de Time To Live es mayor que la hora actual en formato epoch.

 

Para obtener más información, vea Filtrar expresiones para consultas y expresiones de filtro para escanear.

Author: sitio big data

Loading Facebook Comments ...

Leave a Reply

Your email address will not be published. Required fields are marked *