mongodb4.0学习总结三(write concern)
write concern描述mongodb对单示例,副本集或分片集写入操作的确认请求级别。在分片集mongos实例会传递write concern到其它实例。
note:
对于多文档事务,在事务级别设置write concern,不要在单独的操作级别,不要对一个事务的单独的写操作设置write concern。
write concern 规范
包括以下字段:
{ w: <value>, j: <boolean>, wtimeout: <number> }
- w:指定写操作传播到的成员数量
比如:
w=1(默认):则要求得到写操作已经传播到独立的Mongod实例或副本集的primary成员的确认
w=0:则不要求确认写操作,可能会返回socket exceptions和 networking errors
w="majority":要求得到写操作已经传播到大多数具有存储数据具有投票的(data-bearing voting )成员(也就是 members[n].votes
值大于0的成员)的确认
- j:要求得到Mongodb的写操作已经写到硬盘日志的确认
比如:
j=true:要求得到Mongodb(w指定的实例个数)的写操作已经写到硬盘日志的确认。j=true本身并不保证因为副本集故障而不会回滚。
- wtimeout:指定write concern的时间限制,只适用于w>1的情况
wtimeout在超过指定时间后写操作会返回error,即使写操作最后执行成功,当这些写操作返回时,MongoDB不会撤消在wtimeout时间限制之前执行成功的数据修改。
如果未指定wtimeout选项且未指定write concern级别,则写入操作将无限期阻止。 指定wtimeout值为0等同于没有wtimeout选项。
Acknowledgment Behavior
Standalone:
j is unspecified
|
j:true
|
j:false
|
|
---|---|---|---|
w: 1
|
In memory | On-disk journal | In memory |
w: "majority"
|
On-disk journal if running with journaling | On-disk journal | In memory |
Replica Sets
w: "majority"
Any data-bearing voting member of the replica set can contribute to write acknowledgment of "majority"
write operations.
j is unspecified
|
Acknowledgment depends on the value of
|
---|---|
j: true
|
Acknowledgment requires writing operation to on-disk journal. |
j: false
|
Acknowledgment requires writing operation in memory. |
w: <number>
Any data-bearing member of the replica set can contribute to write acknowledgment of w: <number> write operations.
The following table lists when the member can acknowledge the write based on the j value:
j is unspecified
|
Acknowledgment requires writing operation in memory (j:false ).
|
---|---|
j: true
|
Acknowledgment requires writing operation to on-disk journal. |
j: false
|
Acknowledgment requires writing operation in memory. |
mongodb4.0学习总结三(write concern)相关推荐
- mongodb4.0学习总结二(read concern)
mongodb中的read concern可以用来控制读副本集或分片集时的一致性和隔离性. 通过使用read concern和write concern可以适当的调整一致性和可用性保证级别,比如等待更 ...
- Flexe2.0 学习笔记三(得用STATE实现一个组件登录窗体)
<?xml version="1.0" encoding="utf-8"?> <mx:Panel xmlns:mx="http:// ...
- Tensorflow2.0学习(三) — Keras基础应用(Cifar-10图像分类)
关于Cifar-10数据集大家应该也比较熟悉,属于比较经典的入门分类的数据集.这里我们不采用Cifar-100,因为类别太多训练时间过长,因此用10类别的Cifar-10代替,这个数据集包括:飞机.汽 ...
- Servlet3.0学习总结(三)——基于Servlet3.0的文件上传
在Servlet2.5中,我们要实现文件上传功能时,一般都需要借助第三方开源组件,例如Apache的commons-fileupload组件,在Servlet3.0中提供了对文件上传的原生支持,我们不 ...
- ActionScript 3.0 学习笔记三
AS 3.0 读出一个 xml 中的数据至 Aarry 中 xml 格式: <? xml version="1.0" encoding="utf-8" ? ...
- jmeter web服务器协议,【JMeter4.0学习(三)】之SoapUI创建WebService接口模拟服务端以及JMeter测试SOAP协议性能测试脚本开发(示例代码)...
目录: [阐述]:首先应该遇到了一个共同的问题,JMeter3.2之后就没有WebService(SOAP) Request,后来经过查询网上资料得知其实可以用HTTP请求来操作,结果是一样的. [步 ...
- Microsoft .NET Pet Shop 4.0 学习之旅(三) - 项目的引用关系2
Microsoft .NET Pet Shop 4.0 学习之旅(三) 项目的引用关系2 <?xml:namespace prefix = o ns = "urn:schemas-mi ...
- TensorFlow2.0 学习笔记(三):卷积神经网络(CNN)
欢迎关注WX公众号:[程序员管小亮] 专栏--TensorFlow学习笔记 文章目录 欢迎关注WX公众号:[程序员管小亮] 专栏--TensorFlow学习笔记 一.神经网络的基本单位:神经元 二.卷 ...
- WF4.0 基础篇 (三十 完) 对学习WF的一点建议
从09年10月份 NET4.0 Bata 2发布后,我就开始写[WF4.0 基础篇]这个系列,经历了5个多月终于在NET4.0正式发布前将这个系列完成了 这段时间与一些对WF4.0感兴趣的公司与开发人 ...
最新文章
- python image stiching_Python自然语言处理,词云图生成
- vue连线 插件_vue 插件集合
- 一个C#睡觉前的夜晚
- Flink-on-yarn
- Android --- 消息模式Toast.makeText.show()的几种用法总结
- MINA核心结构和处理消息的逻辑流程
- docker container DNS配置介绍和源码分析
- C++对象在内存中的布局
- 线程挂起 阻止有什么区别c#
- 《数字图像处理 第三版》(冈萨雷斯)——第十二章 目标识别
- 商业计划书PPT模板
- 卸载WPS后office文档图标不能正常显示和WPS网盘图标无法删除
- HDU-5773 The All-purpose Zero(LIS变形)
- 《FaceBoxes: A CPU Real-time Face Detector with High Accuracy》论文笔记
- vue如何定义:全局变量、全局方法
- bat脚本中pause的作用
- 发布订阅模式,在工作中它的能量超乎你的想象
- Java实现打印输出菱形
- Unity3D 片元NDC空间z值(ZBuffer)转View空间z值,公式推导
- win7单机计算机就可打开,月影传说单机版电脑版
热门文章
- 谷氨酰胺合成酶(Glutamine synthetase,GS)试剂盒说明书
- Ai计算机类,【分享】计算机类SCI杂志--人工智能(无重复) - 信息科学 - 小木虫 - 学术 科研 互动社区...
- 蓝桥杯算法提高 快乐司机
- dddd带带弟弟OCR识别验证码
- 走进掌榕:正和岛青年徽商正和塾小组2021年首聚
- [项目管理-18]:项目实施中,项目经理、产品经理、运营经理、设计经理、技术经理、工程经理不同角色的比较
- 【模拟电路】三极管做开关,各个电阻的作用
- 如何“0”预算开始你的代发货电商销售(Dropshipping)?
- 最全介绍的代理模式---第一节-静态代理
- 中文文件名一键批量转换成英文名称