Wie löse ich eine feststeckende Verdichtung in Apache Cassandra?


14

Ich habe einen Ein-Knoten-Cassandra-Cluster, der sich derzeit in einem größeren Verdichtungsprozess befindet. Nach dem Ausführen eines nodetool compactstartete es die Komprimierung und ich sehe die tmp-sstable-Dateien mit einer Größe von 0 Bytes. Aber das ist alles. Stundenlang kein Fortschritt.

Ich habe den Cassandra-Dienst bereits beendet, aber nach einem Neustart wurde die Komprimierung ohne Fortschritt fortgesetzt. A nodetool compactionstatszeigt 0,00% Fortschritt und eine verbleibende Zeit von sechs Minuten. Aber ich habe schon 24 Stunden gewartet. In der Zwischenzeit habe ich alle Leser und Schreiber angehalten, ohne einen Unterschied zu sehen.

Die Version, die ich benutze, ist 2.1.2. Ich habe es bereits mit OpenJDK 7 und mit Oracle Java 7 versucht, aber kein Unterschied.

In den Protokollen wird kein Hinweis auf OOM oder andere Ausnahmen oder Warnungen angezeigt.

Ich bin mir nicht sicher, ob es hilfreich ist, aber ich wandere derzeit von Cassandra ab, da es nicht meinen Bedürfnissen entspricht. Also lösche ich viele Daten, die migriert wurden. Es gibt viele Zeilen mit mehreren hundert bis zu einigen tausend Spalten. Aber es gibt eine Handvoll Zeilen mit einer Million Spalten. Aufgrund des Migrationsprozesses (Löschvorgangs) sind jetzt viele Grabsteine ​​in ihnen.

Jede Hilfe beim Debuggen des Problems ist willkommen.


nur eine idee, hast du dir / var / log / syslog angeschaut oder wo würde sowas protokolliert um viele dateien zu öffnen / VM maxmem?
Antony Gibbs

@AntonyGibbs Nichts dergleichen. Es ist ein überlasteter physischer Server. Andere Dienste laufen reibungslos neben Cassandra.
mailq

1
Haben Sie überprüft, ob der Prozess CPU-gebunden, E / A-gebunden oder blockiert ist und auf etwas anderes wartet?
Kasperd

1
Was sind die Einstellungen der gestarteten Java Virtual Machine? Dies könnte ein leistungsstarker Server sein. Wenn die Java-Instanz auf 128 MB beschränkt ist, wird sie nicht größer. Das Geräusch von nichts in Protokollen lässt mich an Speichergrenzen denken ...
Antony Gibbs

1
Die Ausgabe ulimit -avon einer Cassandra-Benutzerkonsole kann nützlich sein.
Antony Gibbs

Antworten:


1

Ich bin kein Kassandra-Experte, aber haben Sie versucht, die Komprimierung mit nodetool zu stoppen und einen Schwellenwert für die Komprimierung festzulegen (setcompactionthreshold auf 0), damit das System es nicht erneut versucht


nodetool stop - COMPACTION Es hat nicht geholfen. Jobs sind noch im Gange.
Jigar Shah

@JigarShah Gleiche Frage wie das OP? Sie sollten vielleicht eine neue Frage stellen, um eine neue Antwort zu erhalten. Als vielleicht meine Lösung nicht helfen, aber half der OP
yagmoth555
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.