大数据导论 5.1.5大数据存储技术——CAP定理、ACID设计原则和BASE设计原理

  • 格式:pptx
  • 大小:16.92 MB
  • 文档页数:16

下载文档原格式

  / 16
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

DBMS
id amount
1
21
2
32
3
68
1a
对等节点B
分区B 对等节点C
id amount
1
21
2
32
3
68
1b
id amount
1
21
3
49
可用性——任何一个读/ 写请求总是会以成功或 是失败的形式得到响应
2 更新:id3 = 82
×操作失败
3
用户B
CAP定理
用户A
插入: id = 3 amount = 68
Big Data
分区A 对等节点A
DBMS
id amount
1
21
2
32
3
68
1a
对等节点B
分区B 对等节点C
id amount
1
21
2
32
3
68
1b
id amount
1
21
3
49
分区容错――数据库系统
可以容忍通信中断,通过
将集群分成多个竖井,仍
然可以对读/写请求提供服
2 更新:id3 = 82

用户B
1
42
2
29
百度文库对等节点C
用户B 选择 ③ id2 = 29
① 用户A更新一条记录到 对等节点A ② 在其他对等节点更新之 前,用户B从对等节点C请 求相同的记录 ③ 数据库现在处于一个软 状态,且返回给用户B的是 陈旧的数据
Big Data
BASE设计原理
用户A ① 更新 id2 = 23
用户C 选择 ④
id1 = 25 id2 = 33
id3 = 52
id amount 1 21 2 32 3 68
RDBMS
id amount 1 25 2 33 3 18

id amount 1 37 2 42 3 18
③ 回滚
原 用户试图更新三条记录 作为一个事务的一部分
子 性 在两个记录成功更新之
前发生了一个错误
Big Data
感谢聆听!
读 id3 = 49
id amount
1
21
2
32
3
49
对等节点B
id amount 1 21 2 32 3 49
对等节点C
读 id3 = 49
一致性——从任何节点 的读操作会导致相同 的数据跨越多个节点
Big Data
CAP定理
用户A
插入: id = 3 amount = 68
Big Data
分区A 对等节点A
《大数据导论》
CAP定理、ACID设计 原则和BASE设计原理
CAP定理
一致性(Consistency) 可用性(Availability) 分区容错性(Partition tolerance)
Big Data
CAP定理
读 id3 = 49
DBMS 对等节点A
id amount
1
21
2
32
3
49
id2 = 23
DBMS 对等节点A
id amount
1 42
2 23

对等节点B
对等节点C
id amount 1 42 2 29
23
id amount
1
42
2
29
用户B 选择 ③ id2 = 29
① 用户A更新一条记录; ② 记录只在对等节点A中被更 新,但在其他对等节点被更新 之前,用户B请求相同的记录; ③ 数据库现在处于一个软状态。 返回给用户B的是从对等节点C 处获得的陈旧的数据; ④ 然而,数据库最终达到一致 性,用户C得到的是正确的值。
对等节点B
id amount 1 37 2 42 3 18
对等节点C
用户A和用户B接收到数据,
尽管数据库因为一个网络 用户B 故障被分区

Big Data
BASE设计原理
用户A ① 更新 id2 = 23
DBMS 对等节点A
id amount
1
42
2
23

id amount
1
42
2
29
对等节点B
id amount
用户B
id amount 1 37 2 83
× 更新事务: ③ id3 = 72
3
18 ②
RDBMS
然而,在能更新第二记录之前,用户 B尝试去更新同一个记录。
数据库不会允许用户B进行更新,直 到用户A更新完全成功或完全失败
Big Data
ACID设计原则
更新:id2 = 83 ①
id amount
性 型的值
数据库验证检查并拒 绝此更新,因为插入
的值违反了amount列 的约束检查。
Big Data
ACID设计原则
用户A
① 更新事务: id2 = 83 id3 = 63
RDBMS
id amount 1 37 2 42 3 18

隔 离
用户尝试更新两个记录作为事务的一 部分
数据库成功更新第一个记录
BASE设计原理
基本可用(Basically Available) 软状态(Soft State) 最终一致性(Eventual Consistency)
Big Data
BASE设计原理
用户A 读
分区A 对等节点A
DBMS
id amount 1 37 2 42 3 18
分区B
id amount 1 37 2 42 3 18
×操作失败
3
CAP定理
Big Data
一致性
C+A
一致性、
可用性
可用性和
分区容忍
不可兼得
C+P
A+P
分区容忍
ACID设计原则
原子性
一致性
(Atomicity) (Consistency)
隔离
持久性
(Isolation) (Durability)
Big Data
ACID设计原则
用户A
更新事务:

数据库可以回滚任何部 分事务的操作,并且能 使系统回到之前的状态
Big Data
ACID设计原则
RDBMS

× 更新:id3 = abc ②
id amount 1 37 2 42 3 18

一 用varchar类型的值去
致 列数据类型:
更新表的amount列, 这一列应该是浮点类
Id = integer Amount = float
1
37
2
42
3
18
RDBMS
选择:id2 = 83 ⑤
id amount
1
37
2
83 ②
3
18
RDBMS

id amount
1
37
2
83
3
18
RDBMS ④
Big Data
持 久 性
一个用户更新一条记录,作为事 务的一部分
数据库成功更新这条记录
就在这次更新之后出现一个电源 故障
电力恢复后,当用户请求这个记 录时,数据库按这条记录的最后 一次更新去提供服务

相关主题