Ich weiß, dass Cassandra stables, row-keys, tombstone und alles zusammenführt.
Aber ich bin wirklich interessiert zu wissen, wie es Verdichtung durchführt?
Da stables unveränderlich sind, kopiert es alle relevanten Daten in eine neue Datei? und beim Schreiben in diese neue Datei werden die mit dem Grabstein markierten Daten verworfen.
Ich weiß, was Verdichtung macht, will aber wissen, wie es dazu kommt (T)
Gibt zwei Möglichkeiten zum Ausführen der Komprimierung:
A- Nebenverdichtung. Automatisch ausgeführt. B- Hauptverdichtung. Führen Sie Mannualy.
In beiden Fällen werden x Dateien (pro CF) genommen und verarbeitet. Markieren Sie in diesem Prozess die Zeilen mit abgelaufenem TTL als Tombstones und löschen Sie die vorhandenen Tombstones. Mit diesem erzeugt eine neue Datei. Die in dieser Komprimierung erzeugten Grabsteine werden bei der nächsten Verdichtung gelöscht (wenn die Gnadenfrist gc_grace ausgegeben wird).
Der Unterschied zwischen A und B ist die Anzahl der aufgenommenen Dateien und der endgültigen Datei. A nimmt ein paar ähnliche Dateien (ähnliche Größe) und erzeugt eine neue Datei. B nimmt ALLE Dateien und erzeugt nur eine große Datei.
Tags und Links immutability cassandra tombstone stream-compaction