MongoDB 可调节的一致性,其他数据库都不行系列 (白皮书 翻译)--1

开头还是介绍一下群,如果感兴趣PolarDB ,MongoDB ,MySQL ,PostgreSQL ,Redis, Oceanbase, Sql Server等有问题,有需求都可以加群群内有各大数据库行业大咖,CTO,可以解决你的问题。加群请联系 liuaustin3 ,(共2100人左右 1 + 2 + 3 + 4 +5) 新人奖直接分配到5群,另欢迎 OpenGauss 的技术人员加入。

0166209678579a803a7625f75b872d53.png

这里翻译一篇关于 mongodb 数据一致性的白皮书,这是一份有10页的文档。基于数据一致性的部分内容,在其他的传统数据库,缓存数据库都不存在,也是一个让传统DBA 想不明白的部分,所以进行翻译。

d3df7b5f67f4c1e2f3120ef04f4e65b2.png

翻译:

摘要:分布式数据库提供了高可用性,但对于客户端应用程序访问的成本会比较高,因要始终保证数据访问的强一致性。MongoDB是面向文档的数据库,其中复制系统提供了多种的一致性级别,允许客户端应用程序在一致性和延迟之间进行选择。本文讨论了MongoDB 复制中可调整的一致性模型及其对应用程序开发人员的使用中的便捷性,这里对于mongodb复制集系统中如何保证一致性级别的多种方式在可预估以及回滚协议中如何实现进行了论述,同时我们还提供这些一致性级别在应用中的案例和研究,以证明他们的性能优势和表现形式。


分布式数据库中提出了一系列在单节点数据库系统中不存在,弱一致性模型,部分故障模式和网络分区是一些必须被应用开发人员和系统设计者理解和解决的问题,MongoDB 复制集主要的目标是提供一个高可用的分布式数据存储,让用户明确在复制集系统中给出一个权衡的选择,这些在单节点系统中并不需要考虑,并发和分布式系统的一致性是有相关的一些标准并可以进行线性化,这样的系统允许客户使用中将其视为一个单一的,高可用节点,但在实践中分布式系统中药保持线性的一致性成本很高需要提供一个开发性的的权衡模式,在许多情况下,应用程序可以容忍端在的不一致,因它可能不必要承担强一致的高成本,这些类型的权衡在PACELC 定理中进行了充分的明确,这个定理是CAP原理的扩展,如在一个复制集数据库系统中,如果系统从未发生故障,对所有操作都付出完整仲裁写入的成本将是不必要的,当然,如果系统从未发生切换故障,部署一个复制集的数据库系统将不是必要的,同时需要了解发生故障的频率,并且如何与数据库提供的一致性所契合,促使Mongodb采用可调整的一致性方式在应用中使用是我们需要掌握的。

在Mongodb中提供了与其他数据库无法提供的一致性选项,MongoDB提供了writeConcern 和 readConcern级别,这是可以在每个数据库操作设计的参数,WriteConcern指定写入数据库中的持久性的满足,较高级别的writeconcern 级别提供了更强的保证,但会导致每个操作的延迟成本更高。较低的writeconcern 级别减少了延迟,但增加了写入可能不会变的永久持久的可能性,同样的readConcern确定返回给客户端的数据必须满足持久性或一致性的保证,较强的readConcern提供了对返回数据在多借点上的一致性的保证,但增加了返回的数据比最新的数据可能更旧的可能性,较强的readconcern也可能导致更高的延迟以等待数据变的一致后,提供数据,较弱的readconcern可以更好的提供返回数据为最新的可能性,但存在数据可能尚未持久化的风险。

读写的一致性操作由默认的设置,但也可以基于每个单元操作指定,并对于某些操作使用更强的一致性保证不会影响更低一致性的运作和其他操作的性能,这使应用开发人员可以明确的决定较细颗粒度水平上要进行的性能权衡,最大限度的将可以容忍数据强一致与可以最终性一致应用部署在同一个mongodb数据库的可能,不必为所有的写操作支付较高的延迟的成本,在没有故障或网络分区的情况下,写入最终会变得持久,因此客户可以确信他们的大多数写入都不会丢失,当出现故障时,他们可以使用其他的机制来检查和协调任何的数据暂时不一致的情况,如果故障相对较少,这些机制可能是为了极大的改善常见的应用程序性能而付出的一点成本,对于无法容忍这种不一致的高敏感度程序,可以选择以更高的write 和 read concren 级别来进行操作,以始终确保安全,此外应用程序可以将某些操作,分类为关键和非关键,并因此适当地设置他们写入和读取关注的级别。

随着多文档事务添加,MongoDB添加了readconcern级别,为事务提供了快照隔离保证,这种读取关注级别提供了一种猜测性行为,也就是读取和写入任何的数据的持久性保证推迟到事务的提交时间,事务提交操作接受一个写关注级别,该级别决定了事务及其组件读取和吸入操作的持久性的保证,事务一致性保证的详细信息将在后面的章节介绍,。

此外MONGODB 3.6中的因果一致性,为客户端提供了一组额外的一致性保证,本文的范围不包括mongodb中因果一致性的详细讨论,但党与各种读取和写入关注级别组合的时候,他允许用户将其一致性保证的更加精细。

491af5680ff7ef95d53cfe343a379026.png

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/529417.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

STM32CubeIDE基础学习-STM32CubeIDE软件工程文件拷贝粘贴

STM32CubeIDE基础学习-STM32CubeIDE软件工程文件拷贝粘贴 前言 在后面开发程序时,往往不需要再重新新建工程的了,可以直接在原有的工程基础上直接复制粘贴新增功能就可以了。 具体的操作方法步骤如下介绍: 第一步:找到一个原有的…

3d视觉笔记 | 神经辐射场NeRF(Neural Radiance Fields)

NeRF概念 NeRF(Neural Radiance Fields,神经辐射场)是一种用于3D场景重建和图像渲染的深度学习方法。它由Ben Mildenhall等人在2020年的论文《NeRF: Representing Scenes as Neural Radiance Fields for View Synthesis》中首次提出。NeRF通过…

Aigtek功率放大器的构成要素包括哪些

功率放大器是电子设备中常见的元件,用于增强信号的功率。它由多个构成要素组成,每个要素都在确保放大器高效性能方面发挥着重要作用。下面来介绍功率放大器的构成要素。 输入级:输入级是功率放大器的第一个部分,用于接收输入信号并…

基于51单片机的智能散热风扇设计9.86

摘要 基于51单片机的智能散热风扇的设计主要可以分为监测单元、控制单元和中央处理单元。本系统采用单片机STC89C52RC作为主控制器,采用数字型温度传感器DS18B20作为监测单元,主要就是采集温度数据,通过一系列的计算转化成实际温度数值。为了…

C++ 队列

目录 队列的应用场景 1、429. N 叉树的层序遍历 2、 103. 二叉树的锯齿形层序遍历 3、662. 二叉树最大宽度 4、515. 在每个树行中找最大值 队列的应用场景 广度优先搜索(BFS):队列是广度优先搜索算法的核心数据结构。在BFS中&#xff…

allegro PCB设计心得笔记(二) -- ERROR(SPMHUT-144): Illegal arc specification

使用Allegro PCB Editor设计PCB,其中使用了中文丝印,设计完成后,进行Tools -> Database Check,提示如下错误: 对PCB文件进行反复检查,也没有找到具体问题,但是删除中文丝印封装后&#xff0c…

后悔没有早点看到这份产品说明书模板

产品说明书是连接产品与消费者的桥梁,它对产品具有多重好处。一份设计精良、内容准确的产品说明书有助于消费者全面了解产品,确保用户正确使用产品;减少消费者因误操作导致的故障,降低企业的售后服务成本;增强消费者对…

JAVA开发常见小问题整合

文章目录 1:身份证工具类相关方法1.1 身份证脱敏处理 2:字符串补零处理(此处是JAVA类的方法,并无引用StrUtil)3:springboot前后端分离,后端返回json字符串带斜杠问题处理4:WebUploader 文件上传组件 -编辑回…

Java学习笔记15——类型转换(基本数据类型)

Java语言,要求严格声明变量的类型。数据类型的转换是在所赋值的数据的数值类型和被变量的数据类型不一致时发生的,它需要从一种数据类型转换成另一种数据类型。 在Java中,对于除了boolean类型以外的7种基本类型,在把某个类型的值…

四川易点慧电子商务有限公司抖音小店安全正规

在如今网络购物日益普及的时代,消费者对于购物平台的选择越来越挑剔。四川易点慧电子商务有限公司抖音小店以其安全正规的经营模式,赢得了广大消费者的信赖和好评。本文将为您详细介绍四川易点慧电子商务有限公司抖音小店的优势和特点,让您在…

​​​​​​​ARCGIS API for Python进行城市区域提取

ArcGIS API for Python主要用于Web端的扩展和开发,提供简单易用、功能强大的Python库,以及大数据分析能力,可轻松实现实时数据、栅格数据、空间数据等多源数据的接入和GIS分析、可视化,同时提供对平台的空间数据管理和组织管理功能…

大语言模型系列-GPT-3.5(ChatGPT)

文章目录 前言一、GPT-3.5的创新点二、GPT-3.5的训练流程SFT数据集RM数据集PPO数据集 三、ChatGPT的诞生总结 前言 《Training language models to follow instructions with human feedback,2022》 前文提到了GPT-3的缺点,其中最大的问题是&#xff1…