miércoles, 1 de mayo de 2019

Tombstones en Cassandra


En el mundo relacional, podría estar acostumbrado a la idea de una "eliminación suave o eliminación logica". En lugar de ejecutar realmente una instrucción de eliminación de SQL, la aplicación emitirá una instrucción de actualización que cambia un valor en una columna llamada "eliminado", a veces se hace esto por auditoría o mantener registros historico.

Este es un concepto similar en Cassandra llamado Tombstones (que no se como traducirlo). Así es como funcionan todas las eliminaciones. Cuando ejecuta una operación de eliminación, los datos no se eliminan inmediatamente. En su lugar, se trata como una operación de actualización que coloca una marca de eliminado.Tombstones es un marcador de eliminación que se requiere para suprimir datos antiguos en SSTables hasta que se pueda ejecutar la compactación.

Hay una configuración relacionada llamada Garbage Collection Grace Seconds. Esta es la cantidad de tiempo que el servidor esperará para recolectar un registro marcado como eliminado. De forma predeterminada, se establece en 864,000 segundos, el equivalente a 10 días. Cassandra hace un seguimiento del tiempo de marcado, y una vez que esta es más antigua que GCGraceSeconds, será recogida por el recolector de basura. El propósito de este retraso es dar a un nodo que no esté disponible el tiempo de recuperación; Si un nodo está inactivo por más tiempo que este valor, entonces se trata como fallido y reemplazado.


1 comentario: