开发者社区> 问答> 正文

控制写操作的持久性级别 —— WriteConcern是怎样的

控制写操作的持久性级别 —— WriteConcern是怎样的

展开
收起
不变的狗子 2021-09-28 14:12:29 954 0
1 条回答
写回答
取消 提交回答
  • 热爱技术

    image.png

    上图为 WriteConcern 标准的配置格式,包括三个子参 数: ·w: 决定了写操作返回前需要等待多少个副本集节点的 确认。 · j: 决定写操作产生的日志是否已经落盘。 ·wtimeout:决定了写操作等待的超时时间,避免客户 端一直阻塞。 下面具体演示几个 WriteConcern 配置的值。

    image.png

    如上图,当 W:1 时,写操作在本地执行完成后,直接向 客户端返回成功,无需等待日志(Journal)刷盘。

    image.png

    如上图,当 W:1,J:true 时,区别于 W:1 的主要特点在 于写操作在本地执行完成后,需要等待日志(Journal) 刷盘,会增加额外延迟。

    image.png

    如上图,当 W: "Majority",当下发了这个写操作之 后,除了需要在 Primary 节点 Apply 完成,还需要 复制到其中一个 Secondary 节点去 Apply 完成,才能 向 Driver 反馈写操作成功。 在三节点副本集情况下,"Majority"相当于两个节 点,等同于 W:2。

    资源来源:电子书《玩转MongoDB从入门到实战》,下载链接:https://developer.aliyun.com/topic/download?id=1060

    2021-09-28 14:14:07
    赞同 展开评论 打赏
问答地址:
问答排行榜
最热
最新

相关电子书

更多
事务、全局索引、透明分布式 立即下载
低代码开发师(初级)实战教程 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载