2017-12-18 259 views
0

我想了解卡桑德拉併發讀寫。我遇到屬性叫卡桑德拉併發讀寫

concurrent_reads (Defaults are 8) 

A good rule of thumb is 4 concurrent_reads per processor core. May increase the value for systems with fast I/O storage 

所以根據定義,糾正我如果錯了,4個線程可以同時訪問數據庫。所以我們可以說我試圖運行下面的查詢,

SELECT max(column1) from 'testtable' WHERE duration = 'month'; 

我只是想執行這個查詢,會是在執行這個查詢使用並行讀的?

感謝,
哈利

回答

4

即每臺主機在一次運行多少個活動讀取。如果您在閱讀階段輸入nodetool tpstats,則可以看到該字段。如果活動人員與併發讀取器的數量掛鉤,並且您有待處理隊列,則可能值得嘗試增加此值。當人們使用體面大小的堆和固態硬盤時,這個數字在128左右是很正常的。這是非常依賴硬件,所以默認值是保守的。

請記住,該線程上的活動非常快,通常以小於ms爲單位進行度量,但假設即使只有4個小時也只需要1ms,但根據小法則,每個節點最多可以有每秒40​​00個(本地)讀取(1000/1 * 4),其中RF = 3和法定一致性意味着您每次請求至少執行2次讀取,因此可以將2除以認爲理論(實際生活更狡猾)最大吞吐量。

聚集函數(即max)是在所述協調處理時,獲取所述副本的數據(各做一個本地讀取和發送響應)之後,並且不直接由併發影響讀取因爲在天然處理運輸和請求響應階段。

1

從卡桑德拉2.2開始,標準的聚合函數min, max, avg, sum, count是內置。所以,我不認爲concurrent_reads會對您的查詢產生任何影響。