DDBS BASE

作者: 西西弗斯不说话 | 来源:发表于2019-06-18 15:13 被阅读0次

BASE

BASE:Basically Available(基本可用),Soft state(软状态), Eventually consistent(最终一致性)。

Base 理论是对 CAP 中一致性和可用性权衡的结果,其来源于对大型互联网分布式实践的总结,是基于 CAP 定理逐步演化而来的。其核心思想是:

既然无法做到强一致性(Strong consistency),但每个应用都可以根据自身的业务特点,采用适当的方式来使系统达到最终一致性(Eventual consistency)。

Basically Available(基本可用)

什么是基本可用呢?假设系统,出现了不可预知的故障,但还是能用,相比较正常的系统而言:

  1. 响应时间上的损失:正常情况下的搜索引擎 0.5 秒即返回给用户结果,而基本可用的搜索引擎可以在 1 秒作用返回结果。
  2. 功能上的损失:在一个电商网站上,正常情况下,用户可以顺利完成每一笔订单,但是到了大促期间,为了保护购物系统的稳定性,部分消费者可能会被引导到一个降级页面。

Soft state(软状态)

什么是软状态呢?相对于原子性而言,要求多个节点的数据副本都是一致的,这是一种 “硬状态”。

软状态指的是:允许系统中的数据存在中间状态,并认为该状态不影响系统的整体可用性,即允许系统在多个不同节点的数据副本存在数据延时。

Eventually consistent(最终一致性)

上面说软状态,然后不可能一直是软状态,必须有个时间期限。在期限过后,应当保证所有副本保持数据一致性。从而达到数据的最终一致性。这个时间期限取决于网络延时,系统负载,数据复制方案设计等等因素。

最终一致性分为 5 种

  1. 因果一致性(Causal consistency)
    指的是:如果节点 A 在更新完某个数据后通知了节点 B,那么节点 B 之后对该数据的访问和修改都是基于 A 更新后的值。于此同时,和节点 A 无因果关系的节点 C 的数据访问则没有这样的限制。
  2. 读己之所写(Read your writes)
    这种就很简单了,节点 A 更新一个数据后,它自身总是能访问到自身更新过的最新值,而不会看到旧值。其实也算一种因果一致性。
  3. 会话一致性(Session consistency)
    会话一致性将对系统数据的访问过程框定在了一个会话当中:系统能保证在同一个有效的会话中实现 “读己之所写” 的一致性,也就是说,执行更新操作之后,客户端能够在同一个会话中始终读取到该数据项的最新值。
  4. 单调读一致性(Monotonic read consistency)
    单调读一致性是指如果一个节点从系统中读取出一个数据项的某个值后,那么系统对于该节点后续的任何数据访问都不应该返回更旧的值。
  5. 单调写一致性(Monotonic write consistency)
    指一个系统要能够保证来自同一个节点的写操作被顺序的执行。

然而,在实际的实践中,这 5 种系统往往会结合使用,以构建一个具有最终一致性的分布式系统。实际上,不只是分布式系统使用最终一致性,关系型数据库在某个功能上,也是使用最终一致性的,比如备份,数据库的复制过程是需要时间的,这个复制过程中,业务读取到的值就是旧的。当然,最终还是达成了数据一致性。这也算是一个最终一致性的经典案例。

相关文章

  • DDBS BASE

    BASE BASE:Basically Available(基本可用),Soft state(软状态), Even...

  • DDBS ZAB

    我们之前讲述了 Paxos 一致性算法,现在我们来看ZAB 协议,该协议应该是所有一致性协议中生产环境中应用最多的...

  • DDBS CAP

    CAP 开门见山,CAP理论是说对于分布式数据存储,最多只能同时满足一致性(C,Consistency)、可用性(...

  • DDBS Paxos

    Paxos 有点类似我们之前说的 2PC,3PC,但是解决了他们俩的各种硬伤。该算法在很多大厂都得到了工程实践,比...

  • DDBS 缓存架构

    本文主要讨论这么几个问题:(1)“缓存与数据库”需求缘起(2)“淘汰缓存”还是“更新缓存”(3)缓存和数据库的操作...

  • DDBS 分片方式

    首先介绍三种分片方式:hash方式,一致性hash(consistent hash),按照数据范围(range b...

  • DDBS 2PC

    为了使系统尽量能够达到 CAP,于是有了 BASE 协议,而 BASE 协议是在可用性和一致性之间做的取舍和妥协。...

  • DDBS 3PC

    为了弥补二阶段提交的缺点,研究者们在他的基础上,提出了三阶段提交。 3PC(三阶段提交) 3PC,全称 “thre...

  • Base系列加密解密

    Base编码系列:[Base64][Base32] [Base16] [Base64] Base64编码是使用64...

  • c++ 构造函数调用virtual成员函数

    class Base { public: Base() { std::cout << "Base\n"; } ~B...

网友评论

    本文标题:DDBS BASE

    本文链接:https://www.haomeiwen.com/subject/igefqctx.html