首页 理论教育分布式数据库系统中目录的选择

分布式数据库系统中目录的选择

【摘要】:分布式数据库系统的数据目录的分布可以有以下多种选择。也就是说,首要的问题是,分布式数据库系统中,数据库目录是集中存放还是分散存放。由于目录的管理均借助于整个系统的相关成分的管理,所以系统的设计和开发开销大大下降。

分布式数据库系统的数据目录的分布可以有以下多种选择。

●可以设置一个全局数据目录存放在节点上。

●可以在每个节点上设置一个全局目录。

●有选择性地在几个节点上设置全局目录。

下面分别深入讨论。

1.集中式数据目录

一种方式是在整个系统中设置一个全局数据目录。所有节点都可以存取这个唯一的数据目录。这种方式的一个突出特点是简单,数据目录中的数据永远保证是完整的、新鲜的。其缺点之一是,一旦存放数据目录的节点损坏或断接(disconnected),目录服务就会停止,整个系统就会瘫痪。

2.全复制数据目录

这种方式中,每个分布节点都存放一个数据目录。这种方式的优点是,系统的可用性大大增强。只要有一个节点存在,就能提供目录服务。其缺点是,目录更新如何保证及时性成了大问题,即一旦目录数据被更新,这个更新就必须传到所有节点,而是否都能传到是一个问题,传到所有节点的延迟也是一个问题。如果更新同步太慢,那么用户使用时查找到的目录数据是过时的,因此做出的决策是不合适的。

3.分布型数据目录

每个节点用于存放自己所拥有的数据目录,每个节点的目录的汇集是全局目录。这种方式的缺点是可用性不足(节点损坏或断接,该节点上存放的目录就不能用),同时,当访问的数据要涉及多个节点的数据时,就要跨节点存取目录,效率有问题。

4.混合型数据目录存储(www.chuimin.cn)

混合型也可分为以下两个子类。

●典型混合型:每个节点维持自己的目录,设一个中央节点维持一个全局目录。

●非典型混合型:每个节点维持自己的目录,若干个节点维持全局目录。

混合型结构还有其他变异,如POREL系统使用的长短目录结构。

因此,分布式数据库系统中的数据目录如何建设,这是一个难题。也就是说,首要的问题是,分布式数据库系统中,数据库目录是集中存放还是分散存放。

对此,不同的系统采用了不同的应对策略。其实,数据字典本身也是一个数据库,只是数据字典里存放的是元数据而非用户数据。因此,数据库设计也包含数据字典的设计。如上所述,分布式数据库系统中,整个数据字典可以存放到一个挑选出来的网络节点上,也可以在每个节点上都放一本字典。换句话说,可以有一本包含数据库的所有(元数据)信息的字典,也可以有多本字典放在每个节点上。

前者(集中存放)简单,但是存放该字典的网络节点会很繁忙。每个查询都会涉及查询数据字典,从而造成该节点太忙而无法及时响应;此外,一旦该节点出现故障,系统就无法运行,从而使这个节点形成瓶颈。后者(分散存放)可以避免这些不足,但是,一旦修改数据,就要涉及所有节点上的数据修改,从而牵一发而动全局。要使数据同步,保持一致,也不是一件容易的事。因此,常常会使用一种折中方法,也就是关键的常用信息在每个节点都存放,而有些不常用的、不是每个节点都涉及的信息则集中存放到与这些信息最相关的节点上。

最后一个要指出的问题是复制(replication)问题。数据字典可以只有一个版本,也可以有多个副本。多个副本的好处是增加了可靠性,因为可以使用一个副本的概率提高了。进一步说,一方面存取字典的延迟缩短了,但是另一方面,维护更新的成本也增加了。原因是,一旦字典更新,所有的副本都需要更新。因此,选择哪种策略,需要权衡得失,根据具体情况来平衡这些因素:响应时间、字典大小、每个节点的节点容量、可靠性要求和字典的易变性(volatility),等等。

数据库的目录相当于数据库的数据库,本质上它具有与数据库系统同样的复杂性。例如需要考虑目录数据的数据结构、存储结构和存取结构,以及目录数据的分割与分布存取控制、并发控制和故障恢复机制等。

对目录的设计和管理通常有两种完全不同的策略。一种是将目录数据视为一种关系数据,其存储结构和存取结构,以及并发控制、分割与分布存取控制、故障恢复机制等都借助于数据库管理系统的相应功能子系统来统一管理。这种策略的优点是使整个系统统一和规整。由于目录的管理均借助于整个系统的相关成分的管理,所以系统的设计和开发开销大大下降。当然,其缺点也是明显的,原因是,将目录数据和用户数据一样对待,都表示为简单的关系,简单却需付出系统效率低下的代价。另一种策略是着重考虑系统的效率,充分研究和分析目录数据的特点,以及目录信息在整个数据库系统运行过程中的作用,然后再进行设计,建立专门的目录子系统,以最大限度地提高效率。这样做必定会增大系统的复杂性和开发代价,但这是应该且必须付出的代价。