2012-08-27 42 views
2

當couchbase服務器響應於設置命令:Couchbase一致性

  • 當數據被保存到單個(主)節點
  • 當數據被保存到所有節點
+0

爲了說明問題,您是否詢問對設置命令的肯定響應是否意味着已將數據保存到主節點或所有節點? –

+0

是的,確切地說。你是對的。 – kolchanov

回答

5

答案將略有不同通過您正在使用的客戶端庫。但一般來說,調用集的積極結果只意味着客戶端和服務器之間沒有I/O或其他錯誤。在這種情況下,數據安全地在主節點上的內存中用於給定密鑰。

在2.0中,Couchbase服務器和相應的客戶端庫將支持Observe方法,這將允許進行耐久性檢查。通話時觀察,您可以提問如下:

  • 是否在其主節點上的內存中的一個關鍵?
  • 在其主節點上是否存在磁盤密鑰?
  • 是否在內存中複製了密鑰?
  • 有一個關鍵被持續到其副本?

欲瞭解更多信息,請參閱http://www.couchbase.com/wiki/display/couchbase/Observe

另一點,只是爲了確保清楚... Couchbase集羣中的節點在責任方面都是對等的,但在密鑰和這些密鑰的複製方面具有主/從關係。換句話說,密鑰「foo」具有單個主節點,但可以作爲該密鑰的從副本複製到其他節點。

+0

謝謝!非常詳細的答案。我已經爲遺留應用程序自己實現了lua二進制客戶端庫,因此我將支持Observe命令。 – kolchanov

+0

您的lua客戶端源是否可用?它是偶然的開源嗎? –

0

Couchbase的默認行爲是它將數據寫入主節點。寫入其他副本節點(s)以對等通信方式異步發生。另外,事實上在主節點中,當執行寫操作時(稍後持續),數據僅寫入高速緩存(RAM)。