1、分布式数据库系统由松散耦合的站点组成,这些站点不共享物理部件。
在同构分布式数据库系统中,所有站点都使用相同的数据库管理系统软件,它们彼此了解,共同合作处理用户的请求。
相反,在异构分布式数据库中,不同站点可能使用不同的模式和不同的数据库管理系统软件。
2、分布式数据存储:考虑一个要存储到数据库中的关系r。
复制:系统维护这个关系的几个相同的副本,并把每个副本存储在不同的站点上。复制的替代方法是只存储关系r的一份拷贝。
分片:系统把关系划分为几个片,并把每个片存储在不同的站点上。
分片和复制可以这样组合:一个关系可以划分为几个片,并且每个片可以有几个副本。
3、数据复制的优缺点:
可用性。增加的并行度。增加的更新开销。
4、数据透明性:分片透明性。复制透明性。位置透明性。
数据项必须有有唯一的名字。
5、分布式事务:事务必须保证ACID特性。
局部事务:只在一个局部数据库中访问和更新数据的事务。
全局事务:...多个....
6、系统结构:
事务管理器:管理那些访问存储在一个局部站点中的数据的事务(或子事务)的执行。
事务协调器:协调在该站点上发起的各个事务(既有局部的也有全局的)的执行。
每个事务管理器都要负责:
1)维护一个用于恢复目的的日志。
2)参与到一个合适的并发控制方案,以协调在该站点上执行的事务的并发执行。
协调器负责:
1)启动事务的执行。
2)将事务分成一些子事务,并将这些子事务分派给合适的站点去执行。
3)协调事务的中止,这可能导致事务在所有站点上都提交或在所有站点上都中止。
7、故障类型:
站点故障。消息丢失。通信链路故障。网络划分。
8、分布式数据库系统由站点的集合组成,每个站点维护一个本地数据库系统。各个站点能够处理局部事务:这些事务访问的数据仅位于该单个站点上。此外,站点可以参与到全局事务执行中:这些全局事务访问多个站点上的数据。全局事务的执行需要在站点之间进行通信。
9、为了保持原子性,执行事务T的所有站点必须在执行的最终结果上取得一致。T要么在所有站点上提交,要麽在所有站点上中止。
10、两段提交协议:
可能导致阻塞,在这种情况下,事务的命运必须等到故障站点(协调器)恢复后才能确定。为了减少阻塞的可能性,可以使用三阶段提交协议。
11、持久消息:
该模式将单个事务拆分成在不同数据库执行的多个部分。持久消息(无论是否发生故障,都保证正好只传送一次)被传送到需要采取动作的远程站点。
持久消息的实现:
1)发送站点协议:当事务希望发送持久消息时,它在专用关系message_to_send中写一条包含消息的记录,而不是直接向外发送消息。这个消息也被赋予一个唯一的消息标识符。
2)接收站点协议:当站点接收到持久消息时,它运行一个事务将消息加入到专用关系received_message中,前提是该消息没有出现在该关系中(唯一的消息标识符允许检测出重复)。在事务提交之后,或消息已经出现在该关系中时,接收站点向发送站点发回一个确认。
注意:在事务提交之前发送确认是不安全的。删除消息会导致无法检测到重复传送。
12、如果任何一个包含数据项副本的站点发生故障,那么对该数据项的更新就不能进行。
13、单一锁管理器:实现简单,死锁处理简单,瓶颈,脆弱性。
分布式锁管理器:每个站点维护一个本地锁管理器。
14、时间戳:
每个事务被赋予一个唯一的时间戳,系统用时间戳来决定串行化顺序。
在集中式模式中,由单个站点来发布时间戳。在分布式模式中,每个站点使用逻辑计数器或本地时钟来产生唯一的局部时间戳。通过将唯一的局部时间戳和站点标识符(也必须是唯一性)串接起来,得到一个全局时间戳。
15、在主从复制下,数据库允许在主站点上更新,并自动将更新传播到其他站点上的副本。事务可以在其他站点上读取副本,但是不允许对它们进行更新。
在多主副本(也称可在任何地方更新的复制)情况下,允许数据项的任何副本上更新,并且自动传播到所有副本。
16、延迟传播方法:
1)在副本上的更新被转化为在主站点上的更新,然后延迟传播到所有副本。
2)更新在任何副本上执行,并传播到所有其他副本。
17、死锁处理:
时间戳排序方法可以直接用于分布式环境。死锁预防可能导致不必要的等待和回滚。
要求每个站点维护一个局部等待图,用于表达局部事务和数据项。若图中存在环则产生了死锁。不存在环却不以为着没有死锁。
在集中式死锁检测方法中,系统在单个站点中构造和维护一个全局等待图:该站点是死锁检测的协调器。
18、为确保一致性必须避免出现这些情况:
1)两个或更多的中央服务器在不同的分区中选出。
2)不止一个分区更新某个复制的数据项。
19、站点重建:
当故障站点恢复时,它必须发起一个过程来更新其系统表,使之反应在该站点宕机时所发生的变化。如果该站点有任何数据项的副本,它必须获得这些数据项的当前值,并保证它能接受到以后的所有更新。
20、软状态指的是数据库状态可能不能准确确定的性质,由于网络划分每个副本有可能有一定程度不同的状态。
21、中间件系统是集成多个异构数据源、提供数据的一个集成的全局视图并提供在全局视图上的查询工具的系统。
22、称作标签的特殊数据项在每个本地数据库系统中创建。访问站点上数据的每个全局事务必须在该站点上写标签。
23、目录系统:
目录是关于某些类别的对象(例如人)的信息列表。目录可用于寻找有关特定对象的信息,或者反方向找到满足特定需求的对象。满足前向查找的目录叫白页,满足反向查找的目录称为黄页。
24、一些分布式算法需要使用协调器。为了提供高可用性,系统必须维护一个准备好在协调器故障时能继续其职责的备份副本。另一种方法是在协调器发生故障后选出新的协调器。确定哪个站点应该作为协调器的算法称为选举算法。