我們有一些資料量比較大的業務資料, 採用sharding的方式儲存. 這樣可以把資料打散到不同的機器.
我們也有一些日誌資料, 是按每個租戶一個collection, 做成cappped, 只保留一定量的數據, 用於後台跑一些批處理用. 每個collection的記錄數也不是很大, 用sharding的意義不大. 而且是capped collection也不能sharding
現在的問題是, 這樣的collection的數量還是挺多的. 如果都集中在一台伺服器, 那台伺服器的負載就會變大, 反而影響本來sharding在上面個的collection的讀寫.
有什麼辦法可以把這些capped collection 比較好的分散到各個shard server嗎?
比如:
Shard Svr1, Shard Svr2, Shard Svr3
log_1, log_2, log_3
log_4, log_5, log_6
以 database 為單位,可以用 movePrimary 把不同 database 的 unsharded collection 分散開。