2014-02-14 32 views
1

這裏是約寫卡桑德拉文檔(LINKCassandra的寫入性能方面的一致性水平

如果受影響的行鍵的所有副本都下來報價,它仍然是 可能的寫入操作,如果使用成功寫一致性級別 任何。在這種情況下,提示和寫入的數據存儲在協調器節點上,但直到提示 被寫入到擁有該行的實際副本中才會被讀取。 ANY 一致性級別以 一致性爲代價提供絕對寫入可用性,因爲不能保證寫入數據何時可用於讀取(取決於複製品停機的時間長短)。 使用 ANY一致性級別也可能會增加 羣集上的負載,因爲每當副本不可用於接受寫入時,協調器節點必須臨時存儲額外的行 。

我的問題是:被寫入卡桑德拉慢,如果我們使用的任何比寫入數據的一致性水平,當我們使用的ONE一致性水平?

回答

2

提示是在寫入時無法訪問適當的副本節點時生成的。寫請求然後在請求協調器節點上本地序列化。一旦有效的副本節點變得可用並且協調器節點了解它,請求就會被傳遞到新近可用的副本。

有了這樣的背景,有兩個寫入時的情況來考慮:

1)至少有一個副本是彌補了受影響的行。在這種情況下,ANYONE的一致性水平之間沒有差異。寫入只是進入副本,並且暗示切換不會被觸發。 沒有性能差異

2)對於受影響的行,所有副本都已關閉。這是提示輸入圖片的地方。在一致性ANY中,在請求時在協調器節點上需要完成額外的工作,因爲將提示寫入本地系統表以供以後重播。一致性爲ONE,你會在相同的情況下獲得拒絕寫入。 ONE將向客戶端公開寫入失敗,並且將快於ANY

從本質上講,權衡是拒絕請求與將工作推到其餘節點上,但只有當負責存儲該行的節點停止時,纔是

+0

就是這樣,謝謝......我不確定這些暗示是否一直在發生,或者只是在案例2中......這很有道理:) –