修復節點(一)

修復節點

隨着時間的推移,由於數據庫的分佈式特性,副本中的數據可能與其他副本不一致。節點修復可以糾正不一致,以便最終所有節點都具有相同且最新的數據。是每個Cassandra集羣定期維護的重要組成部分。

Cassandra提供以下修復過程:

  • Hinted Handoff
    如果節點無法接收到特定的寫入,則寫入的協調器節點會將要寫入的數據保留爲一組提示。當節點恢復在線時,協調器通過提交提示來實現修復,以便節點能夠趕上所需的寫入。

  • Read Repair(讀修復)
    在讀取路徑期間,查詢彙集來自多個節點的數據。此寫入的協調器節點會比較來自每個副本節點的數據。如果任何副本節點有已經過期的數據,協調器節點將發送最新數據給對應節點。這種修復的範圍取決於keyspace的複製因子。在寫入期間,Cassandra僅收集足夠的副本數據以滿足複製因素,並且只對參與該寫入操作的節點執行讀取修復。

    Cassandra也可以隨意選擇寫入,並對所有副本執行讀取修復,而不考慮複製因素。

  • Anti-Entropy Repair(反熵修復)
    Cassandra提供了nodetool repair工具來確保跨副本的數據一致性; 它會比較所有副本上的數據,然後將數據更新到最新版本。nodetool repair 作爲日常維護程序的一部分使用。

警告: DataStax建議在topology更改期間停止修復操作; 維修服務會自動執行。當topology變化期間或在涉及移動ranges時運行修復操作可能出錯。
您可以使用Cassandra設置或Cassandra工具來配置每種類型的修復。有關何時使用每種類型的維修以及如何配置每種維修的詳細信息,請參閱上面列出的頁面。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章