精华内容
下载资源
问答
  • 分布式数据库系统原理.第3版 扫描完整版 带书签和目录
  • 东北大学申德荣分布式数据库系统原理与应用讲义,ppt
  • 非常经典的分布式数据库系统原理
  • 分布式数据库系统原理 第3版
  • 分布式数据库系统原理] Principles.of.Distributed.Database.Systems,.3ed),.Ozsu,.Valduriez.文字版.pdf
  • 分布式数据库系统及其应用(第2版)》在第一版的基础上做了较大的修改,增加了与分布式数据库技术密切相关的、新的网络与数据库的接口技术,基于组件的新的软件开发方法,WWW数据库,移动数据库,数据仓库和数据挖掘...
  • 东北大学老师讲义
  • 分布式系统数据库系统原理(第三版)中的描述:“我们把分布式数据库定义为一群分布在计算机网络上、逻辑上相互关联的数据库。分布式数据库管理系统(分布式DBMS)则是支持管理分布式数据库的软件系统,它使得分布对于...
  • 下载地址:网盘下载基本简介分布式数据库系统(DDBS)包含分布式数据库管理系统(DDBMS)和分布式数据库(DDB)。在分布式数据库系统中,一个应用程序可以对数据库进行透明操作,数据库中的数据分别在不同的局部数据库中...
    下载地址: 网盘下载

    基本简介

    分布式 数据库系统(DDBS)包含分布式 数据库管理系统(DDBMS)和分布式数据库(DDB)。在分布式数据库系统中,一个 应用程序可以对数据库进行透明操作,数据库中的数据分别在不同的局部数据库中存储、由不同的 DBMS进行管理、在不同的机器上运行、由不同的 操作系统支持、被不同的 通信网络连接在一起。
    一个分布式数据库在逻辑上是一个统一的整体,在物理上则是分别存储在不同的物理节点上。一个应用程序通过网络的连接可以访问分布在不同地理位置的数据库。它的分布性表现在数据库中的数据不是存储在同一场地。更确切地讲,不存储在同一计算机的存储设备上。这就是与集中式数据库的区别。从用户的角度看,一个分布式数据库系统在逻辑上和集中式数据库系统一样,用户可以在任何一个场地执行全局应用。就好像那些数据是存储在同一台计算机上,有单个数据库管理系统(DBMS)管理一样,用户并没有什么感觉不一样。
    分布式数据库系统是在集中式数据库系统的基础上发展起来的,是计算机技术和网络技术结合的产物。分布式数据库系统适合于单位分散的部门,允许各个部门将其常用的 数据存储在本地,实施就地存放本地使用,从而提高响应速度,降低通信费用。分布式数据库系统与集中式数据库系统相比具有可扩展性,通过增加适当的数据冗余,提高 系统的可靠性。在集中式数据库中,尽量减少冗余度是系统目标之一.其原因是,冗余数据浪费存储空间,而且容易造成各副本之间的不一致性.而为了保证数据的一致性,系统要付出一定的维护代价.减少冗余度的目标是用数据共享来达到的。而在分布式数据库中却希望增加冗余数据,在不同的场地存储同一数据的多个副本,其原因是:①.提高系统的可靠性、可用性当某一场地出现故障时,系统可以对另一场地上的相同副本进行操作,不会因一处故障而造成整个系统的瘫痪。②.提高系统性能系统可以根据距离选择离用户最近的数据副本进行操作,减少通信代价,改善整个系统的性能。

    主要特点

    独立透明性

    数据独立性是数据库方法追求的主要目标之一,分布透明性指用户不必关心数据的逻辑分区,不必关心数据物理位置分布的细节,也不必关心重复副本(冗余数据)的一致性问题,同时也不必关心局部场地上数据库支持哪种数据模型.分布透明性的优点是很明显的.有了分布透明性,用户的应用程序书写起来就如同数据没有分布一样.当数据从一个场地移到另一个场地时不必改写应用程序.当增加某些数据的重复副本时也不必改写应用程序.数据分布的信息由系统存储在数据字典中.用户对非本地数据的访问请求由系统根据数据字典予以解释、转换、传送.

    集中节点结合

    数据库是用户共享的资源.在集中式数据库中,为了保证数据库的安全性和完整性,对共享数据库的控制是集中的,并设有DBA负责监督和维护系统的正常运行.在分布式数据库中,数据的共享有两个层次:一是局部共享,即在局部数据库中存储局部场地上各用户的共享数据.这些数据是本场地用户常用的.二是全局共享,即在分布式数据库的各个场地也存储可供网中其它场地的用户共享的数据,支持系统中的全局应用.因此,相应的控制结构也具有两个层次:集中和自治.分布式数据库系统常常采用集中和自治相结合的控制结构,各局部的DBMS可以独立地管理局部数据库,具有自治的功能.同时,系统又设有集中控制机制,协调各局部DBMS的工作,执行全局应用。当然,不同的系统集中和自治的程度不尽相同.有些系统 高度自治,连全局应用事务的协调也由局部DBMS、局部DBA共同承担而不要集中控制,不设全局DBA,有些系统则集中控制程度较高,场地自治功能较弱。(3)、支持全局数据库的一致性和和可恢复性 分布式数据库中各局部数据库应满足集中式数据库的一致性、可串行性和可恢复性。除此以外还应保证数据库的全局一致性、并行操作的可串行性和系统的全局可恢复性。这是因为全局应用要涉及两个以上结点的数据.因此在分布式数据库系统中一个业务可能由不同场地上的 多个操作组成.例如,银行转帐业务包括两个结点上的更新操作。这样,当其中某一个结点出现故障操作失败后如何使全局业务滚回呢?如何使另一个结点撤销已执行的操作(若操作已完成或完成一部分)或者不必再执行业务的其它操作(若操作尚没执行)?这些技术要比集中式数据库复杂和困难得多,分布式数据库系统必须解决这些问题.

    复制透明性

    用户不用关心数据库在网络中各个节点的复制情况,被复制的数据的更新都由系统自动完成。在分布式数据库系统中,可以把一个场地的数据复制到其他场地存放,应用程序可以使用复制到本地的数据在本地完成分布式操作,避免通过 网络传输数据,提高了系统的运行和查询效率。但是对于复制数据的更新操作,就要涉及到对所有复制数据的更新。

    易于扩展性

    在大多数网络环境中,单个 数据库服务器最终会不满足使用。如果服务器软件支持透明的水平扩展,那么就可以增加多个服务器来进一步分布数据和分担处理任务。

    主要优点

    (1)具有灵活的体系结构。
    (2)适应分布式的管理和控制机构。
    (3)经济性能优越。
    (4)系统的可靠性高、可用性好。
    (5)局部应用的响应速度快。
    (6)可扩展性好,易于集成现有系统。

    主要缺点

    (1) 系统开销大,主要花在通信部分。
    (2)复杂的存取结构,原来在 集中式系统中有效存取数据的技术,在分布式系统中都不再适用。
    (3)数据的安全性和保密性较难处理。

    系统目标

    分布式数据库系统的目标,也就是研制分布式数据库系统的目的、动机,主要包括技术和组织两方面的目标.

    适应性

    使用数据库的单位在组织上常常是分布的(如分为部门、科室、车间等等),在地理上也是分布的.分布式数据库系统的结构符合部门分布的组织结构,允许各个部门对自己常用的数据存储在本地,在本地录入、查询、维护,实行局部控制.由于计算机资源靠近用户,因而可以降低通信代价,提高响应速度,使这些部门使用数据库更方便更经济。

    可靠性和可用性

    改善系统的可靠性和可用性是分布式数据库的主要目标.将数据分布于多个场地,并增加适当的冗余度可以提供更好的可靠性.一些可靠性要求较高的系统,这一点尤其重要.因为一个地出了故障不会引起整个 系统崩溃.因为故障场地的用户可以通过其它场地进入系统.而其它场地的用户可以由系统自动选择存取路径,避开故障场地,利用其它数据副本执行操作,不影响业务的正常运行.

    充分性

    提高现有集中式数据库的利用率
    当在一个大企业或大部门中已建成了若干个数据库之后,为了利用相互的资源,为了开发全局应用,就要研制分布式数据库系统.这种情况可称为自底向上的建立 分布式系统.这种方法虽然也要对各现存的局部数据库系统做某些改动、重构,但比起把这些数据库集中起来重建一个集中式数据库,则无论从经济上还是从组织上考虑,分布式数据库均是较好的选择.

    扩展性

    当一个单位规模扩大要增加新的部门(如银行系统增加新的分行,工厂增加新的科室、车间)时,分布式数据库系统的结构为扩展系统的处理能力提供了较好的途径:在分布式数据库系统中增加一个新的结点.这样做比在集中式系统中扩大系统规模要方便、灵活、经济得多。
    在集中式系统中为了扩大规模常用的方法有两种:一种是在开始设计时留有较大的余地.这容易造成浪费,而且由于预测困难,设计结果仍可能不适应情况的变化.另一种方法是系统升级,这会影响现有应用的正常运行.并且当升级涉及不兼容的硬件或系统软件有了重大修改而要相应地修改已开发的 应用软件时,升级的代价就十分昂贵而常常使得升级的方法不可行.分布式数据库系统能方便地把一个新的结点纳入系统,不影响现有系统的结构和系统的正常运行,提供了逐渐扩展系统能力的较好途径,有时甚至是唯一的途径。
    [1]   与应用 赵致格编著 清华大学出版社p. 260

     

     

    下载地址: 网盘下载

     

    转载于:https://www.cnblogs.com/long12365/p/9731343.html

    展开全文
  • 分布式数据库系统的复习提纲,帮助在校学生期末复习,内容比较详细。内容广适性比较强,对于不同版本教材均比较实用。
  • 分布式数据库系统及其应用与答案

    热门讨论 2012-01-03 14:07:05
    内部包含有pdf格式的分布式数据库系统及其应用(第二版),邵佩英编著,科学出版社与相关主要习题答案及其面向对象数据库答案(ppt)格式。
  • 分布式数据库系统原理 分布式数据库系统,简称为DDBS。它源自于两种数据处理方法的结合,一个是数据库系统DBS,另一个则是计算机网络。 很有意思的是数据库系统是将企业运营的数据集中起来,提供对数据可控制的存取...

    分布式数据库系统原理

    分布式数据库系统,简称为DDBS。它源自于两种数据处理方法的结合,一个是数据库系统DBS,另一个则是计算机网络。

    很有意思的是数据库系统是将企业运营的数据集中起来,提供对数据可控制的存取。但是计算机网络技术提倡的是一种反对集中的工作模式。这两种对比如此鲜明的技术合在一起变成了分布式数据库技术,这种技术追求的是在可能取得集成的情况下放弃集中。

    分布式

    分布式处理(或者是分布式计算)没有准确的定义。

    我们使用的分布式计算系统的定义要求它具备一定数量的自主式处理单元,这些单元通过计算机网络互连,并且协同处理它们各自分配到的任务。这里的处理单元是指能够执行自己程序的计算装置。

    到底是什么需要分布,其中之一可以是处理逻辑。另一种可能的分布,是按照功能。第三种可能的分布则是根据数据,应用所使用的的数据可以分派到若干处理站点上。最后,控制也能够分布。不同任务的控制执行也可以分布,而不是由一个计算机系统完成。

    为什么需要分布?分布式处理更好地和现如今分散企业的组织结构相对应。互联网的趋势大部分是在向分布式计算进行改变。

    分布式处理背后的根本原因是,使用分治的思想应对今天所面临的大规模数据管理问题。如果能够开发出所需的支持分布处理的软件,就可以把复杂的问题分割成更小的部分,然后把它们分配到不同的软件群上解决。这些软件乓工作在不同的计算机上,形成一个系统,有效工作,共同完成任务。

    分布式数据库系统

    分布式的概念清晰之后,分布式数据库就比较好理解了。我们把一群分布在计算机网络上,逻辑上相互关联的数据库称之为分布式数据库。而分布式数据库系统就是支持管理分布式数据库的软件系统。

    网络上会有一些集中式的数据库,它会把所有的数据库放在一个站点上。所有的请求全部都会路由到这个站点,这种不足以形成分布式数据库系统。

    如下图所示

    在这里插入图片描述

    真正的DDBS环境应该是如下的
    在这里插入图片描述

    数据发送

    在分布式数据库中,可以从发送方式、频率及通信方法三个维度来考虑。

    其中,不同的发送方式包括:内拉,外推和混合。

    内拉 服务器到客户端的数据传输是由客户端的请求发起的,客户端的请求到达后,服务端进行相应并查询相应的信息。它的特点是数据的变化是在服务器端的,客户从服务器接收的信息只会限于客户所请求的范围中

    外推 这种方式是服务器在没有任何客户请求的情况下,让服务器发动。这种方式主要针对的是大家所共同关注的数据,以及什么时间进行发送。因此可选择周期性发送、不规则发送以及条件发送。

    混合就是同时使用内拉与外推。在客户端发送查询请求后,此后相关的信息更新后服务端可以自主发送数据到客户端。

    频率一般包含周期性,有条件或者凭经验(不规则)。

    通信方法一般包含单播和一对多。单播很好理解,就是客户端与服务器端进行一对一的通信。一对多则是服务器向多个客户端发送数据。

    DDBS的四个Promise(感觉翻译成保证更好一点,相当于优点)

    1. 分布及复制数据的透明管理

      透明的意思就是说对用户“隐藏”了所有系统实现的细节。用户只需要关心怎么用即可,不用在乎这个是怎么实现的。

      其中又包含了 数据独立性,网络透明,复制透明,分片透明,透明的提供者

    2. 分布式事务提供的可靠性

    3. 改进的性能

    4. 更加容易的系统拓展

    分布式带来的复杂性

    1. 数据复制的问题
    2. 故障恢复的问题
    3. 事务同步的问题

    这些都只是一些分布式的基本概念,而且我觉得都没有确切的概念。感觉还有很长的一段路等我去探索,前路漫漫…

    展开全文
  • 本书内容包括引言、背景知识、分布式数据库设计、数据库集成、数据与访问控制、...《分布式数据库系统原理(第3版)》是高等院校计算机及相关专业高年级本科生或研究生数据库系统课程的教材,被国内外多所知名大学采用。
  • 分布式数据库试题及答案
  • 费了老大劲找到的经典书籍,分享给大家
  • 费了老大劲找到的经典书籍,分享给大家
  • 分布式数据库系统原理与应用》主要介绍分布式数据库系统的理论与实现机制方面的有关原理和方法。全书共分十章,第1章和第2章介绍分布式数据库系统的基础和背景,主要包括分布式数据库系统的基本概念、体系结构、...
  • 邵佩英版分布式数据库课后题答案,部分习题,和答案,比较全!
  • 这是复习时整理的部分课后习题答案,教材对应于分布式数据库原理与应用(邵佩英 第二版 科学出版社)
  • 分布式数据库是分布式计算与数据库结合的产物。分布式数据库的概念早就存在,但是直到最近才真正引起产业界的高度重视。这得益于互联网和云计算技术的高速发展与广泛应用。以“国家政务服务平台”为例,...

    d99a7917627f497cb261e4b3a942ea96.gif

    分布式数据库是分布式计算与数据库结合的产物。分布式数据库的概念早就存在,但是直到最近才真正引起产业界的高度重视。这得益于互联网和云计算技术的高速发展与广泛应用。

    以“国家政务服务平台”为例,据称其实现了统一身份认证服务、统一证照服务、统一事项服务、统一好差评等体系。平台的数据不是集中存储的,而是分散存储在全国多个数据中心的多个数据库系统中,而且许多“事项服务”类应用还会要求跨域、跨库访问。这个系统刚刚起步,提供的服务还很有限。可以想象,随着这个系统汇聚的数据越来越多,支持的应用越来越丰富,数据的一致性问题、系统的效率问题等都会显现出来。更进一步,这个系统由于支撑着日常的行政服务,对高可用性还会提出更高的要求。凡此种种,都需要分布式数据库技术的支持。分布式数据库将会越来越重要。

    在分布式数据库领域体系化的、深入剖析数据库原理的书籍,《分布式数据库原理、架构与实践》是作者李海翔老师基于对该领域多年的科研和实践,历经数年,把对分布式数据库领域一些重要技术的理解和在实践中所得的经验整理成册。从原理、架构、案例三个维度深度剖析分布式数据库所涉一致性、高可用性等。

    4a75b8949f8312d3d6535964c63fabfb.png

    腾讯T14级数据库专家的分布式数据库解决方案

    底层原理·架构设计·产品解读

    学术研究·经典理论·一线实践

    本书主要讨论如下3个话题。

    • 分布式数据库中存在的问题和原理。科学研究,始于问题。本书首先对分布式数据库技术中一些典型问题进行分析,以明确本书所要研究和解决问题的技术方向。之后讨论CAP原理与ACID技术结合后的一些问题(重点是一致性问题)及技术,以及业界在这方面的科研成果和工程实现思路。

    • 分布式数据库架构。从分布式数据库架构的角度,讨论影响架构的内在、外在技术因素,内在因素如强一致性、高可靠性、高可用性,外在因素如云计算、Serverless需求等。

    • 分布式数据库案例实践。从工程实践的角度,以案例的形式讨论诸多分布式系统的实现技术,涉及的数据库包括Spanner、CockroachDB、HBase、Greenplum等。

    主要特色

    本书以前沿技术和工程实践为抓手,通过问题确认、原理阐述、架构剖析、实例分析,有深度地进行了以下三项工作。

    • 深入经典技术:对经典技术进行深度探索,如剖析CAP原理的发展过程,深度解读事务处理技术(如MVCC、OCC、DTA等技术)的发展和相关研究。

    • 前沿探索:按照本书的内容规划,对前沿技术方向与内容从广度层面进行剖析和介绍,以开阔读者的思路和眼界。前沿内容散布于各个章节,与各章节主题互相映衬。

    • 原理、案例相结合:立足原理,对分布式数据库的架构进行深度剖析,并对业界多个产品从问题、原理、前沿技术研究成果、架构相关因素等角度进行深度分析。用多个案例多样化地印证其他部分介绍的原理和前沿技术。

    读者对象

    本书面向的主要读者

    • 分布式数据库的设计者和开发者;

    • 分布式数据库前沿技术的研究者;

    • 其他对分布式数据库感兴趣的读者。

    讲了什么

    对现代分布式数据库(CAP+传统分布式数据库)的分布式一致性和事务一致性进行本质分析,通过梳理CAP、一致性协议、分布式事务原理指导数据库架构设计,并以拆解主流产品的方式介绍落地方法

    (1)CAP与ACID结合:引发的问题,业界科研成果,工程实现

    (2)多种角度探讨一致性:分布式一致性(结果一致性、次序一致性、分布式事务一致性、架构一致性),事务一致性

    (3)一致性解决方案:逻辑时钟、向量时钟、混合逻辑时钟、Paxos协议、Raft算法

    (4)分布式事务原理:并发访问控制、OCC算法、MVCC技术、分布式提交

    (5)分布式数据库设计:近10种典型架构实现,内外因素影响下的架构实现,数据库解耦与重构

    (6)典型案例分析:Spanner、Percolator、CockroachDB、Hekaton、Mongo、HBase、Greenplum


    有什么不同

    (1)直指分布式问题本质:从底层原理角度分析各种问题的根因。

    313d4b5258169db746dd4cc96090881e.png

    cfedfffecac9d5553cfe2159f5fb9a30.png

    (2)通过经典理论寻找解决方案:用从经典理论入手寻找因分布式引入的问题的解决方案。

    45b5c81cffe21765028f35a346091eb8.png

    ebea6614bf54a07def6eb6f91d93f085.png

    (3)吸收50年数据库研究成果:借鉴了自20世纪70年代至今的近300份数据库领域专著和文献。  

    c737500ed911ebc65f1b9102a4803393.png

    2376ad2e5e79c8a90a8f99ed8133dc51.png

    (4)通过案例指导分布式落地实践:立足原理剖析问题,结合产品指导实践。  

    8195b5d78f321097bbc2b178e933d231.png

    4efe95e00079858ed10d7c8b48483313.png

    57aa2461967ecc2ba90761eea85edba3.png

    (5)20年一线实践经验:融合作者在腾讯、甲骨文MySQL全球开发团队20余年数据库研发经验。

    作者简介

    710423bc18bb45c6d544fd053e5584e7.png

    李海翔

    腾讯金融云数据库首席研究员(T14)

    腾讯TDSQL分布式数据库首席架构师

    中国人民大学、北京林业大学特聘硕士导师

    数据库事务处理之数据异常体系化研究的创立者

    《数据库查询优化器的艺术》《数据库事务处理的艺术》作者

    在VLDB等数据库大会上发表论文多篇参与了多个国家863重大专项、核高基、工信部、科技部等的项目。

    大咖推荐

    海翔对Spanner、Percolator、CockroachDB等多个分布式数据库系统进行了深入分析,对其中的一些核心技术有了较好的理解。在此基础上,对分布式数据库的一些原理进行了梳理,特别是对“一致性”的概念进行了系统的研究,弄清楚了分布式计算中的一致性(CAP的C)和数据库系统中的事务一致性(ACID的C)的概念的区别和联系。他还深度研究和实践了高可用分布式数据库的架构设计、主流并发访问控制算法等。这些都是很有价值的工作。

     ——杜小勇博士中国人民大学教授/中国计算机学会大数据专家委员会主任


     本书作者长期从事数据库研究与开发工作,这是他继《数据库查询优化器的艺术》和《数据库事务处理的艺术》之后又一部集原理、架构与实践于一体的分布式数据库力作,非常值得数据库学术界和产业界人士参考,也是高校学生学习分布式数据库技术很好的教材。

     ——彭智勇博士武汉大学教授/中国计算机学会会士/数据库专家委员会副主任


    本书的内容涵盖了分布式技术领域和分布式OLTP数据库领域最新的理论进展和技术实现原理,无论是对数据库内核的资深开发者、还是进阶者,对基于分布式数据库的应用开发者,对学习数据库课程的同学们,相信本书都可以带来有价值的帮助和指导。这是一本分布式数据库领域最近几年最值得推荐的一本书。

     ——武新博士易鲸捷信息技术有限公司 CEO


     很高兴看到国内有这样的一线专家著书分享最新核心技术的原理,设计思想和架构。相信这本书的出版会激发更多的开发者深入研究基础核心技术,未来帮助中国成为全球技术的领先者。

     ——蒋涛 CSDN创始人、董事长/ 极客帮创投创始合伙人


    目录

    序一

    序二

    序三

    序四

    前言

    第一篇 原理

    第1章 分布式数据库系统的

    挑战和原理  3

    1.1 分布式数据库系统的挑战  3

    1.1.1 分布式系统面临的问题  4

    1.1.2 数据库面临的一致性问题  7

    1.1.3 分布式数据库系统面临的问题  15

    1.2 分布式理论  20

    1.2.1 ACID、BASE与CAP简析  21

    1.2.2 CAP分布式理论  23

    1.2.3 PACELC理论和CAP新进展  29

    1.3 分布式系统一致性的本质  30

    1.3.1 偏序与全序  30

    1.3.2 有序与并发  31

    第2章 深入研究一致性  33

    2.1 概述  34

    2.1.1 常见的分布式一致性  35

    2.1.2 科研情况一览  38

    2.2 结果一致性  41

    2.2.1 共识问题形象化描述:拜占庭将军问题  42

    2.2.2 结果一致性的应用  42

    2.3 次序一致性  43

    2.3.1 线性一致性  43

    2.3.2 顺序一致性  47

    2.3.3 因果一致性  47

    2.3.4 会话一致性  48

    2.4 分布式事务一致性  49

    2.4.1 单机事务的一致性  49

    2.4.2 分布式事务的一致性  52

    2.4.3 分布式一致性与分布式事务一致性的关系  52

    2.5 架构一致性  54

    2.5.1 分布式系统主备一致性  54

    2.5.2 去中心化的分布式系统一致性  55

    第3章 一致性问题的解法  56

    3.1 依赖物理时间引发的问题  56

    3.2 逻辑时钟  57

    3.2.1 因果(happened-before)模型  57

    3.2.2 逻辑时钟的实现  58

    3.2.3 逻辑时钟的缺点  58

    3.2.4 物理时钟与同步问题  59

    3.3 向量时钟  59

    3.4 混合逻辑时钟   61

    3.5 Paxos协议  64

    3.5.1 Paxos协议解决问题的背景  64

    3.5.2 Paxos协议中的角色  64

    3.5.3 Basic Paxos协议  66

    3.5.4 Paxos协议改进与扩展  67

    3.6 Raft算法  74

    3.6.1 Raft算法基础  74

    3.6.2 Raft算法详解  75

    3.6.3 Paxos算法与Raft算法的比较  78

    第4章 分布式事务原理  81

    4.1 概述  82

    4.1.1 单机事务处理技术  82

    4.1.2 分布式事务处理技术  85

    4.2 基本的分布式事务并发访问控制机制  89

    4.2.1 封锁并发访问控制算法  90

    4.2.2 TO相关算法  91

    4.2.3 CO算法  92

    4.3 OCC算法  95

    4.3.1 OCC算法的优势与不足  95

    4.3.2 基本的OCC算法  97

    4.3.3 改进的OCC算法  103

    4.3.4 OCC算法与其他并发算法的融合  110

    4.3.5 分布式OCC算法  117

    4.4 MVCC技术  121

    4.4.1 MVCC技术解决了

    什么问题  122

    4.4.2 MVCC技术的核心思想  123

    4.4.3 可串行化的快照隔离  124

    4.4.4 写快照隔离  128

    4.4.5 MVCC技术实现示例  132

    4.4.6 MVCC技术扩展  139

    4.5 前沿的并发控制技术  140

    4.5.1 动态调整时间戳算法  140

    4.5.2 Data-driven算法  145

    4.5.3 面向列的细粒度机制  148

    4.5.4 基于硬件的改进  149

    4.5.5 基于AI的改进  153

    4.5.6 自适应并发访问控制算法  155

    4.6 分布式提交技术  159

    4.6.1 两阶段提交  159

    4.6.2 三阶段提交  163

    4.6.3 基于Paxos的提交  164

    4.6.4 一阶段提交  166

    4.7 可串行化发展历史  166

    4.8 其他分布式处理技术  169

    第二篇 架构

    第5章 去中心化的分布式数据库架构  175

    5.1 分布式存储架构  175

    5.1.1 数据分布  176

    5.1.2 数据管理  177

    5.1.3 多副本与数据存储  179

    5.1.4 存算分离  180

    5.1.5 多读与多写   184

    5.2 分布式查询优化与并行执行架构  187

    5.2.1 查询优化  187

    5.2.2 MPP  188

    5.2.3 计算下推/外推  189

    5.3 高可用性架构  190

    5.3.1 高可用衡量指标  191

    5.3.2 高可用性分类  194

    5.3.3 高可用事务  195

    5.3.4 高可用架构  197

    5.4 分布式事务架构  198

    5.4.1 事务管理器在客户端、中间件、服务器端中的实现  198

    5.4.2 去中心化的并发事务框架  201

    5.5 可扩展性架构  202

    5.5.1 可扩展性是一种能力  202

    5.5.2 事务处理的可扩展性  204

    5.6 强一致性  206

    5.7 解耦  206

    第6章 新技术与分布式数据库架构  210

    6.1 新硬件  210

    6.2 智能数据库  211

    6.3 云计算与数据库  213

    6.3.1 云原生  214

    6.3.2 云数据库  216

    6.3.3 Serverless数据库  217

    6.4 HTAP  218

    6.4.1 HTAP概念与HTAC架构  218

    6.4.2 行列混存  220

    6.5 下一代数据库  221

    6.5.1 数据库技术简史  221

    6.5.2 下一代数据库技术特征  228

    第三篇 典型案例

    第7章 Spanner深度探索  233

    7.1 从Spanner的两篇重点论文说起  233

    7.2 Spanner的架构  234

    7.3 Spanner的事务处理模型  236

    7.3.1 读事务的分类和意义  237

    7.3.2 分布式一致性实现原理  237

    7.3.3 写操作一致性的实现原理  239

    7.3.4 Truetime事务处理机制的缺点  241

    7.3.5 深入理解Spanner的悲观策略  242

    7.3.6 Spanner与MVCC  243

    7.3.7 读副本数据  244

    7.3.8 全局读事务的一致性  244

    7.3.9 只读事务  245

    7.4 Spanner与CAP  246

    第8章 Percolator事务处理模型  247

    8.1 Percolator的架构  247

    8.2 Percolator的事务处理  248

    8.2.1 事务处理整体过程  248

    8.2.2 数据项上存储的事务信息  249

    8.2.3 事务提交过程  249

    8.2.4 事务读数据过程  252

    8.2.5 Percolator的事务处理示例  253

    第9章 CockroachDB深度探索  255

    9.1 CockroachDB的架构  255

    9.2 CockroachDB事务处理模型  257

    9.2.1 事务处理相关的数据结构  258

    9.2.2 事务处理的阶段  259

    9.2.3 事务处理的整体过程  260

    9.2.4 事务的并发冲突  261

    9.2.5 事务自动终止  264

    9.2.6 隔离级别  265

    9.3 分布式一致性实现原理  265

    第10章 其他数据库  267

    10.1 内存型数据库Hekaton的事务处理机制  267

    10.1.1 Hekaton的技术架构  267

    10.1.2 Hekaton的事务管理  271

    10.1.3 Hekaton的并发控制  275

    10.2 文档型分布式数据库MongoDB  276

    10.2.1 MongoDB的架构  277

    10.2.2 MongoDB的事务处理技术  277

    10.3 列存分布式数据库HBase  278

    10.3.1 HBase的架构  278

    10.3.2 HBase的事务处理技术  279

    10.4 Greenplum  280

    10.5 图、键值、文档事务处理技术  282

    10.5.1 图模型事务处理技术  283

    10.5.2 键值、文档模型事务处理技术  284

    10.6 深入讨论数据库架构  285

    10.6.1 数据库的通用架构  285

    10.6.2 事务型数据库的架构  286

    10.6.3 主流分布式数据库的技术比较  290

    参考文献  292

    上下滑动查看

    实拍图

    ed3290cf8fcbb460935d87b51028922a.png

    fd8b1b9b7d68201f669c8f3ab752ae7f.png

    d306be0c849e1fa5b5b2b371771a8355.png

    326cf90f33b3c3da52996d1675b0c413.png

    点击链接了解详情并购买

    1c2ffa3a56f2577273d57438cfe8165b.gif

    14fb956d46bad437616922cc6f12de80.png

    扫码关注【华章计算机】视频号

    每天来听华章哥讲书

    1dee98188ea4c5374112006b4650f8cd.gif

    更多精彩回顾

    书讯 | 10月书讯(上) |  小长假我读这些新书

    书讯 | 10月书讯(下) |  小长假我读这些新书

    资讯 | 什么是ETL?一文掌握ETL设计过程

    书单 | 8本书助你零基础转行数据分析岗

    干货 | 架构设计的新思路,《架构之道》读书笔记

    收藏 | 终于有人把微服务讲明白了

    上新 | 【新书速递】构建高质量软件:持续集成与持续交付系统实践

    赠书 | 【第78期】学习全球最火编程语言Python,要读哪些书?

    18ba5021e94fe868b0d23e12a0bf0499.gif

    7b4fc227ab8ca60c835f923348420225.gif

    点击阅读全文购买

    展开全文
  • 分布式 数据库 系统原理Principles.of.Distributed.Database.Systems,.3edOzsu,.Valduriez.文字版.pdf )
  • 分布式数据库原理解析

    万次阅读 2017-12-09 14:26:36
    一,分布式数据库的简单了解我们目前使用的数据库中间件UDAL,据文档描述,底层使用的是阿里的开源Cobar,网上了解Cobar社区几年前早已经不更新了,现在比较火热的是Mycat中间件。UDAL与Mycat类似,此外根据自身业务...

    一,分布式数据库的简单了解

    我们目前使用的数据库中间件UDAL,据文档描述,底层使用的是阿里的开源Cobar,网上了解Cobar社区几年前早已经不更新了,现在比较火热的是Mycat中间件。UDAL与Mycat类似,此外根据自身业务需求,增加了全局序列,切片索引,日志,web统一管理界面等。

    1,核心问题—事务

    分布式数据库的核心问题的是事务的管理,Cobar是不支持分布式事务的,Mycat也只支持弱分布式事务。市面上其他各种分布式数据库中间件,包括 360 Atals、美团点评的DBproxy、携程的DAL等均只支持单库的事务。即使是单库的事务,是不是跟操作单个数据库的原理一样?当然对于我们用户感知而言,确实跟操作单库是没有区别。但在事务实现上,跟传统的操作单个数据库是有区别的。接下来讨论下传统数据库里面是如何实现事务,然后再分析分布式事务的复杂性,为啥这么多开源社区大牛暂时都不能解决。

    2,分片及路由规则

    分布式数据库把原来单个库的数据分开存储,其过程就是分片,其结果就是得到多个数据库,每个数据库称为片。一般而言,会预先设计好合理的分片键,使数据尽可能的均匀落在每一个片上。具体分片算法主要是hash算法和hash一致性算法等,算法内容不是本次讨论重点就暂时忽略。在管理分片时,有一个数据存储节点的概念,这是一个逻辑上的划分,一个节点可以包含一个或者多个片,也可以跨多个物理服务器。这里是部署上的规则,默认地,我们认为单个数据库节点指的是单个物理片。对于用户而言,感知的是一个库,这是由于中间件提供了统一管理的方式,对外界暴露一个访问地址,请求过来后,根据路由规则再跳转到具体的某个库里面。

    3,路由规则

    中间件如何知道用户要操作哪个库,使用的是之前定义好的分片键。当用户发送数据库操作语句时,中间件会根据分片算法得到具体数据落在哪一个片上。中间件统一管理每个物理片,会在元数据管理层上建立一个映射关系,即当分片算法得出操作的数据节点为dn1时,中间件就会根据映射关系获得节点dn1的连接,并把经过初步解析的sql送给dn1节点。这里就跟我们平时操作单库一样,只不过这个过程由中间件完成,对用户不可见。注意select与delete,insert,update的区别,select 根据分片键得到具体执行sql的数据节点,如果没有分片键,中间件会默认把sql发送到每一个节点上去执行,就是广播。如果是insert语句,默认是必须带有路由标识,因为中间解析sql的时候,如果没有分片建,插入数据的时候广播去插入每个数据节点,显然是不合理的。同理,delete, update也需要带有路由标识。

    二,传统单个数据库的事务控制

    事务的目的是为了保证一系列操作的原子性,要么同时成功,要么同时失败。数据库本身已实现事务,用户使用数据库需要事务的时候,只需要开启一个数据库的事务,并在此事务期间执行一些操作,提交事务后由数据库保证事务的完整性。这里通过Spring配置的显示事务,只是开启一个数据库事务,就好比告诉数据库,接下来的操作你必须保证要么全部成功,要么全部失败。具体做事由数据库完成,Spring不管这事,他只在有需求的时候,去通知某个人去做这件事。那么数据库怎么实现事务的?每次用户在执行DML语句时,数据库会有日志记录下,在整个事务期间所有的操作和对应变更的数据,有多条就记录多条,并以二进制的方式存储在数据库存储系统中。这里大批量的数据操作涉及到很大IO开销,如何存储,备份以及效率问题不做延伸。当最后某条语句失败时,数据库就开始回滚,实现过程就是解析之前记录的日志信息,进行逆操作。主从同步,分布式全局序列的生成也可以采用解析日志的方式实现。强调,用户在操作层面上只负责开启一个事务事件,具体事务执行由数据库完成。对于不在同一个事务里面,但又要保证所有操作的原子性,就要自己手动写代码回滚了。

    三,分布式数据库的事务控制

    在应用层,我们像操作单库时开启一个事务,现在问题就来了,开启一个事务后,中间件怎么知道用户接下来即将操作的是哪一个库。对于用户来说,开启事务后执行sql的节点完全随机。当然你说,怎么获得事务由中间件完成,我们不关注,只需要开启事务就行了。没错,这个确实是中间完成的,但是如果要自己去实现,该怎么办?

    1,同一节点的事务
    这里提供一个思路,当用户需要事务时,就向中间件发出一个消息,意思是接下来我要开启一个事务了,请各单位做好准备,但此时中间件名下这么多数据库,也不知道你要操作的是哪个啊。中间件正犯愁时,然后用户就发送insert语句来了,中间件一看带有分片键,这事好办了,立马根据映射关系拿到了某个节点的事务。中间件一想,既然路由到具体的数据库了,那么接下来操作就跟单库一样了,但是用户接下来所有操作必须保证都在同一个库里面。等所有操作执行完毕,用户发送commit,中间件收到信息就知道事务结束了,于是就通知底层那个库结束事务。这里问题又来了,事务如果失败了,到底是回滚还是不回滚?因为某些操作可以容忍失败的情况,不能一棒子打死,所以这里还需要用户判断是否回滚。如果不回滚,那执行错误的数据咋办?就得有补偿机制来操作了。默认地,如果是由于网路抖动带来的异常,一般重复操作失败步骤并限制重复次数,保持幂等性,直到成功为止。但对于数据本身或者代码问题,就属于故障了。这里重复写表的操作实现有多种,需要实时更新的数据,可以用异步消息队列来处理,对于非实时数据,半夜没人的时候用定时任务写也可以。

    2,分布式事务
    2.1 分布式事务的产生
    为啥会有分布式事务这个概念,比如我们开始获得一个事务事件,进行以下操作,首先在dn1上update表a,然后又在dn2上insert表b,这下中间件犯愁了,我不是告诉你必须得在同一个节点里面吗?中间件还是开启节点dn1的事务,并默认你接下来操作都是在节点dn1里面的。这时忽然来了个节点dn2的操作,中间件又跑到节点dn2上执行,由于默认只开启dn1的事务,如果此时节点dn2失败,中间件不处理,他只能保证dn1上所有操作要么失败要么成功。所以,更新dn1上的a表和插入dn2上表b并不在同一个事务里面,无法保证原子性,就产生了分布式事务。这里指的是,如同Cobar不提供分布式事务的情况。

    2.2 弱XA事务
    Mycat有提供弱分布式事务的解决方案,如同上述情况,在dn1上update表a后,需要在在dn2上insert表b时,在dn2节点开启一个事务,此时我们的事务由事务dn1和事务dn2组成。如果dn1事务成功,并commit,接下来进行事务dn2,如果事务2失败,立马回滚事务dn2的操作,但是不回滚dn1的操作。这就是弱事务的解决方案。

    2.3强XA事务
    如同上述情况,如果事务dn2失败,那么连同之前事务dn1也同时回滚,严格保证分布式事务的原子性。这里原理很简单,实现过程也不是很难。但是考虑到使用业务背景的复杂性,在一个分布式事务中可能需要包含很多个子事务,一方面,如果由于某个原因导致最后一步失败,就立马回滚整个操作,尤其是复杂的组合事务,采用强XA事务会严重影响应用服务器的效率。其次,事务是通过网络在节点之间传输,具有一定不可靠性,如果严格保证事务一致性,将牺牲系统本身很大的性能。所以,软件领域的一句话很实用,解决一个问题的最好方式就是绕过它。尽可能保证所有操作在同一事务下,无法避免的再讨论了。

    展开全文
  • Principles.of.Distributed.Database.Systems,3ed,Ozsu.Valduriez(分布式数据库系统原理),传说中的分布式数据库圣经,英文版滴,中文版的貌似木有
  • 分布式数据库系统在逻辑上可以看作一个完整的系统,用户如同在使用单机数据库系统;但是,从物理角度看,其为一个网络系统,包含若干个物理意义上的分散的节点,而节点之间通过网络进行连接,通过网络协...
  • 数据库系统---分布式数据库系统

    千次阅读 2018-08-23 11:57:41
    分布式数据库系统  近年来,随着计算机技术与网络技术的发展,特别是 Internet 的兴起,分布式数据库系统得到了很快的发展和应用。 1 分布式数据库的概念   分布式数据库系统是相对于集中式数据库系统而言...
  • 可用性(Availability)和一致性...在大数据场景下,分布式数据库的数据一致性管理是其最重要的内核技术之一,也是保证分布式数据库满足数据库最基本的ACID特性中的 “一致性”(Consistency)的保障,在分布式技术发展下

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 177,822
精华内容 71,128
关键字:

分布式数据库系统原理