mongodb 中的主要碎片
primary shards in mongodb
我正在尝试查看 mongodb 分片的文档,但我对主分片的分配方式和主分片的含义有些困惑
根据文档,它指出
Every database has a primary shard that holds all the un-sharded
collections for a database. The primary shard has no relation to the
primary in a replica set.
这是否意味着主分片是第一个创建数据库的分片中的分片(或服务器集合)?
假设我有 3 个分片 s0、s1 和 s2。在每个分片中我有 3 个服务器
- s0 服务器 1(主要)
- s0 服务器 2(辅助)
s0 - 服务器 3(辅助)
s1 - 服务器 4(主要)
- s1 - 服务器 5(辅助)
s1 - 服务器 6(辅助)
s2 - 服务器 7(主要)
- s2 - 服务器 8(辅助)
- s2 - 服务器 9(辅助)
现在,当我通过 mongoclient 和 mongos 创建新数据库时。现在假设请求转到分片 1 (s1)。由于创建数据库是一个写入操作,它将转到分片 1 中的服务器 4,因此 s1 成为主分片?
另一方面,如果请求遍历到 s2 分片,那么主服务器 7 将创建集合,然后 s2 将成为我的主分片?
这个理解是正确的还是我哪里出错了?
是的,你是对的!你理解了概念。
只要您不对单个集合进行分片,集合就必须具有主要位置,位于其中一个副本集。因此,将这些单独的分片视为单独的 RS。
因此,一个 DB 位于一个分片,如果您在 DB 内分片集合,则集合 "balanced" 到多个分片。使用 TAG,您可以决定该集合的传播位置。正常情况是均匀分布到所有分片。
而且您始终可以决定数据库的主要位置。创建后,你可以"move"它,当DB还是空的或者很小的时候,它的运行速度很快。 movePrimary
我正在尝试查看 mongodb 分片的文档,但我对主分片的分配方式和主分片的含义有些困惑
根据文档,它指出
Every database has a primary shard that holds all the un-sharded collections for a database. The primary shard has no relation to the primary in a replica set.
这是否意味着主分片是第一个创建数据库的分片中的分片(或服务器集合)?
假设我有 3 个分片 s0、s1 和 s2。在每个分片中我有 3 个服务器
- s0 服务器 1(主要)
- s0 服务器 2(辅助)
s0 - 服务器 3(辅助)
s1 - 服务器 4(主要)
- s1 - 服务器 5(辅助)
s1 - 服务器 6(辅助)
s2 - 服务器 7(主要)
- s2 - 服务器 8(辅助)
- s2 - 服务器 9(辅助)
现在,当我通过 mongoclient 和 mongos 创建新数据库时。现在假设请求转到分片 1 (s1)。由于创建数据库是一个写入操作,它将转到分片 1 中的服务器 4,因此 s1 成为主分片?
另一方面,如果请求遍历到 s2 分片,那么主服务器 7 将创建集合,然后 s2 将成为我的主分片?
这个理解是正确的还是我哪里出错了?
是的,你是对的!你理解了概念。
只要您不对单个集合进行分片,集合就必须具有主要位置,位于其中一个副本集。因此,将这些单独的分片视为单独的 RS。 因此,一个 DB 位于一个分片,如果您在 DB 内分片集合,则集合 "balanced" 到多个分片。使用 TAG,您可以决定该集合的传播位置。正常情况是均匀分布到所有分片。
而且您始终可以决定数据库的主要位置。创建后,你可以"move"它,当DB还是空的或者很小的时候,它的运行速度很快。 movePrimary