2013-03-01 74 views
1

如果我們使用複製,禁用提交日誌是否安全?當一個節點發生故障時,通常是由於硬盤故障導致的,因此在該提交日誌中,我們無法提供耐用性,但是複製會有幫助。爲什麼我們在使用複製時甚至需要提交日誌?禁用提交日誌安全嗎?

回答

1

在沒有提交日誌的情況下,存儲在副本上的memtables中的數據可能需要很長時間(可能是無界的,實際上通常是幾分鐘)才能寫入磁盤。這意味着,在該窗口內,您可能會丟失寫信。例如,如果您的數據中心斷電,則可能會丟失所有副本上最後幾分鐘的所有寫入。提交日誌每10秒同步一次(默認情況下),以便在同時發生故障時最多丟失10秒的數據。

但是,如果您使用多數據中心複製,那麼會丟失數據,您將需要跨數據中心同時發生故障。

這是一個折衷:提交日誌,沒有防止單個節點崩潰或具有非破壞性故障的複製。通過在單個DC中複製,它可以防止整個DC故障,例如電源(檢測)失敗。通過多DC中的複製,它可以防止相關故障。您可以根據啓用提交日誌的成本與丟失最近寫入的成本來決定需要多少彈性。

+0

我想,多DC和RF = 3它應該足夠安全,以禁用提交日誌。但是如果考慮到默認情況下它每10秒鐘同步一次,那麼有多少人可以獲得更多的性能呢? – Serge 2013-03-01 16:03:11

+1

我還沒有運行任何基準測試,但我猜測如果你運行了兩個插入測試,一個啓用了durable_writes,另一個禁用(如果禁用,那麼這個列系列將繞過提交日誌),它們將大致相同。然而,沒有提交日誌的最大優點是你不需要提交日誌的單獨磁盤(這是推薦的設置),所以對於磁盤少的系統,它可以爲數據提供更多的I/O。 – Richard 2013-03-01 16:46:14