分布式知识的总结(V1.0)

标签: Java Web Service acid base cap | 发表时间:2012-09-15 16:32 | 作者:longhao
出处:http://www.longtask.com/blog

1:分布式理论

CAP(Eric Brewer)
    Web服务无法同时满足以下3个属性
  • Consistency(一致性),数据一致更新,所有数据变动都是同步的
  • Availability(可用性),每个操作都必须以可预期的响应结束
  • Partition tolerance(分区容错性),即使出现单个组件无法可用,操作依然可以完成
    在任何数据库设计中,一个Web应用至多只能同时支持上面的两个属性,不可能三者兼顾。对于分布式系统来说,分区容错是基本要求,所以必然要放弃一致性。对于大型网站来说, 分区容错和可用性的要求更高,所以一般都会选择适当放弃一致性。对应CAP理论,NoSQL追求的是AP,而传统数据库追求的是CA,这也可以解释为什么 传统数据库的扩展能力有限的原因。

ACID解决方案
    ACID数据库事务极大地简化了应用开发人员的工作.正如其缩写标识所示,ACID事务提供以下几种保证:

  • Atomicity(原子性),事务中的所有操作,要么全部成功,要么全部不做.
  • Consistency(一致性)在事务开始与结束时,数据库处于一致状态.
  • Isolation(隔离性) 事务如同只有这一个操作在被数据库所执行一样.
  • Durability(持久性). 在事务结束时,此操作将不可逆转.(也就是只要事务提交,系统将保证数据不会丢失,即使出现系统Crash,译者补充).
    数据库厂商在很久以前就认识到数据库分区的必要性,并引入了一种称为2PC(两阶段提交)的技术来提供跨越多个数据库实例的ACID保证

BASE解决方案

  • Basically Available(基本可用)
  • Soft-state( 软状态/柔性事务)
  • Eventual Consistency(最终一致性)
    BASE模型是传统ACID模型的反面,不同与ACID,BASE强调牺牲高一致性,从而获得可用性,数据允许在一段时间内的不一致,只要保证最终一致就可以了。
 

2:分布式系统基础组件

RPC

message queue

failure detection

  • “The φ Accrual Failure Detector”

分布式系统中的一致性

  • "Principles of Computer Systems Design" 第十章(可以到 MIT 网站下载)
  • 虚拟同步(virtual synchrony)系统
    • K.P. Birman 的两篇论文,讲述虚拟同步的概念的实现方法
      • Reliable Communication in the Presence of Failures
      • Exploiting virtual synchrony in distributed systems
    • 扩展的虚拟同步(Extended Virtual Synchrony),也称为 TOTEM 协议
      • Y. Amir 等,"The Totem Single Ring Ordering and Membership Protocol"
      • L.E. Moser 等,"Extended Virtual Synchrony"
    • Corosync 是 TOTEM 协议的一个开源实现,当前 RedHat 等提供的企业集群使用它作为一致性协议。
  • 采用类似 Paxos 算法的系统
    • Leslie Lamport, "Paxos Made Simple"
    • "Paxos Made Live – An Engineering Perspective" Google 实现 Paxos 算法时的工程考虑。
    • Zookeeper,两篇介绍 ZooKeeper 的论文
      • ZooKeeper: Wait-free coordination for Internet-scale systems
      • A simple totally ordered broadcast protocol
    • Google 的 Chubby,"The Chubby lock service for loosely-coupled distributed systems"
  • 最终一致性
    • 最终一致性概念
    • Cassandra 中最终一致性的应用
      • 基于 Gossip 协议的组成员管理,论文 "Efficient Reconciliation and Flow Control for Anti-Entropy Protocols"
      • 基于 Merkle tree 的数据同步算法:“Informed content delivery across adaptive overlay networks”
  • CAP 理论
  • BASE 理论  http://queue.acm.org/detail.cfm?id=1394128

3:分布式数据库和分布式文件系统

Google File System

MooseFS

Ceph

Dynamo

  • 论文 "Dynamo: Amazon’s Highly Available Key-value Store"

Big Table

Cassandra

Parallel Database

  • Yahoo! PNUTS 论文 "PNUTS: Yahoo!’s Hosted Data Serving Platform"
  • GreenPlum 并行数据库,私有软件,非开源
  • HadoopDB,论文 "HadoopDB: An Architectural Hybrid of MapReduce and DBMS Technologies for Analytical Workloads"

分布式数据库对比

论文 "Benchmarking Cloud Serving Systems with YCSB"

4:大规模数据处理

  • MapReduce
  • Hive, Pig
    • Hive 论文 "Hive – A Petabyte Scale Data Warehouse Using Hadoop"
    • Pig 论文 "Pig Latin: A Not-So-Foreign Language for Data Processing"
  • search engine (Lucene)

5:关系数据库

  • 数据库设计与实现基本理论
    • Book "Database System Implementation"
  • transaction processing
    • Book "Transaction Processing: Concepts and Techniques"
    • Book "Principles of Transaction Processing, Second Edition"
  • 性能优化
    • Book "High Performance MySQL"
    • Book "Physical Database Design"
  • SQLite 代码分析
  • PostgreSQL

6:分布式系统理论研究

    这几本书里面,"distributed algorithms" 比较偏重纯理论,与实际技术相关性不大,阅读优先级较低;"distributed systems: principles and paradigms" 讲了不少实际系统,但是讲的不是很深入(也很难讲深入),初学者可以先浏览一遍;"Principles of computer systems design: an introduction" 是一本新书,对系统设计的很多思想讲的很透彻清晰,优先级较高。

  • Lynch's book "distributed algorithms"
  • Tanenbaum's book "distributed systems: principles and paradigms"
  • "Principles of computer systems design: an introduction"
  • CAP theorem paper, "Brewer's conjecture and the feasibility of consistent, available, partition-tolerant web services"

7:值得读的博客

 

相关 [分布 知识 v1] 推荐:

Nikon 1 初代降临,来个 J1 及 V1 动手玩(影片)

- han - Engadget 中国版
经过一个下午的等待,我们终于有机会玩到 Nikon 两部全新的 EVIL 相机 - J1 及 V1. 官方宣布香港将与美国同步,于 10 月 20 日发售,但没有公布售价及有关详情. (参考美国的价格,J1 + 10-30mm 镜头套装售价为 US$649.95,约 4150 元人民币 ;而 V1 相同的镜头套装售价则是 US$899.95,约 5750 元人民币).

步步高 vivo 智能机 V1 首张定妆照公布

- starry heavens - Engadget 中国版
终于看到真容了,步步高的智能手机 V1 定妆照亮相,这款机子以女性为主打对象,一些界面设计我们已经提前看到,可惜这次官方图依然没有公布具体的规格配置,从效果图可以看到后置了 500 万像素摄像头,带 LED 补光灯,后底部是一个 SRS 音效标识. 而第一款新品 V1 的工程机将在今天(9 月 26 日) 2011 北京国际通信展上亮相.

尼康发布全新1系统微单:型号分别为J1和V1

- 梁振华 - cnBeta.COM
尼康公司在上海香格里拉大酒店召开秋季新品数码相机发布会,全球同步推出全新“尼康 1”品牌,以及旗下两款可换镜数码相机新品――J1/V1,和4支对 应该系列的全新“尼康 1”卡口的尼克尔镜头. 这是继松下、奥林巴斯、宾得、索尼等厂商后又一进军微单相机市场影像巨鳄.

分布式知识的总结(V1.0)

- - 龙浩的blog
    Web服务无法同时满足以下3个属性. Consistency(一致性),数据一致更新,所有数据变动都是同步的. Availability(可用性),每个操作都必须以可预期的响应结束. Partition tolerance(分区容错性),即使出现单个组件无法可用,操作依然可以完成.     在任何数据库设计中,一个Web应用至多只能同时支持上面的两个属性,不可能三者兼顾.

Nikon EVIL 相机 J1 及 V1 公布,1,010万像素、支持 1080/30p 影片拍摄,售价 US$650 起(影片)

- fyits0 - Engadget 中国版
废话不多说,我们本以为今晚的 Nikon 香港发布会将会全球同步举行,怎料美国纽约的原来比我们的早六个小时,率先发表这两部全新的 Nikon EVIL 相机 -- J1 及 V1. 两部相机的规格分别不大,采用 1,010 万像素 CMOS 感光组件、支持 HDMI / USB 连接、1,200fps 慢动作拍摄模式、配备 3 寸 LCD 屏幕、高解像度电子观景器、支持 Full HD 1080/30p 影片拍摄(同时支持 720/60p 及 1080/60i).

Nikon EVIL 相機 J1 及 V1 公佈,1,010萬像素、支援 1080/30p 影片拍攝,售價 US$650 起(更新)

- 小趴 八足趴 八足 ramener - Engadget 中文版
廢話不多說,我們本以為今晚的 Nikon 香港發佈會將會全球同步舉行,怎料美國紐約的原來比我們的早六個小時,率先發表這兩部全新的 Nikon EVIL 相機 -- J1 及 V1. 兩部相機的規格分別不大,採用 1,010 萬像素 CMOS 感光元件、支援 HDMI / USB 連接、1,200fps 慢動作拍攝模式、配備 3 吋 LCD 螢幕、高解像度電子觀景器、支援 Full HD 1080/30p 影片拍攝(同時支援 720/60p 及 1080/60i).

学习分布式系统需要怎样的知识?

- - DockOne.io
我的 PhD 研究方向是分布式系统,我老板也是分布式系统出身,我们实验室在这方面的积累还算不错,所以借此问题谈谈自己的看法. 首先需要说明的是,分布式系统是一个复杂且宽泛的研究领域,学习一两门在线课程,看一两本书可能都是不能完全覆盖其所有内容的. 介于这篇文章是引导初学者入门,所以我个人觉得为初学者介绍一下当前分布式系统领域的全貌,也许比直接推荐论文和课程更有帮助.

万字总结:分布式系统的38个知识点

- - 掘金 后端
这是我参与「掘金日新计划 · 8 月更文挑战」的第1天, 点击查看活动详情. 大家好我是咸鱼了大半年的一灰灰,终于放暑假了,把小孩送回老家后,作为咸鱼的我也可以翻翻身了,接下来将趁着暑假的这段时间,将准备一个全新的分布式专栏,为了给大家提供更好的阅读体验,可以再我的个人站点上查看系列的专栏内容:.

知识衍生

- 月乾 - linux大棚-roclinux.cn
周日,落得清闲,写篇博客,把自己有关“知识学习”的一个小感悟,用图表达出来,希望能让大家有所启发. 思考一下,想学习一个新的知识,需要哪些前置知识,一个一个列出来,看看这些前置知识,有哪些还不熟悉,再列出这个前置知识的前置知识,如此递归下去,会形成一棵知识的树状结构,我们叫它知识衍生树吧. 所有叶子节点上的前置知识都是你所熟练掌握和理解的.

知识的顶峰

- loudly - 科学松鼠会