2019独角兽企业重金招聘Python工程师标准>>>

MongoDB提供了一个配置参数:write concern 来让用户自己衡量性能和写安全。分布式数据库中这样的参数比较常见,记得Cassandra中也有一个类似参数,不过那个好像是要写入几个节点返回成功。其实道理都一样分布式的集群环境考虑到性能因素不能确保每个成员都写入后在返回成功,所以只能交给用户根据实际场景去衡。

Mongodb提供了以下几个可选设置:Errors Ignored,Unacknowledged,Acknowledged,Journaled。列出的级别分别是安全性一次增强的。解释一下每一个选项的特点。

Errors Ignored [-1]

一个比较不靠谱级别,发出谢写令后就不再理会,即使现在有网络问题也不会发出异常。其实这个官方已经明确给出了警告,闲着没事别用这个。

Unacknowledged [0]

这个级别也属于比较低的级别,以前这个级别是驱动配置的默认级别,不过后来调整成Acknowledged级别。在这个级别下,这个驱动会根据当前系统的网络配置进行网络问题的检测,不等待Mongd的返回。代码测试:本地网络问题是否有异常?本地网络无问题是远程server问题是否异常?

Acknowledged [1]

这个级别算是中等级别的配置,这个级别能够拿到mongod的返回信息:dupkey Error,以及一些其他的问题。现在这个级别是驱动的默认级别,估计是10gen公司发现好多人评价Mongodb不靠谱后改的。一般系统这个级别也就够用了。由于默认级别是Acknowledged,内部用getLastError方法检查是否写入成功的时候是也不用设置任何参数,对与Replset来说可以在配置中进行getLastErrorDefaults的配置,如果没有的话默认则是Master收到就ok。

Journaled [1, journal=true ]

等到操作记录到Journal Log中才返回操作结果,也就是下一次JournaledLog提交。这种情况可以容忍服务器突然宕机,断电等意外的恢复。出去上边的配置还要在启动mongod的时候加上journaling 参数确保可以使用。commitlog提交间隔时间是可以配置的,单磁盘设备(physical volume, RAID device, or LVM volume)每100ms提交一次,和数据文件刷出相同频率,日志和数据分开磁盘设备的30ms提交一次。在插入数据是如果使用{j:true}则会缩短到已配置的默认设置1/3的时间。

Replica Acknowledged [>1 or majority]

在副本集中如果w设置为2的话则至少已经吸入到一个secondary中,我猜测写入secondary这个级别是Acknowledged级别,majority是多个secondary已经写入。如果手贱设置w参数大于replset中需要复制的secondarys的话,操作就一直等待直到达到已写入数据的服务器数量符合要求,也可以设置timeout值来指明最长等待时间。{ getLastError: 1, w: 2, wtimeout:5000 }

refert to :

http://www.kankanews.com/ICkengine/archives/106138.shtml

http://docs.mongodb.org/manual/core/write-concern/

http://docs.mongodb.org/manual/core/replica-set-write-concern/

转载于:https://my.oschina.net/dacoolbaby/blog/352946

了解一下MongoDB中的写关注(write concern)相关推荐

  1. 不想写脚本清理 mongodb 中的垃圾数据,ttlIndex 能帮到你!

    mongodb一直都在不断的更新,不断的发展,那些非常好玩也非常实用的功能都逐步加入到了mongodb中,这不就有了本篇对ttlindex的介绍,刚好我们的生产业务场景中就有一个案例... 一:案例分 ...

  2. python保存模型的路径怎么写_使用python在MongoDB中保存机器学习(ML)和深度学习(DL)模型...

    我们知道,当我们训练机器学习或深入学习模型时,我们必须保存训练过的模型,以便将来进行预测.现在的训练模型非常昂贵,所以如果我们能够保存它们并将其用于解决其他一些问题.例如,一个训练过的能够识别汽车的神 ...

  3. kettle增加字段报错_【实战】使用 Kettle 工具将 mysql 数据增量导入到 MongoDB 中

    每一个成功人士的背后,必定曾经做出过勇敢而又孤独的决定. 放弃不难,但坚持很酷~ 最近有一个将 mysql 数据导入到 MongoDB 中的需求,打算使用 Kettle 工具实现.本文章记录了数据导入 ...

  4. 浅析Nginx中各种锁实现丨Nginx中手写一个线程池丨Nginx中反向代理,正向代理,负载均衡,静态web服务丨C++后端开发

    学会nginx中锁的使用,让你对锁豁然开朗 1. 反向代理,正向代理,负载均衡,静态web服务 2. nginx 中 accept 锁实现 自旋锁 信号量 3. nginx 中 线程池 实现以及详解虚 ...

  5. MongoDB中的聚合管道($lookup多表关联查询、$unwind、$match、$project)

    MongoDB中的聚合管道($lookup多表关联查询.$unwind.$match.$project) 管道的概念 聚合框架 $lookup的功能及语法 主要功能 基本语法 例子 说明 $unwin ...

  6. mongoDB中聚合(aggregate)的具体使用

    mongoDB中聚合(aggregate)的具体使用 - 简书 最近在学习mongoDB的使用,本文来介绍一下其中aggregate的具体使用 先来看一个分组的例子,本例中$group是一个管道操作符 ...

  7. 利用java多线程向MongoDB中批量插入静态文件

    第一步.开发环境: win7 64位(注:MongoDb在32位windows上有数量限制(2G),详见官方文档) Mongodb3.2 mongofb_java_driver 3.2.2 第二部.安 ...

  8. Hhadoop-2.7.0中HDFS写文件源码分析(二):客户端实现(1)

    一.综述 HDFS写文件是整个Hadoop中最为复杂的流程之一,它涉及到HDFS中NameNode.DataNode.DFSClient等众多角色的分工与合作. 首先上一段代码,客户端是如何写文件的: ...

  9. C++17中那些值得关注的特性(上)

    C++17标准在2017上半年已经讨论确定,正在形成ISO标准文档,今年晚些时候会正式发布.本文将介绍最新标准中值得开发者关注的新特新和基本用法. 总的来说C++17相比C++11的新特性来说新特性不 ...

最新文章

  1. Android SO逆向2-实例分析
  2. SpringBatch 自定义ItemReader和可重新启动Reader(十五)
  3. 如何在Windows 10上限制Wi​​ndows Update的下载带宽
  4. html中foreach遍历list,foreach遍历----for(object o: list)
  5. AVL树(Java实现)
  6. 通过iOS 9 SFSafariViewController提供完整的Web浏览体验
  7. one大白陪你聊聊2021年总结
  8. UVA11645 Bits【位运算+大数】
  9. 网络风险成为中国企业新挑战
  10. Theorem,Proposition, Lemma 和 Corollary是什么 区别关系
  11. LAYA和TypeScript制作H5入门——页面制作
  12. emwin模拟器编译环境搭建及helloworld例程
  13. 智慧校园管理系统,精细化+网格化
  14. 实验室预约管理系统(Java+SSH+Web+MySQL+ofbiz系统)
  15. Uncaught ReferenceError: UE is not defined at zh-cn.js:8
  16. mysql concat 不同字符集_字符编码 - 如何将整个MySQL数据库字符集和排序规则转换为UTF-8?...
  17. 计算机软件水平考试题,计算机程序员软件水平考试试题
  18. 地下城与勇士(DNF)万年雪山副本(冰心少年、利库天井、山脊、白色废墟、布万加的修炼场、冰雪宫殿、斯卡萨之巢)(童年的回忆)
  19. linux neo4j 教程,Neo4j 入门教程 - 安装
  20. 深度学习与计算机视觉 看这一篇就够了

热门文章

  1. Win2003下Exchange2003部署图解之六
  2. AOC的显示器真的很烂
  3. Xamarin.Forms教程下载安装Windows版的Xamarin开发工具
  4. 方舟服务器如何修改恐龙,方块方舟人物及驯养恐龙属性修改教程 人物属性怎么修改_游侠网...
  5. java 反射 速度_Java反射获取实例的速度对比分析
  6. spark官方文档_Apache Spark 文档传送门
  7. 你知道吗?脑机接口训练会对大脑物质结构和功能产生影响
  8. 【脑电信号分类】脑电信号提取PSD功率谱密度特征
  9. 从运动脑机接口到情绪脑机接口:运动脑机接口
  10. 黑客大神用什么杀毒?Windows自带的就够,只是加了亿点微小的强化