【分布式数据一致性三】MongoDB读写一致性

MongoDB  /  houtizong 发布于 3年前   263

本系列文章结合MongoDB,探讨分布式数据库的数据一致性,这个系列文章包括:

  • 数据一致性概述与CAP
  • 最终一致性(Eventually Consistency)
  • 网络分裂(Network Partition)问题
  • 多数据中心(Multi Data Center)
  • 多个写者(Multi Writer)最终一致性
  • 一致性图表(Consistency Chart)

数据一致性概述与CAP

 对于分布式数据库来说,选择合适的数据一致性模型对于分布式数据库至关重要。合适的一致性模型是指,在满足高并发读写能力的同时能够满足某种程度的数据一致性,这种一致性的达成,需要读写数据的进程(或者更细粒度,线程)和数据库本身建立读写数据的方式和协议(contract)以期在双方的共同协作下达成一致性。 在本系列文章中,我们将就数据一致性这个话题进行深入的探讨,讨论对于特定的需求,什么样的模型是合适的。

 

CAP

在分布式环境下,有三个指标是分布式系统希望达到的,即数据一致性(Consistency)、数据可用性(Availability)以及分区忍受性(Partition)。CAP理论指出在分布式环境这三个指标是无法同时满足,最多只能满足其中的两个。在分布式环境下,网络分裂是不可避免的,因此必须忍受网络分裂。因此CAP理论的本质是说,我们不能同时拥有完美的数据一致性和百分之百的可用性。

通俗的讲,CAP理论可以概括为,如果网络出现问题,那么数据库就不能完美的工作(Won't work), Won't work意味着或者数据不可用或者数据

 

 

更确切一点,一致性的真正含义是什么呢?学术领域one copy serializability或者linearability。如果执行了一系列了的操作或者事务,

 

一个不太正式的思考权衡的方式是:我能读取脏数据并对脏数据进行操作吗?我能想写就写吗?

 

 

请勿发布不友善或者负能量的内容。与人为善,比聪明更重要!

留言需要登陆哦

技术博客集 - 网站简介:
前后端技术:
后端基于Hyperf2.1框架开发,前端使用Bootstrap可视化布局系统生成

网站主要作用:
1.编程技术分享及讨论交流,内置聊天系统;
2.测试交流框架问题,比如:Hyperf、Laravel、TP、beego;
3.本站数据是基于大数据采集等爬虫技术为基础助力分享知识,如有侵权请发邮件到站长邮箱,站长会尽快处理;
4.站长邮箱:[email protected];

      订阅博客周刊 去订阅

文章归档

文章标签

友情链接

Auther ·HouTiZong
侯体宗的博客
© 2020 zongscan.com
版权所有ICP证 : 粤ICP备20027696号
PHP交流群 也可以扫右边的二维码
侯体宗的博客