CAP:理论与实践 童家旺 http://www.dbthink.com/ Weibo: jametong.

Slides:



Advertisements
Similar presentations
Warming up. Heavy! Difficult! Hard! Tired! 1. Easy! 2. Fast! 3. Free!
Advertisements

高考英语阅读分析 —— 七选五. 题型解读: 试题模式: 给出一篇缺少 5 个句子的文章, 对应有七个选项,要求同学们根据文章结构、 内容,选出正确的句子,填入相应的空白处。 考查重点: 主要考查考生对文章的整体内容 和结构以及上下文逻辑意义的理解和掌握。 (考试说明) 选项特点: 主旨概括句(文章整体内容)
讀經教育  第一組:吳碧霞、陳鍾仁  第二組:吳雪華、謝濰萁  第三組:邱國峰、林佳玫. 不論上智下愚 成功的教育 讓每個孩子 都能成為最優秀的人才.
英文教學經驗分享 — 景美國中:陳純鈴老師. 大綱 ~ 個人經驗分享 瞭解課程內容 國中教學經驗分享 準備教師甄試經驗分享.
云计算辅助教学风云录 黎加厚 上海师范大学教育技术系 2010年8月9日.
如何与客户有效沟通 外贸团队销售及管理实战培训 浙江艾力斯特健康科技有限公司
臺中市政府警察局 婦幼警察隊 小隊長吳敏男、謝豐昌
定型化契約現況介紹 -遊留學契約評析 報告人:陳星宏 組長 2011年11月15日
互联网金融之金融数据挖掘 邹永杰 江西财经大学金融学院.
Decoding the future 4 of 14: 給推雅推喇教會的信
电子工业出版社《云计算(第二版)》配套课件
分布式系统 Distributed Systems 第 12 讲 “大型”网站架构设计 Lecture 12 Large Scale Website Architecture 王晓阳、张 奇 复旦大学 计算机科学技术学院.
第2章 資料庫系統 2-1 資料庫環境的四大組成元件 2-2 ANSI/SPARC的三層資料庫系統架構
“在2013年如何一天24小時生活” “How to live 24hours a day in 2013” (詩Psalm 118:24)
十五條佛規 後學:張慈幸
OpenStack开源虚拟化平台(三) 云计算 (第三版) 第 8 章 CLOUD COMPUTING Third Edition
穆公(朱金清 微博:淘穆公 阿里HBase业务设计实践 穆公(朱金清 微博:淘穆公
顏協邦 慧盟資訊 商業智慧導入服務部 資深經理
简化 IT,促进创新 — 为现代企业带来新生机
Are you ready to be an e-teacher
C++在大型工程项目中的应用 入门与提高 刘加权 Liu.Jiaquan.
房地合一新制介紹 (含本法及申報作業要點) 財政部南區國稅局澎湖分局
第 一 章 資訊系統開發概論 課程名稱:系統分析與設計 各位同學大家好,我是李春雄老師,本學期所開設的課程名稱為「資料結構」,
58同城从MongoDB到MySQL迁移之路
前進美國實力再造— 展現台灣留學生競爭力 聯合大學電機系 吳有基 教授.
第六节 脑和脊髓的传导通路.
任务2: 通报的写作.
Unit 3 Would you like to come to my birthday party? Lesson 14 龙江县志刚小学 人教新版小学六年级英语上册.
大数据在医疗行业的应用.
Writing 促销英文信 促销的目的就是要卖出产品,那么怎样才能把促销信写得吸引人、让人一看就对产品感兴趣呢?下面就教你促销信的四步写法。
Unit 9 What does he look like?
YARN & MapReduce 2.0 Boyu Diao
NoSQL分布式数据库.
Alibaba 数据库高可用架构 Alibaba
分布式系统中的关键概念及Hadoop的起源、架构、搭建
王耀聰 陳威宇 國家高速網路與計算中心(NCHC)
Working with Databases (II) 靜宜大學資管系 楊子青
kCloudStorage - 基于云技术的廉价冗余天文海量数据存储
Flash数据管理 Zhou da
一個靜宜資管畢業生應有的職場技能 Forever Y. H. Tsai 2006/03/07.
云 存 储 ACM HONORED CLASS 柏钧文.
The expression and applications of topology on spatial data
二年中文 [201- Unit 9] 谈谈经历 [孫珞 老師] [Fall 2017].
Lesson 28 How Do I Learn English?
大数据介绍及应用案例分享 2016年7月 华信咨询设计研究院有限公司.
天涯分布式数据库 云计算部.
Unit title: 假期 – Holiday
Review Final Chinese 2-Chapter 6~10-1
客户服务 售后服务.
Unit 9.
資料庫 靜宜大學資管系 楊子青.
Talk about:What time is it ?=What’s the time?
Have you read Treasure Island yet?
Guide to a successful PowerPoint design – simple is best
Build an app to measure ECG-base HRV via a Smart wristband
Supply Chain Management
文狀元閱讀心得寫作指導分享 -讀寫整合策略- 苗栗縣新南國小 吳振豪.
從 ER 到 Logical Schema ──兼談Schema Integration
智慧树网-在线共享课程 学生端讲解.
Distance Vector vs Link State
Outline Overview of this paper Motivation and Initialization
我所看見的未來.
TinyDB資料庫 靜宜大學資管系 楊子青.
立足语境,放眼词块,螺旋上升 年温州一模试卷题型分析 及相应的二轮复习对策 by Sue March 14,2013.
Distance Vector vs Link State Routing Protocols
11 Overview Cloud Computing 2012 NTHU. CS Che-Rung Lee
學校/系所名稱:樹德科技大學/資訊工程系 參賽隊名:宇宙小超人 參賽同學:沈盈哲、候坤誠、康庭飴、蔡佩諭 指導老師:程毓明教授
P4 STEAM SCIENCE.
案例分析: THE NEXTGEN POS SYSTEM
Views on the News 不同的观点 选自《多维阅读第11级》.
Presentation transcript:

CAP:理论与实践 童家旺 http://www.dbthink.com/ Weibo: jametong

内容大纲 CAP的历史沿革 CAP原理介绍 CAP,Pick Two? CAP权衡中的经济考量 CAP与ACID的关系 分区只是另一段Code Path CAP在实践中的应用 参考资料

CAP原理的历史 1997年,Fox & Brewer提出BASE概念 1999年,Fox & Brewer 提出CAP Principle 《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的论文 SOSP 2007,Amazon发布Dynamo的论文 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提供的库存信息可以不准确吗? 新浪微博可以丢吗? 淘宝的商品信息可以暂时不一致吗? 12306提供的库存信息可以不准确吗? 比特币(bitcoin)可以不准确吗? 中行信用卡可以不一致吗? 工行可以在主机故障时,牺牲一致性吗?

Reliability & $$

数据状态机的分类 何谓状态机 简单的理解是,计算机中会发生变化的数据都是状态机,这个数据的值不同可能会带来不同的后果。 分类:按照三个维度:时间、信息含金量、变更频率 持续时间 信息含金量 变更频繁度 例子 瞬时 高 少 Shopping Card Session(分) 低 Login Cookie(分) 中等时长 Ecommerce Billing(天) 中 Product Catalog(年) 多 Flight/Train Inventory (月) 无限时长 User Profile(年) Bank Account Balance(年))

其实,CAP并没有声明… 放弃一致性 放弃事务 (ACID) 不要使用SQL 不一致应该仅仅是个例外 很多系统牺牲的内容远远超过必要! 很多NOSQL系统中也开始支持SQL 声明性语言(SQL)与CAP配合良好

CAP与ACID 当系统没有Partition时: 当系统出现Partition时: 支持Full ACID Atomic:不同的分区还是应该保持Atomic Consistent:临时违背(如:没有重复?) Isolation:临时牺牲隔离性 Durable:永远不该牺牲它(需要保留它用)

像程序员一样思考 分区只是个不同的代码路径

User Profile处理 Always Relaxing Read Consistency Cache APP Server Write to Master, When Failed, Fail the Request Reading From arbitrary node Backup Master Read Slave Read Slave Read Slave Read Slave Near Real Time Redo Shipping Always Relaxing Read Consistency

Message Processing App Server Persistent Message in arbitrary Message Node When One Failed Just Pick Next Msg DB1 Msg DB2 Msg DB3 Msg DB4 DB1 Backup DB2 Backup DB3 Backup DB4 Backup When One Node Failed, Just Delay the Message Sending Persistent in that Node, Aka, Sacrificing Availability

Shopping Cart Relaxing Consistency When Partitioned Writing Reading Write multiple replicas to multi node, If one node Fails, Just Skip it. Merging multiple replicas from multi node, if one node Fails, just ignore it. DB1 DB2 DB3 Relaxing Consistency When Partitioned

银行ATM机 When Partitioned When Partition Recovered 只允许低于200$的提现操作 在本地记录操作的日志 When Partition Recovered Reapply本地日志 如果有透支,通过外部商业流程进行补偿处理。 Sacrifice Some A,Relax Some Consistency

航空订票系统 超卖是一种商业选择 如果出现超卖 When Partition 仅限经济舱 为用户做免费升舱 Relaxing Consistency 一定的补偿机制 http://en.wikipedia.org/wiki/Overselling

CAP的实际含义

总结 CAP的实际效果 在没有分区发生时 探索适合不同应用的一致性与可用性平衡 可以同时满足C与A,以及完整的ACID事务支持 需要有分区开始前、进行中、恢复后的处理策略 应用合适的补偿处理机制

参考资料 NoSQL: Past, Present, Future By Eric Brewer CAP Twelve Years Later: How the "Rules" Have Changed Towards Robust Distributed Systems Dynamo: Amazon's Highly Available Key-value Store By Giuseppe DeCandia, Werner Vogels etc..

Any Questions?