CAP理论与实践概要1
CAP:理论与实践
内容大纲
CAP的历史沿革
CAP原理介绍
CAP,Pick Two?
CAP权衡中的经济考量
CAP与ACID的关系
分区只是另一段Code Path
CAP在实践中的应用
参考资料
CAP原理的历史
1997年,Fox & Brewer提出BASE概念
《Cluster-Based Scalable Network Services》
1999年,Fox Brewer 提出CAP Principle
《Harvest, Yield, and Scalable Tolerant Systems》
2000年,PODC的Keynotes,正式提出CAP
《Towards Robust Distributed Systems》
2002年,Seth Gilbert Nancy Lynch证明CAP
《Brewer’s Conjecture and the Feasibility of Consistent, Available, Partition-Tolerant Web Services》
CAP流行的几大推手
OSDI 2006,Google发布Bigtable的论文
Bigtable: A Distributed Storage System for Structured Data
SOSP 2007,Amazon发布Dynamo的论文
Dynamo: Amazon’s Highly Available Key-value Store
2007年8月,Amazon的Werner Vogels推介CAP
Availability Consistency
2007年10月,Werner Vogels撰文介绍最终一致性
Eventually Consistent
2008年1月,Ebay的架构师Dan Prichett介绍BASE
BASE: An Acid Alternative
CAP Theorem
对于共享的数据系统,仅能同时满足2项:
Consistency (多节点看到数据的单一/同一副本)
Full Consistency?
Casual Consistency?
Timeline Consistency?
Eventual Consistency?
Availability (系统总是可以执行变更操作)
牺牲10秒钟的A?牺牲10分钟的A?
Partition Tolerance
在广域网的情况下,分区不可避免
= consistency vs. availability
CAP ,Pick Two?
Traditional databases guarantee consistency.
The CAP theorem tells you that you cannot have consistency, availability, and fault-tolerance at the same time.
But we want to build scalable databases, so we forget about consistency.
Oh and by the way, who needs consistency anyway?
面对P,真的必须牺牲一致性吗?
新浪微博可以丢吗?
淘宝的商品信息可以暂时不一致吗?
12306提供的库存信息可以不准确吗?
比特币(bitcoin)可以不准确吗?
中行信用卡可以不一致吗?
工行可以在主机故障时,牺牲一致性吗?
Reliability $$
数据状态机的分类
何谓状态机
简单的理解是,计算机中会发生变化的数据都是状态机,这个数据的值不同可能会带来不同的后果。
分类:按照三个维度:时间、信息含金量、变更频率
持续时间
信息含金量
变更频繁度
例子
瞬时
高
少
Shopping Card Session(分)
瞬时
低
少
Login Cookie(分)
中等时长
高
少
Ecommerce Billing(天)
中等时长
中
少
Product Catalog(年)
中等时长
高
多
Flight/Train Inventory (月)
无限时长
中
少
User Profile(年)
无限时长
高
多
Bank Account Balance(年))
其实,CAP并没有声明…
放弃一致性
不一致应该仅仅是个例外
很多系统牺牲的内容远远超过必要!
放弃事务 (ACID)
需要调整C与I的预期 (仅仅)
不要使用SQL
很多NOSQL系统中也开始支持SQL
声明性语言(SQL)与CAP配合良好
CAP与ACID
当系统没有Partition时:
支持Full ACID
当系统出现Partition时:
Atomic:不同
您可能关注的文档
- cache lru 算法概要1.pptx
- CA eBay上架操作手册及进阶讨论概要1.docx
- C7620车床主传动系统设计说明书 2概要1.doc
- CAD2000第5讲二维作图技巧与显示控制概要1.ppt
- CAD2011快捷键概要1.doc
- C1P1 Reading 八下英语第一课 上海教育出版社概要1.ppt
- cad 应用技术基础 第6章 扩展工具概要1.ppt
- Cadence_Skill_语法详解(中文)概要1.doc
- Cadence 应用注意事项概要1.docx
- Cadence总结概要1.docx
- 2025年全国演出经纪人员资格认定考试试卷带答案(研优卷).docx
- 2025年全国演出经纪人员资格认定考试试卷完整版.docx
- 2025年全国演出经纪人员资格认定考试试题库及完整答案.docx
- 2025年全国演出经纪人员资格认定考试试卷完美版.docx
- 2025年全国演出经纪人员资格认定考试试卷含答案(实用).docx
- 2025年全国演出经纪人员资格认定考试试卷及答案(各地真题).docx
- 2025年下半年内江市部分事业单位公开考试招聘工作人员(240人)备考题库附答案.docx
- 2025年全国演出经纪人员资格认定考试试卷及答案1套.docx
- 2025年下半年四川成都市郫都区面向社会引进公共类事业单位人员2人备考题库最新.docx
- 2025年下半年内江市部分事业单位公开考试招聘工作人员(240人)备考题库附答案.docx
原创力文档

文档评论(0)