2014-11-21 17 views
8

Sto provando a valutare il numero di pietre tombali che vengono create in una delle tabelle nella nostra applicazione. Per questo sto cercando di usare nodetool cfstats. Ecco come lo sto facendo:Come ottenere il conteggio delle pietre tombali per una query cql?

create table demo.test(a int, b int, c int, primary key (a)); 
insert into demo.test(a, b, c) values(1,2,3); 

Ora sto facendo lo stesso inserto come sopra. Quindi mi aspetto che vengano create 3 pietre tombali. Tuttavia, eseguendo cfstats per questa famiglia di colonne, continuo a vedere che non sono state create pietre tombali.

nodetool cfstats demo.test 
Average live cells per slice (last five minutes): 0.0 
Average tombstones per slice (last five minutes): 0.0 

Ora ho provato a eliminare il record, ma ancora non vedo nessuna pietra tombale da creare. C'è qualcosa che mi manca qui? Si prega di suggerire.

BTW pochi altri dettagli, * Stiamo usando la versione 2.1.1 del driver Java * Stiamo correndo contro Cassandra 2.1.0

+0

Come una cronaca, Cassandra 2.xe 1.x aveva problemi continuamente sbarazzarsi di lapidi (vale a dire che sarebbe bene farlo all'avvio , ma dopo un po 'si fermerebbe completamente.) –

+0

La mia opinione sarebbe che i dati usati dal comando 'cfstats' non vengano aggiornati così velocemente che vedresti una modifica subito dopo l'eliminazione. Magari dandogli un minuto o usando la soluzione RussS. –

risposta

18

Per conta lapide su una query la soluzione migliore è quella di abilitare la traccia . Ciò ti fornirà la cronologia approfondita di una query incluso il numero di lapidi da leggere per completarlo. Questo non ti darà il conteggio totale della pietra tombale, ma è probabilmente più rilevante per l'ottimizzazione delle prestazioni.

In cqlsh è possibile attivare questo con

cqlsh> tracing on; 
Now tracing requests. 
cqlsh> SELECT * FROM ascii_ks.ascii_cs where pkey = 'One'; 

pkey | ckey1 | data1 
------+-------+------- 
    One | One | One 

(1 rows) 


Tracing session: 2569d580-719b-11e4-9dd6-557d7f833b69 

activity                 | timestamp | source | source_elapsed 
--------------------------------------------------------------------------+--------------+-----------+---------------- 
                 execute_cql3_query | 08:26:28,953 | 127.0.0.1 |    0 
Parsing SELECT * FROM ascii_ks.ascii_cs where pkey = 'One' LIMIT 10000; | 08:26:28,956 | 127.0.0.1 |   2635 
                 Preparing statement | 08:26:28,960 | 127.0.0.1 |   6951 
          Executing single-partition query on ascii_cs | 08:26:28,962 | 127.0.0.1 |   9097 
              Acquiring sstable references | 08:26:28,963 | 127.0.0.1 |   10576 
               Merging memtable contents | 08:26:28,963 | 127.0.0.1 |   10618 
               Merging data from sstable 1 | 08:26:28,965 | 127.0.0.1 |   12146 
               Key cache hit for sstable 1 | 08:26:28,965 | 127.0.0.1 |   12257 
                Collating all results | 08:26:28,965 | 127.0.0.1 |   12402 
                 Request complete | 08:26:28,965 | 127.0.0.1 |   12638 

http://www.datastax.com/dev/blog/tracing-in-cassandra-1-2

+1

Buona risposta. Stavo pensando la stessa cosa. – Aaron

+2

Grazie Russs per la risposta. Ma davvero non ho capito quale parte del tracciamento parla effettivamente del numero di lapidi che vengono lette. Potete fornire ulteriori dettagli su questo? – PrasanthNath

+1

puoi anche ottenere lapidi medie per fetta (ultimi cinque minuti) da nodetool cfstats – phact