一个由五台计算机组成的MongoDB集群(一台mongos,四台shard),每台计算机10G内存,300G硬盘。
在这种集群条件下,在一个collection中存储3000w条数据,这些数据是根据hash均匀的分布在四台shard的硬盘上的。
1.此时,该colleciton的索引是如何存储的呢?是根据hash均匀的分布在四台shard的内存中还是仅仅存放在mongos的内存中?
2.假若我对3000w条数据进行多次查询,MongoDB会对查询过得数据进行内存缓存,那么已查询到的数据的缓存是存放在四台shard的内存中还是存放在mongos的内存中呢?
麻烦各位解答,如果有相关的资料能够参阅就更好了,谢谢。
索引是数据在哪它就在哪个片;
数据是在每个片的缓存中,mongos只管转发任务不执行实际的操作;