2015-10-22 25 views
1

documentation for Cassandra consistency levels說,有關的EACH_QUORUM一致性水平:語義只有一個卡桑德拉數據中心

寫必須寫入提交日誌和memTable中的副本節點中的所有數據中心的法定人數。用於多個數據中心羣集...

當只有一個數據中心時,EACH_QUORUM一致性級別的語義是什麼?我能想到的兩種可能性:

  • 「一切」包括有隻爲一個的情況下,所以EACH_QUORUM要求寫入要在唯一的數據中心節點的法定人數寫的。
  • 如果您有多個數據中心(「在多個數據中心羣集中使用」的措辭是限制性的,而不是描述性的),則一致性級別僅適用於,並且只有一個數據中心時不得使用。在這種情況下,請改用QUORUM

回答

2

一些實驗後,使用卡桑德拉2.1.5和Datastax Java驅動程序2.1.5,我發現實施(如果不是預期語義)是該EACH_QUORUM一致性水平的作品,只有當你有多個數據中心。當只有一個數據中心時,Java驅動程序失敗EACH_QUORUM寫入,拋出一個UnavailableException,指出有0個節點可用。使用QUORUM寫入工作就OK了。

因此如果您只有一個數據中心,請不要使用EACH_QUORUM一致性級別。改爲使用QUORUM