我正在尝试浏览mongodb切分的文档,我对主碎片是如何分配的以及主碎片的含义有些困惑。
根据它的文档,
每个数据库都有一个主碎片,它保存数据库的所有非切分集合。主碎片与复制集中的主部件无关。
这是否意味着主碎片是第一次创建数据库的碎片中的碎片(或服务器集合)?
假设我有三个碎片s0,s1和s2。在每个碎片中,我有3个服务器
现在,当我通过mongoclient和mongos创建一个新的数据库时。现在假设请求转到碎片1 (s1)。由于create是一种写操作,它将转到shard 1中的服务器4,因此s1由主碎片变成?
另一方面,如果请求已经遍历到s2碎片,那么服务器7将主要创建集合,然后s2将成为我的主碎片?
这个理解是正确的,还是我错了?
发布于 2016-08-10 05:09:04
是的,你是对的!你也明白我的想法。
只要您不分割单个集合,集合必须有主位置,位于副本集之一。因此,把这些单独的碎片看作是单独的RS。因此,一个DB位于一个碎片,如果您在DB中碎片集合,集合是“平衡”到多个碎片。有了标签,你就可以决定藏品在哪里传播。正常的情况是把它均匀地撒到所有的碎片上。
您可以随时决定DB的主要位置是什么。创建之后,您可以“移动”它,当DB仍然是空的或相当小的时候,它是快速的操作。movePrimary
https://stackoverflow.com/questions/38840456
复制相似问题