2013-07-11 14 views
15

Qual è la differenza tra:Nodo Cassandra - ricostruzione v.s. riparazione

a) nodetool rebuild

b) nodetool repair [-pr]

In altre parole, che cosa esattamente i rispettivi comandi fanno?

+0

Come http://www.datastax.com/documentation/cassandra/1.2/index.html#cassandra/tools/toolsNodetool_r.html, 'rebuild' viene utilizzato per visualizzare un nuovo data center mentre' repair' è per ottenere coerenza tra i nodi dati esistenti – manuzhang

risposta

21

rebuild nodetool: è simile al processo di bootstrap (quando si aggiunge un nuovo nodo al cluster) ma per un datacenter. Il processo qui è principalmente uno streaming dai nodi già attivi ai nuovi nodi (i nuovi sono vuoti). Quindi, dopo aver definito gli intervalli chiave per i nodi che sono molto veloci, il resto può essere visto come un'operazione di copia.

nodetool repair -pr: non è un'operazione di copia, il nodo in riparazione non è vuoto, contiene già dati ma se il fattore di replica è maggiore di 1 che i dati devono essere confrontati con i dati sul resto del repliche e se c'è una differenza sarà corretto. Il processo richiede molto streaming ma non lo streaming dei dati: il nodo in riparazione richiede un albero merkle (fondamentalmente un albero di hash) per verificare se le informazioni di entrambi i nodi sono uguali o no, se non richiede un flusso completo della sezione dei dati che ha qualche differenza (quindi tutte le repliche hanno gli stessi dati). Streaming di questo hash se più veloce dello streaming di tutti i dati prima della verifica, questo funziona presupponendo che la maggior parte dei dati sarà la stessa su entrambi i nodi, fatta eccezione per alcune differenze qua e là. Questo processo rimuove anche le pietre tombali create durante l'eliminazione dal database, definendo come un nuovo "checkpoint" dopo il quale verranno create nuove pietre tombali dopo la cancellazione dei dati, ma i vecchi non saranno più utilizzati.

Spero che aiuti!

Problemi correlati