2014-12-19 38 views
5

Kiedy wydawaćCo oznacza rows_merged w compactionhistory?

$ nodetool compactionhistory 

uzyskać

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

Co {1:3, 3:1} oznacza? Jedyna dokumentacja znajdę to this który stanowi

liczba partycji połączyła

który nie wyjaśnia, dlaczego wiele wartości i co oznacza dwukropek.

Odpowiedz

16

Oznacza to, że oznacza to {tables: rows} na przykład {1: 3, 3: 1} oznacza, że ​​3 wiersze zostały pobrane z jednego sstable (1: 3) i 1 wiersza z 3 (3: 1) sstables, wszystko po to, aby utworzyć jeden system w tej operacji zagęszczania.

próbowałem go sobie tak oto przykład, mam nadzieję, że to pomaga:

tworzyć KEYSPACE i tabela:

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 

Teraz równo stworzyć sstable

$ nodetool flush space1 

Mamy zobacz, że tworzona jest tylko jedna wersja tabeli

$ 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 

sprawdzić sstable2json widzimy nasze dane

$ 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]]} 
] 

W tym momencie „notetool compactionhistory” pokazuje nic na tym stole, ale pozwala uruchomić kompaktowy i tak by zobaczyć, co mamy (przewiń w prawo)

$ 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} 

teraz pozwala usunąć dwa wiersze i przepłukać

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 

pozwala sprawdzić zawartość tabel

$ 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": []} 
] 

Teraz pozwala kompaktowy

$ nodetool compact space1 

Tylko jeden stabilny teraz zgodnie z oczekiwaniami

$ 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 

Teraz pozwala sprawdzić zawartość nowej stajni widzimy nagrobków

$ 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": []} 
] 

Na koniec sprawdź historię zagęszczania (przewiń w prawo)

$ 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, to wspaniała odpowiedź! – Aaron

+1

Nie można się zgodzić więcej. Dzięki! – Ztyx