分布式数据库系统

来自CloudWiki
跳转至: 导航搜索

1.分布式系统

分布式系统学习路线

分布式应用系统学习路线.png


4.2.1基本概念

分布式系统2.png

 分布式系统(distributed system)是建立在网络之上的软件系统。正是因为软件的特性,所以分布式系统具有高度的内聚性和透明性。因此,网络和分布式系统之间的区别更多地体现于高层软件(特别是操作系统),而不是硬件。

4.2.2分布式的特征

 分布式系统是多个处理机通过通信线路互联来构成松散耦合的系统。对系统中某台处理机而言,所有处理机和相应资源都是远程的,只有本机资源才是本地的。至今,对分布式系统的定义尚未形成统一的见解。一般认为,分布式系统应具有以下4个特征:

1.分布式

 分布式系统由多台计算机组成,他们在地域上是分散的,整个系统的功能是分散在各个节点上实现的,因而具有数据处理的分布性.

2.自治性

 分布式系统每个节点都包含自身处理机和内存,这些节点既能自治工作,也可以共享的线路来传送信息,协调任务处理.

3.并行性

 一个大的任务可以划分为若干个子任务,分别在不同的主机上执行。

4.全局性

 分布式系统中必须存在一个单一的、全局的进程通信机制,使得任何一个进程都能与其他进程通信,而不用区分本地通信与远程通信。同时所有的CPU上运行同样的内核,使协调工作更加容易.

4.2.3分布式系统的优点

1.资源共享

若干不同的节点通过通信网络彼此互联,一个节点上的用户可以使用其他节点上的资源。允许设备共享,数据共享,远程共享文件以及其他操作.

2.加快计算速度

如果一个特定的计算任务可以划分为若干个并行处理的子任务,则可把这些子任务分散到不同的节点上.使它们同时在这些节点上运行,从而加快计算速度。

3.可靠性高

分布式系统具有高可靠性。如果其中某个节点失效了,则其余的节点可以继续运行,整个系统不会因为一个或少数几个节点的故障而全体崩溃。因此,分布式系统有很好的容错性能。

4.通信方便、快捷

分布式系统中各个节点通过一个通信网络互联在一起。通信网络由通信线路、调制解调器和通信处理器等组成,不同节点的用户可以方便地交换信息。在底层,系统之间利用传递消息的方式进行通信,这类似于单CPU系统中的消息机制。单CPU系统中所有高层的消息传递功能都可以在分布式系统中实现,如文件传递、登录、邮件、Web 浏览和远程过程调用(Remote Procedure Call,RPC)。
分布式系统实现了节点之间的远距离通信,为人与人之间的信息交流提供了很大方便。不同地区的用户可以共同完成一个项目,通过传送项目文件,远程登录进入对方系统来运行程序,如发送电子邮件等,来协调彼此的工作。

4.2.4分布式系统的类别

1.分布式计算

分布式计算是近年来大数据处理数据流入的关键,即将一项庞大的任务(例如总计1000亿条记录)分割成许多较小任务的技术,当计算任务扩大时,只需添加更多计算节点即可。这个领域的早期创新者是Google(谷歌)公司。当时谷歌面对海量数据处理,急需为分布式计算创造一种新的范式——MapReduce(分布式计算系统),并在开源社区基于该理念创建了Apache Hadoop(套用在通用硬件构建的大型集群上运行应用程序的框架)。

2.布式文件系统

分布式文件系统可以被认为是分布式数据存储,它们与其他概念一样,即在一组机器中存储和访问大量数据,所有这些数据都显示为一个整体。它们通常与分布式计算并驾齐驱。例如,雅虎因为在超过42,000个节点上运行HDFS并存储600 PB数据而出名。

3.分布式消息

消息传递系统为整个系统内的消息/事件的存储和传播提供了一个中心位置,允许将应用程序逻辑直接从其他系统中分离出来。已知规模LinkedIn(全球职场社交平台)的Kafka集群每天处理1万亿条消息,每秒处理450万条消息。

4.分布式数据库系统

分布式数据库系统通常使用较小的计算机系统,每台计算机可单独存放在一个地方。每台计算机中都保留DBMS(数据库管理系统)的一份完整拷贝副本,或者部分拷贝副本,并具有局部的数据库。许多位于不同地点的计算机通过网络互相连接,共同组成一个完整的、全局的逻辑上集中、物理上分布的大型数据库。

4.3分布式数据库系统

分布式数据库系统 (2).png

4.3.1基本概念

分布式数据库系统(DDBS)包含分布式数据库管理系统(DDBMS)和分布式数据库(DDB)。

4.3.2分布式数据库系统工作机制

一个分布式数据库在逻辑上是一个统一的整体,在物理上则是分别存储在不同的物理节点上。一个应用程序通过网络的连接,可以访问分布在不同地理位置的数据库中。它的分布性表现在数据库中的数据不是存储在同一场地,更确切地讲,就是不存储在同一计算机的存储设备上。这与集中式数据库是有区别的。从用户的角度来看,一个分布式数据库系统在逻辑上和集中式数据库系统一样,用户可以在任何一个场地执行全局应用,就好像那些数据是存储在同一台计算机上。这和单个数据库管理系统(DBMS)管理一样,用户并没有感觉不一样。

4.3.3分布式数据库系统的特点

1.独立透明性

数据独立性是数据库追求的主要目标之一。分布透明性指用户不必关心数据的逻辑分区,不必关心数据物理位置分布的细节,也不必关心重复副本(冗余数据)的一致性问题,同时也不必关心局部场地上数据库支持哪种数据模型。

2.集中节点结合

数据库是用户共享的资源。在集中式数据库中,为了保证数据库的安全性和完整性,对共享数据库的控制是集中的,并设有DBA(数据库管理员)负责监督和维护系统的正常运行。在分布式数据库中,数据的共享有两个层次。一是局部共享,即在局部数据库中存储局部场地上各用户的共享数据,这些数据是本场地用户常用的。二是全局共享,即在分布式数据库的各个场地也存储可供网络中其它场地用户共享的数据,并支持系统中的全局应用。

3.复制透明性

用户不用关心数据库在网络中各个节点的复制情况,而被复制的数据更新都由系统自动完成。

4.易于扩展性

持透明的水平扩展,那么就可以增加多个服务器来进一步分布数据和分散处理任务。在大多数网络环境中,单个数据库服务器无法满足业务增长的需求。如果服务器软件支

5,适应性

由于计算机资源靠近用户,因而可以降低通信代价,提高响应速度,实现数据库使用的方便和经济。

6.可靠性可用性

改善系统的可靠性和可用性是分布式数据库的主要目标,可将数据分布于多个场地,并增加适当的冗余度,以此提高系统的可靠性。对于一些可靠性要求较高的系统而言,这一点显得尤其重要。

7.充分性

提高现有集中式数据库的利用率。当在一个大企业或大部门中已建成了若干个数据库之后,为了利用相互的资源和开发全局应用,就要研制分布式数据库系统。这种情况可称为自底向上地建立分布式系统。

8.扩展性

当一个单位规模扩大要增加新的部门(如银行系统增加新的分行或主厂增加新的科室、车间)时,分布式数据库系统的结构为扩展系统的处理能力提供了较好的途径:可以在分布式数据库系统中增加一个新的节点。这样做比在集中式系统中扩大系统规模要方便、灵活、经济的多。系统的正常运行,提供了逐渐扩展系统能力的较好途径。分布式数据库系统能方便地把一个新的节点纳入系统,不影响现有系统的结构和