Comment la gestion des mises à jour et des clés de cluster par Cassandra interagit-elle?Est-ce que les insertions Cassandra différant uniquement dans une clé de cluster génèrent des pierres tombales?
- Cassandra met à jour jamais vraiment dossiers une fois écrit, il marque l'ancienne version comme supprimé à l'aide d'une pierre tombale et enregistre à la fois l'ancienne et la nouvelle version, jusqu'à ce que l'ancienne version est finalement supprimée par un processus d'entretien: une forme de collecte des ordures.
- Les clés de cluster sont implémentées en utilisant un peu de magie qui enregistre les données dans un enregistrement "réel" qui a une seule clé de partition.
Il me semble que ces deux fonctionnalités pourraient interagir mal, provoquant la génération de déchets excessifs.
Considérez ce schéma:
CREATE TABLE t (
p int,
c int,
d string,
PRIMARY KEY ((p), c),
);
Après l'exécution des insertions suivantes:
INSERT INTO t (p, c, d) VALUE (1, 1, "text-1");
INSERT INTO t (p, c, d) VALUE (1, 2, "text-2");
est là tenant à la fois la (1, 1, "text-1")
et (1, 2, "text-2")
un record de pierre tombale marquée contenant les données (1, 1, "text-1")
et un nouveau record Les données? Autrement dit, la deuxième insertion a-t-elle été implémentée comme une mise à jour de l'enregistrement "réel" qui a une clé de partition (p
) de 1?
Donc, pas une "pierre tombale" en tant que telle, mais il en résulte toujours une nouvelle et ancienne version de l'enregistrement "réel" avec 'p' = 1? – Raedwald