Nosql
記憶體表中的 cassandra
我計劃在記憶體表中使用 Cassandra 來完成我的特定工作負載。問題是我擔心如果節點失敗,那麼記憶體中未刷新到磁碟的數據會發生什麼?
我會失去這些數據嗎?
我會失去這些數據嗎?
好問題!如The Write Path To Compaction的 DataStax 文件部分所述,您不會失去數據。
如您所見,當 Cassandra 處理寫入操作時,數據會同時寫入送出日誌(磁碟上)和記憶體表(您提到的)。如果發生“拔出牆”事件,寫入仍在送出日誌中。當 Cassandra 在節點上重新啟動時,它首先會重放送出日誌,並驗證其所有數據是否已寫入磁碟。如果它在送出日誌中發現沒有刷新到磁碟的數據,它會在那個時候寫入磁碟。