我们有一些数据量比较大的业务数据, 采用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 分散开。