mongodb官网文档阅读笔记:write concern
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了mongodb官网文档阅读笔记:write concern,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2384字,纯文字阅读大概需要4分钟。
内容图文
![mongodb官网文档阅读笔记:write concern](/upload/InfoBanner/zyjiaocheng/499/c4e5a238ae2e4ea4ba02bedebd851884.jpg)
在?Acknowledged级别的副本集模式下。mongodb可在client设置一个wtimeout值。假设在规定的时间内无法完毕这个写操作就返回一个错误,即使它终于可能能够完毕。
Write Concern Levels
Unacknowledged
在Unacknowledged模式下,mongodbserver不会去确认写操作是否真正收到了,相似于忽略了所以操作。然而,驱动器还是会尝试接收和处理来自网络的错误,这就取决于系统的网络配置了。下图是Unacknowledged级别的原理图。
Acknowledged
Acknowledged模式下,mongod会去确认它接收到了这个写操作而且将这个写操作应用到内存数据中。Acknowledged?模式执行client捕捉全部网络错误。主键冲突等错误。可是Acknowledged?并不能保证写操作应用到磁盘数据总。下面是原理图
![mongodb官网文档阅读笔记:write concern - 文章图片](/upload/getfiles/0001/2021/4/25/20210425022553953.jpg)
Journaled
Journaled模式下。mongodbserver会确认写操作提交到journal log中。所以这个级别能够保证mongodb能够在意外宕机以后恢复出全部数据。当然这个级别必须保证你在server端开启了journaling
。而且每次都必须等待直到下一次journal log的提交,这时你能够尝试增大journal log的commit频率。
![mongodb官网文档阅读笔记:write concern - 文章图片](/upload/getfiles/0001/2021/4/25/20210425022554312.jpg)
Replica Acknowledged
假设你们的mongodb用到了副本集,写操作也许就须要额外的考虑,默认的设置仅仅要求了主节点的Acknowledged。而在Replica Acknowledged模式下。它会保证全部的写操作都应用到副本集中的全部节点中,只是这里的journal log仅仅须要保证主节点的journal log commit就能够了。![mongodb官网文档阅读笔记:write concern - 文章图片](/upload/getfiles/0001/2021/4/25/20210425022554558.jpg)
Available Write Concern
每次写操作后driver都会自己主动调用getLastError()命令来推断是否发生了写错误以及是否依照设置的writeconcern以后执行,比如db.runCommand( { getLastError: 1, w: 2,j:true, wtimeout:5000 } )就是确认上一次的操作w为2,j为true,wtimeout为5000时,有没有报错。 而db.things.insert({dd:123},{writeconcern:{w:2}})是设置当前插入的SQL的writeconcern。 ?db.setWriteConcern({w:1,wtimeout:3000,j:1})是设置当前的db的writeconcern值;?db.getWriteConcern()是获取当前db的write concern设置;
w?Option
1 默认配置,确保单实例mongod或副本集中的主节点在写操作时acknowled 0 全部的都没有acknowled,可是这时你假设设置了journal commit?acknowled的话,那么写操作依然是acknowled模式 N 首先N>1,N的值表示在副本集中包含主节点在内的须要acknowled的节点数量 majority 保证副本集中大多数节点acknowled<tag set> 保证这个目标副本集的全部节点acknowled
j?Option
j操作确保写操作的数据应用到磁盘上的journal log,值true表示开启,flase表示关闭。副本集中设置为true仅仅能保证主节点上的写操作应用到磁盘的journal log。wtimeout
这个值仅仅针对w的值设置为大于1的场合有效,即仅仅针对副本集环境有效。当发生超时时就会返回一个错误,即使终于数据write成功了。这时mongodb不会回滚已经改动成功的数据。该值设置为0就是不做限制。
内容总结
以上是互联网集市为您收集整理的mongodb官网文档阅读笔记:write concern全部内容,希望文章能够帮你解决mongodb官网文档阅读笔记:write concern所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。