之前雷竞技下载官网MongoDB 4.4 Percona服务器(PSMDB),创建一个索引的最佳实践以滚动的方式做这件事。很多人用来创建直接初选,导致第一个索引被成功创建主,然后复制到辅助节点。

从4.4 PSMDB开始,有一个新的参数中引入commitQuorum方法createIndex命令。如果你不通过这个参数显式方法createIndex命令,它将使用默认设置一套副本或分片集群和建立索引同时在所有data-bearing副本集成员投票。

下面是使用命令用于创建一个索引commitQuorum像大多数:

上面的命令将运行索引创建命令data-bearing副本集的多数成员。也有其他选项可用时使用commitQuorum:

  1. “投票成员”——这是默认行为时,将创建一个索引所有data-bearing投票副本集成员(默认)。“投票”成员任何副本集成员的选票在哪里大于0。
  2. “多数”——data-bearing副本集成员的简单多数。
  3. “< int >”——一组特定数量的data-bearing副本成员。指定一个大于0的整数。
  4. “标记名称”——一套副本使用标记名的节点。

现在我们将看到的场景创建索引时所发生的违约和多数<强大的>commitQuorum

  1. 当所有data-bearing副本集成员可用,并与默认创建索引<强大的>commitQuorum,下面是细节的初级和二级节点。创建索引:

    主日志:

    二级日志:

    二级日志:

    我们可以看到上面的索引上同时创建所有data-bearing副本集成员投票。
  2. 一个二次下跌,指数是用默认创建的<强大的>commitQuorum,下面是细节的初级和二级节点。

    节点的状态:


    索引命令:


    复制状态:


    指数状态:


    CurrentOp:


    从主节点日志:


    从安装辅助节点日志:


    上面你可以看到,当一个节点,并与默认创建索引<强大的>commitQuorum,索引命令将继续运行,直到第三data-bearing投票节点。现在我们可以检查是否上创建索引主要:


    我们可以看到创建索引,但是您将无法使用上述指数的指数不是标记为完成。

    下面是解释计划的查询,我们可以看到查询做COLLSCAN而不是IXSCAN:

    现在我将把第三个节点,我们会看到指数运算将完成。

    指数状态:

    现在将运行相同的查询,我们可以看到指数(IXSCAN)正在使用如上已经成功地创建了索引:

    主日志后第三个节点走过来,已经成功地创建了索引:

    上面,你可以看到花了多少时间完成索引构建;op跑到第三个节点了。

  3. 当一个二次下跌,指数创建commitQuorum多数,下面是细节从初级和二级节点。节点的状态:

    索引命令:

    从主节点日志:

    上图,我们可以看到一个节点时,我们使用commitQuorum多数在创建索引时,指数运算完成按预期行为为两个投票(多数)节点启动并运行。

到目前为止,我们已经讨论了如何使用commitQuorum,何时使用它。现在,我们将看到一个场景,一个节点(投票)是由于任何原因,有人与默认commitQuorum创建索引。op会继续运行,你想杀了op。

我创建了索引使用默认commitQuorum当一个节点。

节点的状态:

CurrentOp:

现在你需要杀死上面opid释放上述人事处:

上图中,我们可以看到当我们杀了op,和创建索引op被杀了。

结论

我们已经看到如何<强大的>commitQuorum作品虽然从PSMDB 4.4创建索引。然而,最佳实践是在滚动的方式创建索引。

我们建议检查我们的产品雷竞技下载官网MongoDB Percona服务器,雷竞技下载官网为MongoDB Percona备份,雷竞技下载官网Percona运营商对MongoDB我们还建议检查我们的博客MongoDB:为什么你支付企业当开源覆盖吗?

订阅
通知的
客人

0评论
内联反馈
查看所有评论