2. 石家庄铁路职业技术学院, 河北 石家庄 050041
2. Shijiazhuang Institute of Railway Technology, Shijiazhuang 050041, China
数据中心是云计算的基础设施,而海上信息中心是数据中心和云计算在海洋领域的具体应用。随着我国海洋产业的不断发展,造船技术的不断提高,和海上业务的日益复杂,越来越需要一种能够远程提供强大信息处理能力、决策支持能力和数据存储能力的信息系统。因此,海上信息中心应运而生,以云计算的方式,向不同的用户、船舶和应用提供服务。
然而,与传统的云计算和数据中心不同,由于需要适应海洋应用环境,以及以船舶作为使用主体,使得海上信息中心通常采用分布式的架构[1-3],部分服务器部署在船舶上,而信息中心的主要部分和管理机构则采用岸基部署。这种架构的优势在于,一方面,用户在使用服务时,只需要访问本地数据副本,降低通信成本和访问延迟,从而提高了应用性能;另一方面,数据的多个副本能够同时提供本地服务,从而能够获得多倍的数据吞吐量,并且能够避免系统因为数据复制故障而导致整个应用程序的瘫痪,增强了数据系统的有效性和可靠性。
如何保证数据在分布式数据库中的一致性,是整个海上信息中心能否正常工作的关键,也一直是数据库应用程序中的一个热点问题。目前,现有的用于远程并发事务的分布式数据库同步解决方案,大多数采用两阶段锁定,以实现一致性复制[4]。但是,这种锁定机制将导致低效率,响应慢,使得整个应用系统的可靠性降低。为了解决以上问题,本文基于中间件技术,通过采集、分析、事务和冲突检测,实现对等数据库间的同步。
1 数据库同步技术 1.1 基本概念数据库同步指的是数据库系统有2个或多个数据库,通过技术手段将数据在一个数据库中传播到另一个数据库,以保持数据库中所有数据对象的一致性。因此,在基于系统的数据库中,一个数据库中的数据发生更改,那么其他数据库中的数据也要进行更改,从而确保应用程序一致性[5]。
在分布式数据库系统中,数据库中的相同数据通常会有多个节点,引入数据副本,提高系统的性能和可靠性。鉴于这种情况,由于多个节点可以对相同的数据进行操作,因此需要在所有节点保持数据一致性,以确保系统的正常操作。
1.2 同步模式数据库同步模式为主从模式和对等模式。主从同步模式的原理意味着只有一个节点可以提供数据更新服务,称为主节点,其他节点数据库称为从节点。用户只能从节点查询数据,而主节点可以接收查询和更新操作。主节点和从节点分散在不同的地理位置,可以快速的进行分布式查询,从而分散分布式数据库系统的压力。但是,由于更新操作仍然集中在一个数据库节点,因此当大量更新操作并发时,数据库仍然会进行很多更新行为,导致系统性能降低,同时,当主节点发生故障时,系统将无法提供更新服务,容错性差。
对等(Peer-to-Peer)模式下,所有节点的数据库副本可以提供服务查询和更新数据,以平衡系统负载并提高系统性能。当节点发生故障时,其他节点仍然可以提供跟踪和更新服务,以进一步提高系统的容错能力。
2 系统设计在分布式数据库中,多个副本可以提供读写数据服务,即每个节点数据的副本,具有相同的功能。因此,在设计同步系统时,组成数据副本的组中的每个成员通过通信模块的同步系统进行交互,从而确保数据副本的一致性。本文提出的海上信息中心同步系统的结构如图 1所示。
根据组中的数据节点的副本与通过网络直接连接的副本,可以形成每个副本的逻辑单元,本文称该逻辑单元为节点,每个节点由两部分组成。
1)数据库同步中间件
分布式数据库系统,如每个节点的模式可以设定为读写数据。数据库同步中间件对用户透明,同步系统对用户提交的读写事务进行实时监控和拦截,并由中间件分析,当分析结果表明,用户提交的事务包含节点之间同步的写入数据通信,那么启动并发检测事务是否存在冲突,使数据在每个节点的实时副本中保持一致性。
2)数据库系统
分布式数据库中的每个节点都安装在数据库系统中,用于存储应用程序数据。对于用户使用的节点,称为本地数据库(或本地副本),其他节点称为远程节点,当数据库系统存在于远程节点上,则称为远程数据库(或远程复制)。
3 同步协议设计当用户在本地节点上提交事务T时,同步中间件捕获事务,并进行分析。主要分为以下3个阶段:
1)本地阶段
数据库中间件通过事务管理模块提供的陷阱机制,捕获事务T,并对该事务进行分析。数据库连接中间件的副本称为RL ∈R。R是所有副本{Ri ,…,Rn }的集合。如果T∈RL ,那么T∈RL 是事务T的本地数据库。基于操作请求事务的类型,事务集被提取为读操作和写操作集。如果检测到用户提交了仅包含读取操作的事务,则事务是只读事务,其可以在本地节点中直接执行,将结果返回给用户;如果检测到,写操作集不为空,那么事务是更新事务,事务需要进行冲突检测。
2)冲突检测
在每个节点有2个数据队列:一个用于本地节点的存储和维护,读取更新事务集合;另一个用于存储由本地冲突检测阶段设置的所有数据写入操作的副本。在本地阶段完成后,进入并发事务冲突检测,必须首先确定是否有一个事务与队列中的T冲突,如果检测到,中止事务T并返回,当测试与本地数据队列没有冲突时,则发送写操作集给节点组的其他成员。
3)实施阶段
通信模块用于接收从其他节点发送的更新事务的写入集合和同步相关信息,中间件通信模块结合了有序队列机制和多播通信的特性,因此数据队列中的所有节点事务顺序是一致的。测试结果的副本能够通过该模块发送给其他组成员,以便节点可以表示所有节点的测试结果,也就是说,如果存在节点的冲突;所有节点都被判断为冲突。
4 实验验证与传统方法(两阶段锁定,2PL)相比,本地节点冲突检测和处理的方法大大减少了不必要的通信消耗,同时冲突处理消除了并发事务可能引起的阻塞。
测试在4台基于网络环境的计算机上完成,4台计算机作为4个对等节点,节点部署数据库同步中间件,数据库系统使用广泛使用的Oracle 10g。具体测试环境如图 2所示。在数据库系统的每个节点都存储了一个同步测试表,为了测试复制一致性,所有节点具有相同初始数据表。
通过不同用户在不同节点和不同数据量的测试,模拟并发事务的效果。在测试中,4个用户代表 4个节点,在不同的时间向数据库系统提交请求。记录系统完成所有节点数据一致性处理所需时间。测试结果如图 3所示,由于冲突检测策略不传播读操作,因此系统可以满足一致性,同时降低通信成本,与2PL策略相比,完成事务所需的时间也显著减少。
随着海上船舶和各种业务对云计算日益增长的需求,海上信息中心将会成为我国海洋信息系统的重要组成部分和基础设施。本文对海上信息中心中分布式数据库的同步机制进行了研究,针对传统方法的不足,提出了一种基于中间件的分布式数据库同步机制,设计了该机制的工作框架和同步协议,并通过实验验证,证明了该方法相比于传统的两相锁定方法,具有更高的效率。
[1] | DING Zhiming, ZHOU Xiaofang. Location update strategies for network-constrained moving objects[C]//13th International Conference on Database Systems for Advanced Applications, DASFAA 2008. |
[2] | DING Zhi-ming, GUO Li-min, MENG Xiao-feng. Adaptive location update mechanism for network-constrained moving objects in changeful trafficconditions[C]//2009 Tenth International Conference on Mobile Data Management:Systems, Services and Middleware. |
[3] | DING Zhi-ming, GÜTING RH. Managing moving objects on dynamic transportation networks[C]//Proceedings-16th International Conference on Scientific and Statistical Databse Management, SSDBM 2004. |
[4] | WOLFSON O, YIN Hua-bei. Accuracy and resource consumption in tracking and location prediction[J]. SSTD, 2003 (27): 89–96. |
[5] | DÜNTGEN C, BEHR T, GÜTING RH. BerlinMOD:a benchmark for moving object databases[J]. The VLDB Journal, 2009 (18): 1335–1368. |