焦点期刊
在线客服

著作编辑 著作编辑

咨询邮箱:568476783@qq.com

计算机论文

多个DM3系统之间的信息共享

时间:2022-07-06 22:30 所属分类:计算机论文 点击次数:

多数据库系统是分布式数据库系统的重要分支,是数据库研究的新兴领域。随着企业规模的不断扩大,各部门所需的信息相互交错、相对独立。这就要求各部门使用的数据库既能高度自治地工作,又能共享信息。
DM2.采用客户/服务器模型、客户机和服务器、服务器和服务器通过网络连接,通过信息连接,形成紧密耦合的分布式数据库系统。其工作流程如下:客户机登录到服务器,服务器成为代理服务器;接收客户机的消息,然后根据全球数据字典决定是独立完成操作,还是与其他服务器合作处理消息,然后由代理服务器返回客户机。由于DM每个服务器站点的全局字典完全相同,任何全局表的信息都会记录在全局字典中。如果用它来构建企业的数据库系统,大量只对企业某个部门有用的信息将充斥在各个部门所有服务器的全球字典中,增加冗余。而且,当全局表DDL操作时,为了保证全局字典的一致性,必须锁定所有服务器的全局字典。DM2封锁全局字典的方式是使用令牌环,即令牌绕着虚环(非真实环)传输。如果服务器想操作全局字典,它必须等到令牌到达服务器。各部门建立的大部分全局表只对本部门有用。DDL操作时,应封锁所有服务器的全局字典,并通过令牌访问全局字典。这严重损害了数据库的效率。
为弥补上述不足,在DM2的改进版本DM3中增加了连接各独立的协调器的协调器DM3.数据库子系统,协调各子系统之间的各种关系,使各子系统能够高度自治地工作,又能有效地共享信息。
一.多数据库系统结构
该系统可以看作是一个高度自治的联邦数据库系统,由多个数据库子系统与协调器连接。其中,每个子系统独立处理系统内部事务,子系统之间的信息共享由复制技术提供,副本之间的一致性由协调器协调,所需的信息在初始化时写入协调器的组间数据字典。当修改子系统中的数据副本时,子系统将修改通知协调器修改数据的其他副本,以确保所有副本的一致性。
从上面可以看出,子系统并没有直接接触,而是直接与协调器连接,协调器统一管理子系统之间的通信。这样,当子系统修改副本时,就不必关心相应的子系统处于什么状态,也不必等待回复消息和异常处理,所有这些都由协调器管理。因此,它不仅提高了系统的运行效率,而且确保了子系统的独立性。
协调器主要有三个功能。首先,它初始化协调器和服务器,并将相关信息存储在组间字典中;其次,管理不同子系统之间的通信,维护副本的一致性;最后,当子系统崩溃时,进行异常管理和恢复。
二.多数据库互联机制的主要策略
多个DM3系统之间的信息共享是通过副本实现的,副本的一致性是由协调器维持的,这是一种弱一致性。通常,多数据库系统之间的一致性是通过协调器定期访问服务器日志来完成的。由于副本的更新是随机的,如果使用这种方法,数据可能会被修改很多次,但相应的副本仍然没有被修改,这损害了数据的一致性;数据可能不会被修改,但协调器已经多次访问服务器日志,从而降低了系统的效率。
因此,当数据被修改时,服务器通知协调器相关信息,然后协调器通知相关系统修改相关数据。这样,数据修改及时(仍然是弱一致性),协调器不会访问未修改的服务器,提高了准确性。
为了使协调器正常工作,我们为底层数据库管理系统工作DM2进行了修改。基表控制块TV_CTRL_BLOCK中增加一项IsReplication。建表时,初始化为false;当该表建立副本时,该赋值为true。具体算法如下。
1.初始化算法。
协调器:从用户或应用程序接收待连接的两个系统中的服务器名称,需要复制的表名;登录到两个系统的服务器上;向有待复制表的服务器发送预复制信息;等待服务器消息;如果失败,向服务器、用户或应用程序发送失败信息;如果成功,从消息中取出待复制表的相关信息,根据这些信息向另一个系统的服务器发送建设表消息;等待服务器消息;如果失败,向服务器、用户或应用程序发送失败信息;如果成功,调整数据转移程序,复制数据;将相关信息写入字典并退出。
服务器:当服务器收到预复制消息时,基表控制块TV_CTRL_BLOCK中的IsReplication赋为true。同时,取出待复制表的相关信息,形成应答信息发送给协调器。
当服务器收到失败的消息时,基表控制块TV_CTRL_BLOCK中的IsReplication赋为false。
2.维护算法。
协调器:从组间字典读取相关信息,登录相应系统;等待消息;从系统服务器上收到修改消息后,确定消息的目的地,然后转发;如果失败,定期重新发送。
服务器:1)等待消息;2)收到客户或应用程序的消息后,检查是否修改数据(如delete,update或insert等);如果是,检查基表控制块TV_CTRL_BLOCK中的IsReplication是否为true;向协调器发送修改信息;继续执行服务器程序的其他部分。
3.恢复算法。
如果协调器连接的系统中有一个交叉,则副本的修改不能及时反映在交叉系统中。此时,需要恢复算法进行处理。
协调器:当协调器发现一个系统已经崩溃时,采取以下步骤。
与系统相关的变量open赋值为false;打开记时器;等待消息;如果收到的消息是其他系统修改崩溃系统副本的命令,则依次存储;如果收到的消息是记时器发送的时间消息,则向崩溃系统发送登录命令;如果登录成功,open的值改为true;依次发送存储信息;如果登录失败,请退出。
我们曾经在三个DM在3个数据库系统中,使用两个协调器连接。因此,运行良好,每个副本最终可以保证一致,每个副本之间的时间间隔很短。此外,协调器也可以在异常情况下正常工作。