2016-11-01 42 views
0

我有一個3節點的Ec2 Cassandra集羣。其中兩個節點被設置爲種子。通過NetworkTopologyStrategy配置密鑰空間,其中包含一個數據中心(us-east)和複製因子3.該snitch配置爲Ec2Snitch。如果我反覆運行相同的查詢,有時它會返回結果,而其他時間則不會,這對我來說表明我已經錯誤地設置了某些東西,偶爾會碰到沒有數據的節點。Cassandra集羣配置錯誤?奇怪的查詢結果

我應該以不同的方式設置它嗎?我對Cassandra比較陌生,昨天又添加了兩個額外的節點。直到我剛剛運行一個節點集羣用於測試目的。現在我們正在接近生產,我想添加一些額外的冗餘節點。

回答

0

這很可能是因爲您的一致性水平較低,並且自從將新節點添加到羣集並增加RF後未執行修復。所以目前Cassandra希望新節點擁有數據,但在運行修復之前數據實際上不會流式傳輸。

對於將來的調試,請嘗試在cqlsh中使用TRACING ON,這將向您顯示有關在查詢執行期間正在討論哪些節點的詳細信息。

+0

我有一個非常低的一致性水平(ONE)。卡桑德拉應該仍然最終複製,對吧?將它設置爲1意味着它最終一致?關於TRACING ON的方便提示 - 我沒有意識到該功能,所以這會有所幫助。我實際上經過幾次修理,修理後這個問題仍然存在,我發現這很奇怪。 – cloudwalker

+0

嗯,讓我們看看結果是什麼使用跟蹤。您還可以通過在SSTables上運行sstable2json來明確檢查單個節點是否具有數據。 –