
我最近開始了解並使用 cassandra。
我建立了兩個列族。對於 CF1,寫入是插入具有所有列值的唯一行。例如:插入操作的順序可能是這樣的:
Key Col1 Col2 Col3
k1 c11 c12 c13
k2 c21 c22 c23
對於CF2。寫入是插入到行的帶時間戳的列中。例如:插入操作的順序可能是這樣的:
Key timeCol1 timeCol2
k1 ct11
k1 ct11 ct12
k2 ct21
k2 ct21 ct22
我正在使用 YCSB 並使用基於 Thrift 的client.batch_mutate()稱呼。對於 CF1,我透過呼叫發送一行的所有列值。對於 CF2,我發送一行的新列值。
現在假設 opscenter 報告「寫入請求」為 1000營運/sec 當記錄計數為 10000 筆記錄時。
從 opscenter 的角度來看,操作意味著什麼?這是否意味著跨所有列族進行唯一的行插入?這是否意味著一行中每個突變的計數? opscenter 如何辨識唯一操作?從應用程式的角度來看,操作對兩個列族來說意味著不同的方式。
有人可以指導我嗎?
謝謝,阿倫
答案1
「寫入請求」和「讀取請求」指標表示來自外部客戶端的操作數量,因此單一batch_mutate呼叫是1個請求,無論它包含多少個突變。
「CF:本地寫入」和「CF:本地讀取」指標表示在本地節點(通常來自協調器節點)接收到的操作數。對於單一插入,「CF:本地寫入」的數量將等於該鍵空間的「寫入請求」x RF。對於batch_mutate調用,批次內的每個突變都在「CF:本地寫入」層級單獨計數。
這些操作僅在行級別,並且沒有基於所涉及的資料的任何類型的智慧處理/合併。例如,執行相同的更新查詢兩次將產生 2 個操作。