2012-09-22 15 views
7

Ho problemi a comprendere il fattore di replicazione in Cassandra. Nella documentazione si dice che: "Il numero totale di repliche nel cluster viene spesso definito fattore di replicazione". D'altra parte, nella stessa documentazione, si dice che "NetworkTopologyStrategy consente di specificare quante repliche si desidera in ogni data center". Quindi, se ho 2 datacenter con NetworkTopologyStrategy, un fattore di replicazione di 2 significa che avrò 2 repliche per data center o 2 repliche in tutto il cluster?Fattore di replica di Cassandra in presenza di più data center

Grazie.

risposta

8

Quando si utilizza NetworkTopologyStrategy, si specifica il fattore di replica su base per-data center utilizzando strategy_options:{data-center-name}={rep-factor-value} anziché lo strategy_options:replication_factor={rep-factor-value} globale.

Ecco un esempio concreto adattato da http://www.datastax.com/docs/1.0/references/cql/CREATE_KEYSPACE

CREATE KEYSPACE Excalibur WITH strategy_class = 'NetworkTopologyStrategy' 
    AND strategy_options:DC1 = 2 AND strategy_options:DC2 = 2; 

In questo esempio, qualsiasi colonna viene memorizzato su 4 nodi totale, di cui 2 in ciascun centro dati.

3

Il fattore di replica è sostanzialmente il numero di repliche (copie aggiuntive) che si desidera avere.

Una cosa da ricordare è che viene sempre indicato "Il numero di repliche non deve essere superiore al numero di nodi". Quindi io ho 2 nodi che non dovresti avere 3 come fattore di replicazione.

+2

la tua risposta è ambigua. Hai affermato che il fattore di replicazione è il numero di copie aggiuntive, ma questo significherebbe che se hai 2 nodi, il fattore di replicazione non dovrebbe essere superiore a 1. È corretto? – Andrew

+0

@Andrew esattamente quello che stavo pensando, è ambiguo. – Sohail

+0

L'affermazione che il fattore di replica è il numero di copie aggiuntive è errata. In realtà, è il numero totale di copie di ogni riga della tabella esistente nel cluster. –

Problemi correlati