2014-12-19 3 views
5

Als ichWas bedeutet rows_merged in der Compaction History?

$ nodetool compactionhistory 

Ausgabe erhalte ich

. . . compacted_at  bytes_in  bytes_out  rows_merged 
. . . 1404936947592  8096   7211   {1:3, 3:1} 

Was bedeutet {1:3, 3:1}? Die einzige Dokumentation ich finden kann, ist this in dem es heißt

die Anzahl der Partitionen

fusionierte

, die nicht warum mehrere Werte erklären und was der Doppelpunkt bedeutet.

Antwort

16

Also im Grunde bedeutet {Tabellen: Zeilen} zum Beispiel {1: 3, 3: 1} bedeutet, dass 3 Zeilen aus einer Tabelle (1: 3) und 1 Zeile aus 3 (3: 1) Tabellen übernommen wurden, alles, um den einen in dieser Verdichtungsoperation zu machen.

Ich versuchte es mir hier so ein Beispiel ist, ich hoffe, das hilft:

erstellen Schlüsselraum und Tabelle:

cqlsh> create keyspace space1 WITH replication = {'class': 'SimpleStrategy', 'replication_factor': 1}; 

cqlsh> create TABLE space1.tb1 (key text, val1 text, primary KEY (key)); 

cqlsh> INSERT INTO space1.tb1 (key, val1) VALUES ('key1','111'); 
cqlsh> INSERT INTO space1.tb1 (key, val1) VALUES ('key2','222'); 
cqlsh> INSERT INTO space1.tb1 (key, val1) VALUES ('key3','333'); 
cqlsh> INSERT INTO space1.tb1 (key, val1) VALUES ('key4','444'); 
cqlsh> INSERT INTO space1.tb1 (key, val1) VALUES ('key5','555'); 
cqlsh> exit 

Jetzt bündig wir die sstable

$ nodetool flush space1 

erstellen Wir Beachten Sie, dass nur eine Version der Tabelle erstellt wird

$ sudo ls -lR /var/lib/cassandra/data/space1 

/var/lib/cassandra/data/space1: 
total 4 
drwxr-xr-x. 2 cassandra cassandra 4096 Feb 3 12:51 tb1 

/var/lib/cassandra/data/space1/tb1: 
total 32 
-rw-r--r--. 1 cassandra cassandra 43 Feb 3 12:51 space1-tb1-jb-1-CompressionInfo.db 
-rw-r--r--. 1 cassandra cassandra 146 Feb 3 12:51 space1-tb1-jb-1-Data.db 
-rw-r--r--. 1 cassandra cassandra 24 Feb 3 12:51 space1-tb1-jb-1-Filter.db 
-rw-r--r--. 1 cassandra cassandra 90 Feb 3 12:51 space1-tb1-jb-1-Index.db 
-rw-r--r--. 1 cassandra cassandra 4389 Feb 3 12:51 space1-tb1-jb-1-Statistics.db 
-rw-r--r--. 1 cassandra cassandra 80 Feb 3 12:51 space1-tb1-jb-1-Summary.db 
-rw-r--r--. 1 cassandra cassandra 79 Feb 3 12:51 space1-tb1-jb-1-TOC.txt 

überprüfen Sie die sstable2json wir unsere Daten

$ sudo -u cassandra /usr/bin/sstable2json /var/lib/cassandra/data/space1/tb1/space1-tb1-jb-1-Data.db 
[ 
{"key": "6b657935","columns": [["","",1422967847005000], ["val1","555",1422967847005000]]}, 
{"key": "6b657931","columns": [["","",1422967817740000], ["val1","111",1422967817740000]]}, 
{"key": "6b657934","columns": [["","",1422967840622000], ["val1","444",1422967840622000]]}, 
{"key": "6b657933","columns": [["","",1422967832341000], ["val1","333",1422967832341000]]}, 
{"key": "6b657932","columns": [["","",1422967825116000], ["val1","222",1422967825116000]]} 
] 

An diesem Punkt ‚notetool compactionhistory‘ sehen zeigt nichts für diese Tabelle aber lässt kompakt sowieso zu sehen, was wir bekommen (nach rechts scrollen)

$ nodetool compactionhistory | awk 'NR == 2 || /space1/' 
id          keyspace_name  columnfamily_name   compacted_at    bytes_in  bytes_out  rows_merged 
5725f890-aba4-11e4-9f73-351725b0ac5b  space1    tb1       1422968305305    146   146   {1:5} 

laufen nun können zwei Zeilen löschen und bündig

cqlsh> delete from space1.tb1 where key='key1'; 
cqlsh> delete from space1.tb1 where key='key2'; 
cqlsh> exit 

$ nodetool flush space1 

$ sudo ls -l /var/lib/cassandra/data/space1/tb1/ 
[sudo] password for datastax: 
total 64 
-rw-r--r--. 1 cassandra cassandra 43 Feb 3 12:58 space1-tb1-jb-2-CompressionInfo.db 
-rw-r--r--. 1 cassandra cassandra 146 Feb 3 12:58 space1-tb1-jb-2-Data.db 
-rw-r--r--. 1 cassandra cassandra 336 Feb 3 12:58 space1-tb1-jb-2-Filter.db 
-rw-r--r--. 1 cassandra cassandra 90 Feb 3 12:58 space1-tb1-jb-2-Index.db 
-rw-r--r--. 1 cassandra cassandra 4393 Feb 3 12:58 space1-tb1-jb-2-Statistics.db 
-rw-r--r--. 1 cassandra cassandra 80 Feb 3 12:58 space1-tb1-jb-2-Summary.db 
-rw-r--r--. 1 cassandra cassandra 79 Feb 3 12:58 space1-tb1-jb-2-TOC.txt 
-rw-r--r--. 1 cassandra cassandra 43 Feb 3 13:02 space1-tb1-jb-3-CompressionInfo.db 
-rw-r--r--. 1 cassandra cassandra 49 Feb 3 13:02 space1-tb1-jb-3-Data.db 
-rw-r--r--. 1 cassandra cassandra 16 Feb 3 13:02 space1-tb1-jb-3-Filter.db 
-rw-r--r--. 1 cassandra cassandra 36 Feb 3 13:02 space1-tb1-jb-3-Index.db 
-rw-r--r--. 1 cassandra cassandra 4413 Feb 3 13:02 space1-tb1-jb-3-Statistics.db 
-rw-r--r--. 1 cassandra cassandra 80 Feb 3 13:02 space1-tb1-jb-3-Summary.db 
-rw-r--r--. 1 cassandra cassandra 79 Feb 3 13:02 space1-tb1-jb-3-TOC.txt 

die Tabellen Inhalt Lets überprüfen

$ sudo -u cassandra /usr/bin/sstable2json /var/lib/cassandra/data/space1/tb1/space1-tb1-jb-2-Data.db 
[ 
{"key": "6b657935","columns": [["","",1422967847005000], ["val1","555",1422967847005000]]}, 
{"key": "6b657931","columns": [["","",1422967817740000], ["val1","111",1422967817740000]]}, 
{"key": "6b657934","columns": [["","",1422967840622000], ["val1","444",1422967840622000]]}, 
{"key": "6b657933","columns": [["","",1422967832341000], ["val1","333",1422967832341000]]}, 
{"key": "6b657932","columns": [["","",1422967825116000], ["val1","222",1422967825116000]]} 
] 

$ sudo -u cassandra /usr/bin/sstable2json /var/lib/cassandra/data/space1/tb1/space1-tb1-jb-3-Data.db 
[ 
{"key": "6b657931","metadata": {"deletionInfo": {"markedForDeleteAt":1422968551313000,"localDeletionTime":1422968551}},"columns": []}, 
{"key": "6b657932","metadata": {"deletionInfo": {"markedForDeleteAt":1422968553322000,"localDeletionTime":1422968553}},"columns": []} 
] 

Jetzt können kompakte

$ nodetool compact space1 

Nur ein stabil wie jetzt

erwartet
$ sudo ls -l /var/lib/cassandra/data/space1/tb1/ 
total 32 
-rw-r--r--. 1 cassandra cassandra 43 Feb 3 13:05 space1-tb1-jb-4-CompressionInfo.db 
-rw-r--r--. 1 cassandra cassandra 133 Feb 3 13:05 space1-tb1-jb-4-Data.db 
-rw-r--r--. 1 cassandra cassandra 656 Feb 3 13:05 space1-tb1-jb-4-Filter.db 
-rw-r--r--. 1 cassandra cassandra 90 Feb 3 13:05 space1-tb1-jb-4-Index.db 
-rw-r--r--. 1 cassandra cassandra 4429 Feb 3 13:05 space1-tb1-jb-4-Statistics.db 
-rw-r--r--. 1 cassandra cassandra 80 Feb 3 13:05 space1-tb1-jb-4-Summary.db 
-rw-r--r--. 1 cassandra cassandra 79 Feb 3 13:05 space1-tb1-jb-4-TOC.txt 

Jetzt können Sie den Inhalt des neuen stabilen überprüfen wir die Grabsteine ​​sehen

$ sudo -u cassandra /usr/bin/sstable2json /var/lib/cassandra/data/space1/tb1/space1-tb1-jb-4-Data.db 
[ 
{"key": "6b657935","columns": [["","",1422967847005000], ["val1","555",1422967847005000]]}, 
{"key": "6b657931","metadata": {"deletionInfo": {"markedForDeleteAt":1422968551313000,"localDeletionTime":1422968551}},"columns": []}, 
{"key": "6b657934","columns": [["","",1422967840622000], ["val1","444",1422967840622000]]}, 
{"key": "6b657933","columns": [["","",1422967832341000], ["val1","333",1422967832341000]]}, 
{"key": "6b657932","metadata": {"deletionInfo": {"markedForDeleteAt":1422968553322000,"localDeletionTime":1422968553}},"columns": []} 
] 

Zum Schluss überprüfen wir die Verdichtungsgeschichte (rechts scrollen)

$ nodetool compactionhistory | awk 'NR == 2 || /space1/' 
id          keyspace_name  columnfamily_name   compacted_at    bytes_in  bytes_out  rows_merged 
5725f890-aba4-11e4-9f73-351725b0ac5b  space1    tb1       1422968305305    146   146   {1:5} 
46112600-aba5-11e4-9f73-351725b0ac5b  space1    tb1       1422968706144    195   133   {1:3, 2:2} 
+3

Wow, das ist eine brillante Antwort! – Aaron

+1

Konnte nicht mehr zustimmen. Vielen Dank! – Ztyx