2012-09-22 43 views
7

我在理解Cassandra中的複製因子時遇到了麻煩。 在文檔中提到:「整個集羣中的副本總數通常被稱爲複製因子」。另一方面,在同一文檔中,它說「NetworkTopologyStrategy允許您指定每個數據中心需要多少副本」。 因此,如果我有兩個NetworkTopologyStrategy數據中心,複製因子爲2意味着每個數據中心將有兩個副本或整個羣集中有兩個副本?有多個數據中心時的Cassandra複製因子

謝謝。

回答

8

使用NetworkTopologyStrategy時,可以使用strategy_options:{data-center-name}={rep-factor-value}而不是全局strategy_options:replication_factor={rep-factor-value}來指定每個數據中心的複製因子。

下面是適於從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; 

在該例子中一個具體的例子,任何給定的列將被存儲在4個節點,共計有2在每個數據中心。

3

複製因子基本上是您想要的副本數量(額外副本)。

要記住的一件事是它總是說「副本數量不應超過節點數量」。所以我有2個節點,你不應該有3個複製因子。

+2

你的回答含糊不清。您已經聲明覆制因子是額外副本的數量,但這意味着如果您有2個節點,複製因子不應高於1.這是正確的嗎? – Andrew

+0

@Andrew正是我想的,它的含糊不清。 – Sohail

+0

複製因子是額外副本數的說法是錯誤的。實際上,它是集羣中存在的每一行表的副本的總數。 –

相關問題