1.分布式数据库体系结构
分布式数据库体系结构如下图所示:
全局外模式:是对分布式数据库的最高层的抽象。
全局概念模式:是分布式数据库的整体抽象,包含了系统中全部数据的特性和逻辑结构,描述分布数据库全局数据的逻辑结构,是分布式数据库的全局概念视图。本题描述的是全局概念模式。
分片模式:描述全局数据逻辑划分的视图,是全局数据的逻辑结构根据条件的划分;每一个逻辑划分就是一个片段或称为分片。
分配模式(分布模式):描述局部逻辑的局部物理结构,是划分后的片段(或分片)的物理分配视图;是全局概念层的内容。
局部概念层:由局部概念模式描述,是全局概念模式的子集;全局概念模式经逻辑划分后被分配在各局部场地上。
2.二阶段提交
二阶段提交(Two-phaseCommit)是指,在计算机网络以及数据库领域内,为了使基于分布式系统架构下的所有节点在进行事务提交时保持一致性而设计的一种算法(Algorithm)。通常,二阶段提交也被称为是一种协议(Protocol))。在分布式系统中,每个节点虽然可以知晓自己的操作是成功或者失败,却无法知道其他节点的操作是成功或失败。当一个事务跨越多个节点时,为了保持事务的ACID特性,需要引入一个作为协调者的组件来统一掌控所有节点(称作参与者)的操作结果并最终指示这些节点是否要把操作结果进行真正的提交(比如将更新后的数据写入磁盘等等)。因此,二阶段提交的算法思路可以概括为:参与者将操作成败通知协调者,再由协调者根据所有参与者的反馈情报决定各参与者是要提交操作还是中止操作。
所谓的两个阶段是指:第一阶段:准备阶段(表决阶段)和第二阶段:提交阶段(执行阶段)。
准备阶段:事务协调者(事务管理器)给每个参与者(资源管理器)发送Prepare消息,每个参与者要么直接返回失败(如权限验证失败),要么在本地执行事务,写本地的redo和undo日志,但不提交,达到一种“万事俱备,只欠东风”的状态。
提交阶段:如果协调者收到了参与者的失败消息或者超时,直接给每个参与者发送回滚(Rollback)消息;否则,发送提交(Commit)消息;参与者根据协调者的指令执行提交或者回滚操作,释放所有事务处理过程中使用的锁资源。(注意:必须在最后阶段释放锁资源)
3.数据分割和数据复制
数据分割和数据复制是数据分布的两种重要方式。
数据分割有垂直分割和水平分割两种模式,前者是将表中不同字段的数据存储到不同的服务器上;后者是将表中不同行的数据存储到不同的服务器上。
数据复制是为了提升数据访问效率而采用的一种增加数据冗余的方法,它将数据的多个副本存储到不同的服务器上,由RDBMS负责维护数据的一致性。