2016-06-07 55 views
4

張貼question和閱讀thisthat的文章後,我還是不明白,這三個操作 -卡桑德拉壓實VS修復VS清理

  • 卡桑德拉壓實作業
  • nodetool維修
  • nodetool之間的關係清理

修復任務可以在壓實任務運行時進行處理,也可以在清理的同時進行壓實任務正在運行?清理是一項需要每週修復的操作嗎?爲什麼修復操作需要手動執行並且不在Cassandra默認行爲中?

健康集羣維護的基本原則是什麼?

回答

12

A cleanup是一個壓縮,只是刪除節點令牌範圍之外的東西。 A repair有一個「驗證壓縮」來構建Merkle樹來與其他節點進行比較,因此nodetool repair的一部分將會有壓縮。

是否可以在壓實任務運行時處理修復任務,還是在壓實任務運行時進行清理?

有用於跨正常compactions,修理,清理,磨砂compactions的共享池等,這是在cassandra.yaml的concurrent_compactors設置,默認爲內核和數據目錄數的一個組合: https://github.com/apache/cassandra/blob/cassandra-2.1/src/java/org/apache/cassandra/config/DatabaseDescriptor.java#L572

清理是一個需要每週修復一次的操作嗎?

不,只有在拓撲結構發生變化後才真正。

爲什麼修復操作需要手動執行並且它不處於Cassandra默認行爲?

它的手冊,因爲它的要求可能會有很大的不同,你的數據和gc_grace的要求是。 https://issues.apache.org/jira/browse/CASSANDRA-10070將它帶入卡桑德拉,儘管如此,它將是自動的。

健康集羣維護的基本原則是什麼?

我(的意見)說:

  • 定期備份(根據需求和可接受的數據丟失 這可以從每天每週/東西不斷增量)。
    • 這與「內部」錯誤(「Opps我刪除了一位客戶」)一樣多,因爲中斷。即使使用強大的多重直流複製,也需要一些最低限度的備份。
  • 確保所有在這些表的gc_grace時間內至少刪除一次的表的修復完成。
  • 如果您希望能夠調試問題,則度量和日誌存儲非常重要。
+0

好總結!謝謝。 – Rada