分散式资料库:分散式理论

分区容错性(Partition Tolerance)是分散式资料库最重要的特性,"BASE理论"以"最终一致性(Eventual consistency)"替代"强一致性(Strict Consistency)"获得了高可用性及高扩展性,是分散式资料库的基本思想。

  • ACID
    • 原子性(Atomicity)
      强调交易的不可分割性,交易中的多个操作要嘛全部成功,要嘛全部失败回到上一个一致性状态。
    • 一致性(Consistency)
      资料异动的基本是交易,在完整的交易流程中,资料库的完整约束没有被破坏。
    • 隔离性(Isolation)
      提供"可序列化"和"可恢复性",确保平行交易之间不会互相影响,防止资料不一致性发生。
      • 平行错误
        • 脏读(Dirty reads)
          较早的更新可能出现在後来更新之前的结果集之中。
        • 不可重复读(Non-Repeatable Reads)
          在一次交易中同一资料数读取2次却得到不同结果。
        • 幻影读(Phantom Read)
          在交易中2个完全相同的查询语句执行得到不同的结果集。
      • 隔离级别
        • 序列化(Serializable)
          要求在选定对象上的读写时锁上一个「范围锁」(Range-Locks)直到交易束後才能释放。
        • 可重复读(Repeatable Reads)
          要求在选定对象上的读写时锁上「读锁」(Read Locks)和「写锁」(Write Locks)直到交易结束後才能释放。
        • 提交读(Read Committed)
          要求在选定对象上的读写时锁上「写锁」(Write Locks)直到交易结束後才能释放。
        • 未提交读(Read Uncommited)
          交易可以看到其他事务「尚未提交(Committed)」的修改。
    • 持久性(Durability)
      交易造成的任何资料异动都会被持久性的储存在资料库中。
  • CAP
    • 一致性(Consistency)
    • 可用性(Availability)
    • 分区容错性(Partition Tolerance)
  • BASE
    • 基本可用(Basically Available)
    • 软状态(Soft State)
    • 最终一致性(Eventual Consistency)

<<:  [区块链&DAPP介绍 Day13] Solidity 教学 - contracts-2

>>:  Day 21 ASP.NET Core Identity

Day 25-Unit Test 应用於 Async Code-1 (情境及应用-5)

Unit Test 应用於 Async Code-1 - 前言 今天的文章内容是参考於 Testin...

Day27 - 云端交易主机 - Ubuntu SSH登入 & 远端桌面

云端交易主机 - Ubuntu SSH登入 & 远端桌面 SSH登入 本机端建立SSH金钥 ...

30. 铁人赛心得

铁人赛心得 这是第二次参加铁人赛,第一次主题是javasript的入门学习,第二次是比较有一点难度的...

[Day19] 长尾问题:案例分析

从昨天的文章中,我们能知道长尾问题在分析用户体验是十分重要的。 在今天,我们将会从现正运行的Act...

Day 5 - 部署 Home Lab 网路 - 下

那昨天安装好路由器後,我们要来架设一下 VPN。 在此之前,我们今天先来说明一下 VPN 是什麽。 ...