Transaction模塊(事務模塊)
shceduler pool:協調事務並發寫入衝突
Raft模塊:將寫請求轉換成raft日誌,寫入本地並複製到其他節點
raftstore thread:
RocksDB模塊:將raft日誌應用到rocksdb,進行數據持久化
apply thread:
二、寫入流程
1、scheduler-worker-pool-size
scheduler 線程個數,主要負責寫入之前的事務一致性檢查工作。如果 CPU 核心數量大於等於 16,默認為 8;否則默認為 4。
2、store-max-batch-size
一輪處理的最大請求個數。
3、store-pool-size
表示處理 Raft 的線程池中線程的數量,即 Raftstore 線程池的大小。
4、raft-max-inflight-msgs
待確認日誌個數的數量,如果超過這個數量將會減緩發送日誌的個數。
5、apply-pool-size
處理數據落盤的線程池中線程的數量。
6、apply-max-batch-size
一輪處理數據落盤的最大請求個數。
三、讀取流程
readpool.unified.max-thread-count
統一處理讀請求的線程池最多的線程數量,即 UnifyReadPool 線程池的大小。
storage.block-cache.capacity
共享 block cache 的大小
split.qps-threshold
對 Region 執行 load-base-split 的閾值。如果連續一段時間內,某個 Region 的讀請求的 QPS 超過 qps-threshold,則切分該 Region
split.byte-threshold
對 Region 執行 load-base-split 的閾值。如果連續一段時間內,某個 Region 的讀請求的流量超過 byte-threshold,則切分該 Region
點查:
非點查:
四、Write Stall現象
五、慢查詢
小表熱點
索引熱點
CPU資源不足
Unified read瓶頸
Storage read pool瓶頸
執行計劃不合理(全表掃描)