基于IIPP和移动Agent的冗余数据一致性的研究与实现
2018-04-13李海荣方中纯
李海荣 方中纯
摘 要: 冗余技術在提高数据可靠性和可用性方面发挥了重要作用,随之而来的数据一致性问题成为研究热点。提出一个基于IIPP和移动Agent的一致模型,在IIPP思想的指导下,应用Agent具有移动特性和处理任务的特性来进行事务的发送、转换及分发等操作,从而实现数据的弱一致性。该模型在实际应用中得到了很好的验证,提高了系统的智能性、高效性及自适应性。
关键词: IIPP; 移动Agent; 弱一致性; 分布式数据库; 冗余技术; 一致性模型
中图分类号: TN911.2?34; TP392 文献标识码: A 文章编号: 1004?373X(2018)08?0092?04
Abstract: Redundancy technology plays an important role in improving the data reliability and availability, and the subsequent data consistency problem becomes a hot research topic. A consistency model based on IIPP and mobile Agent is put forward. Under the guide of IIPP idea, operations such as transaction sending, transferring and distribution are conducted by means of the mobile feature and task processing feature of Agent to finally realize the weak consistency of data. The model was well verified in practical application, which improves the intelligence, efficiency and adaptability of the system.
Keywords: IIPP; mobile Agent; weak consistency; distributed database; redundancy technology; consistency model
为了保证和提高数据的可靠性(Reliability)和可用性(Availability),分布式数据库经常采用冗余存储的方式,即数据产生多个副本,存储于不同服务器和数据中心。冗余机制的引入实现了网络带宽消耗减少,数据访问延迟减少的目的,但同时也产生了数据一致性问题。因此,如何高效、智能地解决一致性问题,从而保证系统的可用性与可靠性,已经成为分布式数据库的一个研究热点。
一致性又分为强一致性和弱一致性[1]。强一致性是指同一数据的多个备份之间,要任何时刻都保持一致,适用于对数据实时性和准确性要求较高的场合,如银行账号的余额更新等。弱一致性要求只要数据最终达到一致即可,也称为最终一致性或优化一致性。弱一致性具有网络灵活性,并且节点间的同步协调要求低,是采用较为广泛的一种一致性策略。
目前公认的最为有效的一致性算法是由Leslie Lamport 于1990年提出的一种基于消息传递的一致性算法:Paxos[2]。另外,许多学者也提出了很多其他算法,较为常见的有:事务控制法、复制控制法和消息队列法[3?4]等。
本文提出一种基于智能信息推拉技术(Intelligent Information Push &; Pull,IIPP)思想的数据弱一致性的更新模型DCIMA(Data Consistency based on IIPP and Mobile Agent),其利用移动Agent具有移动特性和处理任务的特性来解决分布式数据库系统中数据一致性问题,使得系统具有智能性、高效性及自适应性。
1 相关知识介绍
1.1 智能信息推拉技术
所谓拉取(Pull)指用户根据自身需求,有目的地从信源中提取所需信息,如用户进行目录查询、数据库查询,或者系统自动进行的定时信息搜索等。拉取的针对性好,个性服务,但是及时性差,对用户的要求较高。
推送(Push)技术是根据用户需要,有目的、按时地将用户感兴趣的信息主动发送到用户的计算机中,如各种新闻、财经、体育等信息。信息推送软件由批处理模块和实时智能模块组成,分别负责找到用户的浏览模式建立模式库和根据模式库为用户自动推荐其可能感兴趣的页面或其他知识。其优点是:对用户要求低,普遍适用于大众;及时性好,信源可及时地向用户“推送”不断更新的动态信息。
智能信息推拉技术[5]就是将信息推送与拉取模式结合,做到取长补短,优势互补,同时融入人工智能、知识发现技术、互联网以及数据库技术。IIPP的产生,可以提高网络及数据库的智能水平,进而提高用户获取信息的效率和能力,如图1所示。
目前有许多改进信息推拉的结合方式,如:先拉后推、先推后拉,推中有拉,拉中有推等及其优化组合的推拉方式,提高互动通信的智能水平。
1.2 Agent
Agent是一个具有自适应性和智能性的软件实体,能代表用户或其他程序,以主动服务的方式完成一项工作。其概念由Minsky在1986年出版的 《思维的社会》 一书中提出。Minsky认为社会中的某些个体经过协商之后可求得问题的解,这些个体就是Agent。从此,Agent的概念便被引入人工智能和计算机领域,并迅速成为研究热点。
Agent至少应具备以下几方面的关键属性[6]:
1) 自主性:Agent具有属于其自身的计算资源和局部于自身行为控制的机制,能在无外界直接操纵的情况下,根据其内部状态和感知到的(外部)环境信息,决定和控制自身的行为。
2) 交互性:能与其他Agent进行多种形式的交互,能有效地与其他Agent协同工作。
3) 反应性:能感知所处的环境,并对相关事件做出适时反应。
4) 主动性:能遵循承诺采取主动行动,表现出面向目标的行为。
5) 推理和规划能力:Agent具有学习知识和经验及进行相关的推理和智能计算的能力。
移动Agent(Mobile Agent)是可以在网络上进行移动的、自适应和智能性的软件实体。它和普通Agent相比,主要表现的特征就是能通过网络把Agent移动到指定位置,即把软件执行的功能移动到指定位置。用移动Agent可以方便地协调远程的执行实体,如:进程、线程、服务、Agent等。本文利用移动Agent进行事务的发送、转换和分发,从而使得系统的效率提高。本文使用的MAP(Mobile Agent Platform)是由IBM公司用純Java开发的Aglet。Aglet提供了简单而全面的移动Agent编程模型、它为Agent提供了动态和有效的通信机制、还提供了一套详细且易用的安全机制。Aglet同时传送代码和状态,以线程的形式产生于一台计算机上,可随时暂停正在执行的工作,并允许把整个Aglet分派到另一台计算机上,再重新启动执行任务。由于Aglet是线程,因此不会消耗太多的系统资源。
2 DCIMA模型
2.1 相关概念介绍
1) 实体
实体是指计算机中能够运行的程序组、进程、线程、服务、Agent等。
2) 协调控制器
协调控制器即协调/分发服务器,能够对整个系统进行协调和事务的分发,用于管理、协调节点间的工作实体,是整个模型的核心。
3) 出版表信息
当一个数据库中的一个(或多个)表与其他数据库中的一个(或多个)建立起对等更新关系时,称这个(这些)表已经出版了。
4) 目录
在模型中,把出版表的信息(包括所属的数据库名、表名等)称为目录,也可以看作是表的集合。
本文提出的模型DCIMA采用的是“局部式”方法来分配目录。即把每个数据节点的出版表信息全部放在协调控制器上的全局目录或系统目录(Global Directory,GD)中,但是这并不表示在每个数据节点上执行应用时都要查询GD,因为每个数据节点都存放有一个局部目录(Local Directory,LD)(包含了本数据节点的出版表的信息)。这样的设计使得应用在执行时只需查询本地的LD即可,从而提高系统的执行效率和可用性。
2.2 DCIMA模型的体系结构
模型DCIMA的体系结构如图2所示。
图2所示的模型DCIMA是一个三元组,其中:
PPR(Push?Pull Rules)是推拉规则,系统根据推拉规则对数据库更新事务进行推送和拉取。推拉规则包括三种:周期性推拉事务、当用户访问时拉取事务及基于配置规则进行推拉事务;
PPEE(Push?Pull Executing Entities)是推拉执行实体,对保存于数据库节点的弱一致更新事务进行推送和拉取的执行程序集;
DAU(Database Access User)是数据库访问用户,如:数据库管理员、业务操作员等。
从上面的弱一致更新模型DCIMA可以看出,更新分布式冗余数据有三种途径:事务推送、事务拉取和推拉结合。所有更新事务都通过协调控制器处理并转发。事务传送的时机包括如下4种情况:
1) 数据节点用低优先级执行实体周期性推送事务到协调控制器,协调控制器接收到事务并做必要的异构转换,然后分发到对应数据库节点。
2) 备份节点周期性从源节点拉取事务,这种方法是通过协调控制器转发拉取事务命令,数据节点收到有数据库节点拉取事务时,就把没有发送出去的更新事务提交给协调控制器,协调控制器再用情况1)中的方式处理。
3) 当用户访问到备份节点时,触发拉取事务功能,拉取事务的过程与情况2)相同。
4) 根据推拉规则进行推送和拉取更新事务,推拉流程同上。
2.3 事务的操作
本文利用移动Agent具有移动特性和处理任务的特性来解决分布式数据库系统中数据一致性问题。 其中,事务的发送、转换及分发等操作由部署在协调控制器和数据节点上的多个Agent完成。表1描述了主要Agent及其作用。
从物理分布上来讲,数据库节点上的Agent分布在需要进行冗余一致的数据库应用服务器上,对协调控制器上的Agent来讲,它既可以分布在一个单独进行协调分发的服务器上,也可以与数据库节点上的Agent一起放在一个数据库节点的数据库应用服务器上。
首先需要在数据库节点和协调控制器上部署系统的协调目录。数据库节点上的目录只是包含本节点的相关信息;协调控制器上的目录是全局的,包含所有数据库节点的目录。在协调系统启动之前,数据库节点上是没有运行协调Agent的。然后,从协调控制器上启动协调系统,在协调系统初始化的时候,协调系统会为数据库节点建立日志阅读Agent、用户Agent、网络状态检测Agent和事务发送Agent,并把这些Agent移动到所有数据库节点上去执行。同时,协调控制器给自己也建立社群管理Agent、用户Agent、网络状态检测Agent、事务转换Agent和事务分发Agent,并在协调控制器上执行。这些Agent构成一个和谐的Agent社群,它们在社群管理Agent的协调下,互相制约、互相配合共同为完成冗余数据一致性目标而工作。
表1中,UTT(Update Transaction Table)表示更新事务表,在数据库节点和协调控制器上都有部署,分别用于保存冗余表的更新事务和数据库更新事务。
3 DCIMA的应用案例
DCIMA模型在内蒙古包头市教育局考试管理系统得到了实际应用,效果良好。包头市教育局管理其下9个考区,每个考区都有自己的数据库,用来存储本考区的信息。9个考区和市教育局服务器形成的网络拓扑如图3所示。本文以基于表2中的规则进行数据的弱一致更新进行说明。
在表2中,“推拉标志”的含义是:1表示信息推送;2表示信息拉取;3表示信息推拉结合。“触发方式”的含义是:1表示周期触发;2表示定时触发;3表示实时触发。例如:表2中的第37条规则表示该规则是2016年4月20日上午11点25分9秒建立,规则表明在2016年4月20日下午18点30分要触发信息推送执行实体进行数据弱一致,RR0089,RR0090,RR0091和RR0092是4条出版关系,即:有4个信息表需要以信息推送的方式进行数据一致。
4 结 语
在分布式数据库系统广泛使用的今天,如何实现数据的一致性是提升整个数据库系统性能的重要研究课题。本文提出一种基于IIPP、应用Mobile Agent实现一致性的模型DCIMA。模型应用IIPP,使得系统能够智能地、自主地把用户需要的信息推送到用户端,也能主动从远程获取用户感兴趣的信息。如果机器学习算法比较好,就能有更完善的推拉规则,从而进一步改善系统的性能。该模型的优点有:更新效率高,因为Agent携带事务走后,系统可以做其他任务,得到Agent回应后通知系统进一步处理;透明性好,模型屏蔽了数据库之间的异构性,因此对数据库用户而言是透明的; 智能性与自适应性强。规则可以来源于数据库管理员更新、网络感知以及数据库访问事务,所以能根据数据库管理员和计算环境动态的更新,从而提高系统的智能性和自适应性。
希望本文能对从事分布式数据库研究的科研工作者提供参考。
注:本文通讯作者为方中纯。
参考文献
[1] 邵佩英.分布式数据库系统及其应用[M].2版.北京:科学出版社,2005.
SHAO Peiying. Distributed database system and its application [M]. 2nd ed. Beijing: Science Press, 2005.
[2] LAMPORT L. The part?time parliament [J]. ACM transactions on computer systems, 1998, 16(2): 133?169.
[3] 车乌江.分布式数据库的数据加锁与一致性研究[D].湘潭:湖南科技大学,2011.
CHE Wujiang. Research on data locking and consistency of distributed database [D]. Xiangtan: Hunan University of Science and Technology, 2011.
[4] 宋长宏,刘宇栋,朱劼,等.基于消息的主从式数据一致性更新策略[J].计算机工程,2004,30(1):92?94.
SONG Changhong, LIU Yudong, ZHU Jie, et al. Updating strategy of master?salve data consistency based on message [J]. Computer engineering, 2004, 30(1): 92?94.
[5] 百度百科.智能信息推拉技术[EB/OL].[2012?08?30].https://baike.baidu.com.
Baidu Encyclopedia. Intelligent information push and pull technology [EB/OL]. [2012?08?30]. https://baike.baidu.com.
[6] LIU Sanya, WANG Hongwei. Agent architecture for agent?based supply chain integration &; coordination [J]. ACM SIGSOFT software engineering notes, 2003, 28(4): 5.
[7] MAHBOUBI H, SHARIFI F, AGHDAM A G, et al. Distributed coordination of multi?agent systems for coverage problem in presence of obstacles [C]// Proceedings of American Control Conference. Montreal: IEEE, 2012: 5252?5257.
[8] CAO Yongcan, YU Wenwu, REN Wei, et al. An overview of recent progress in the study of distributed multi?agent coordination [J]. IEEE transactions on industrial informatics, 2012, 9(1): 427?438.
[9] MORIMOTO Y, ARIFIN M S, SIDDIQUE M A. Agent?based anonymous skyline set computation in cloud databases [J]. International journal of computational science and engineering, 2012, 7(1): 73?81.
[10] VASHISHT P, SHARMA A, KUMAR R. Strategies for replica consistency in data grid?a comprehensive survey [J]. Concurrency and computation: practice &; experience, 2017, 29(4): 1?30.