APP下载

分布式系统数据时序更新方法

2016-10-21于兴平李洪建于腾飞毕卫红

软件工程 2016年5期
关键词:数据库

于兴平 李洪建 于腾飞 毕卫红

摘 要:随着科学技术的发展,计算机分布式系统在维持数据库的一致性的问题上广泛应用。在商用系统中,通常在数据中大量的数据需要经常更新,并且现在流行不间断服务,有必要为用户提供在线交易并行一次性更新服务。针对当前对大量数据更新效率不高的问题,提出了一种分布式系统中大批量数据时序更新方法,通过时序更新的方法避免一次性更新和在线事务之间的冲突,先在本地交易执行,然后一次提交联合数据库,减少了交易时间的占用,有着更高的处理效率。实验证明这种在分布式系统中更新数据方法与分批处理方法相比,数据更新执行时间,在每1000次更新执行时间会减少为原来的1/80,有很高的应用价值。

关键词:数据库;分布式系统;批量处理;分布式事务

中图分类号:TP399 文献标识码:A

Abstract:With the development of science and technology,distributed systems are extensively applied in maintaining database consistency.In business systems,mass data need to be updated frequently.Since non-stop service is growing in popularity,it is quite necessary to provide online transaction service with once-and-for-all update to users.To deal with the low update efficiency of mass data,the paper proposes a time-sequence update method of mass data in distributed systems,which can effectively avoid the conflict between the once-and-for-all update and the online transactions.The transactions will be firstly conducted locally before submitting the joint database,which reduces the occupation time of transactions and brings higher processing efficiency.Experiments show that,through the method of updating data in distributed systems(compared with the batch processing method),the execution time can be reduced by 1/80 in every 1000 updates.

Keywords:database;distributed systems;batch processing;distributed transaction

1 引言(Introduction)

隨着计算机网络的日益发展和商业系统的跨地域分布使得数据存储和应用变得愈加分布化,分布式数据库技术对比传统的集中式数据库技术在可靠性、可用性和时间响应方面有着更多的优越性,因此在实际中得到了广泛应用[1]。国内外专家和学者一直致力于基于分布式数据库的数据更新问题的研究,如增量式更新算法[2],其原理是在原有规则的基础上,去除那些不满足条件的旧规则,发现满足条件的新规则,目的是尽量减少计算量[3];基于并行分层式链路分布式数据更新方法[4],其原理是通过建立了并行分层式链路,具有链路分层的同时又有补偿的并行链路,采用投票法“一票多次性否决”规则,解决在访问分布式数据库情况下网络开销过大、数据库互联复杂、数据更新时保证一致性困难等问题[5]。但是由于上述算法的复杂性,因此本文提出了时序更新大批量数据的方法。此方法使用扩展的交易时间数据库来避免一次性更新数据的进程和用户在线事务之间的冲突。

2 分布式系统更新方法及其相关研究(Distributed system update method and its related research)

2.1 在分布式系统中传统的更新方法

通过分布式事务更新处理分支机构的多个数据库的数据,这种交易系统一般具有两阶段提交的功能[6],即准备阶段和提交阶段[7],对比一阶段提交,即从应用程序向数据库发出提交请求到数据库完成提交后直接将结果返回给应用程序,两阶段提交虽然在执行同样的事务时会消耗更多时间[8],但是这种操作在一个分布式系统中的稳定性比较高,这对于分布式系统是十分重要的。

典型的分布式交易系统如图1所示,数据库的每一个分支机构储存当前分支机构的数据,用户通过分布式网络更新当前机构和其他机构的数据,将独立数据库更新交易定义为本地交易[9]。分布式系统下的数据库管理系统中,当有一个进程从一个机构移动一个数据块到另外的机构,这个数据块的分布式事务的操作同时执行,当一个数据库中数据减少时,另外一些机构数据库中会相应的增加了相应的数据,整个系统保持数据量的完整性[10]。

2.2 数据更新研究

本文提出的通过分时更新的方法实现大量分布式数据的更新,其更新列表和交易处理时间数据库表关系Rt如式(1)所示。

式(1)中Ta表示数据库中的数据添加时间;Td表示数据库中的数据删除时间;K表示主键;A显示的其他属性。

当数据删除时,通过设置数据逻辑删除,删除时从左开始记录。在事务处理时,在时间t设置的数据用Q(t)表示,如式(2)所示。

式(2)中,属性q[Ta]表示q数据库数据增加的时间,属性q[Td]表示q数据库数据删除的时间,随着时间的改变而改变,Q(t)如式(2)所示,为两条件的交集。

分时更新大量数据方法原理图如图2所示,按时间序列数据库更新后的数据的变化如下:首先,批量数据更新查询过去更新时间tq的数据,并且存储它更新后的结果到未来时间tu。其次,在线登记与批量数据更新同时执行,更新当前时间的数据。由于时间不同,批量数据更新和在线事务处理之间没有冲突,本文方法进行一次性更新,既使用了批处理更新又使用了OB更新。本文的目标表的关系Rt扩展为Re表示,如式(3)所示。

添加的Re的属性如下所示。

(1)Tp:更新数据的处理顺序的时间。

(2)P:过程类。这表明更新数据的过程,包括OB更新、在线登记和批处理更新。

(3)D:删除標志,表示查询的数据是否是删除的对象,它的逻辑值集为{真,假}。

3 分布式系统中数据更新(Update the data in the distributed system)

当使用在线批量更新时,如果执行完全成功,更新有效,如果执行失败,则会恢复更新前的状态。对于此项操作,本文添加了下面的批处理更新管理表。如图3所示,在每个分之机构的数据库中,数据库管理表是业务和Re的关系表,表的右侧是相应的Re的属性。

(1)提交时间表(d0t_commit):它储存时间b的更新,当批处理更新和OB更新使得每个目标表开始有效的时候。它储存了图2中的时间tu,当批处理更新完成的时候设置tu,如果失败,则不会设置时间tu,而且这些更新结果在批处理更新估计完成时间内不会被查询。

(2)批处理管理表(d0t_batch):它储存三种时间类型去控制为每个目标的批处理更新,包括批处理进程的开始时间q、查询时间tq和更新时间b,更新时间与目标委托时间表同时更新,当暂时更新开始时,在处理进程之前建立更新时间。

(3)掩码数据表(d0t_mask):批处理更新时,向批处理更新的目标数据表存储在线输入的主键t,与Rt中的K进行通信,管理在线输入的状态。

4 实验及评估(The experiment and evaluation)

为了评估在分布式系统中测试更新的效率,本文通过实验建立的分支机构的数据库联动数据,在分布式环境中通过两台服务器建立一个本地服务器和一个远程服务器,采用两台服务器来模拟两个数据中心,构建测试所需的网络分布式环境。

使用MySQL创建数据库,InnoDB作为存储引擎,使用JDBC来访问MySQL。创建虚拟的大批量股票数据为分析对象,每只股票的数据量为5万条数据,如表2所示,在实验中在数据库管理列表中移动了2 000只股票一年的交易信息的数据库数据,远程服务器开始时存储10 000只的数据库,如图5所示的时序进行数据处理,并对本文方法与小批量数据更新方法进行对比分析。

5 实验验证(Experimental verification)

利用时序更新方法的数据更新试验中,每增加200只股票的数据进行一次实验,得到如图4(a)所示的实验结果,同样小批量更新,每增加200只股票的数据进行一次实验,得到如图4(b)所示的实验结果,对于时序更新方法,更新消耗的时间会随着每次更新登记数量的改变而变化,如图6所示,在时序更新中登记提交1 000只股票的数据量的更新的效率超过小批量更新的80倍。

如图5所示,本文提出的时序更新方法仅在后处理过程中需要使用分发式事务,这个批处理更新的过程可以被灵活的完成,在更新效率方面是高效的,在系统方面是的高效的和安全的。

6 结论(Conclusion)

随着互联网和分布式处理技术的发展,商业系统中的分布式和一站式服务得到广泛的应用,大型商业系统中经常需要进行大批量数据更新。本文在分布式系统中运用了时序更新的方法,在建立更新表前进行预处理,插入一个记录到每一个批处理管理表,通过记录时间序列来避免一次性更新和在线服务之间的冲突,实验证明这种在分布式系统中更新数据方法与分批处理方法相比,数据更新执行时间,在每1 000次更新执行时间会减少为原来的1/80,与传统的小批量更新方法相比,本文的方法具有更高的效率,安全可靠性也得到一定增强。

参考文献(References)

[1] 王习特,等.BOD:一种高效的分布式离群点检测算法[J].计算机学报,2016,39(1):36-51.

[2] 秦秀磊,张文博,魏峻.云计算环境下分布式缓存技术的现状与挑战[J].软件学报,2013,24(1):50-66.

[3] Qingliang,et al.A complete coalition logic of temporal knowledge for multi-agent systems[J].Frontiers of Computer Science,2015,9(1):75-86.

[4] 于彦伟,等.时空轨迹大数据分布式蜂群模式挖掘算法[J].计算机工程与科学,2016,38(2):255-262.

[5] 郭昆,等.NoSQL数据库间数据交换代价研究[J].计算机工程与科学,2016,38(1):33-40.

[6] 朱保锋,苏小玲.大型网络异常数据库的快速数据定位模型仿真[J].微电子学与计算机,2016(2):140-143.

[7] 钱晓军,范冬萍,吉根林.物联网差异数据库中的故障数据快速挖掘仿真[J].计算机仿真,2016(1):301-304.

[8] 朱明,李跃新.流数据环境下基于k集合覆盖的分布式标签共现算法[J].计算机应用研究,2016(2):428-430.

[9] 张晓琳,等.一种分层自适应快速K-means算法[J].计算机应用研究,2016(2):421-423.

作者简介:

于兴平(1982-),女,本科,讲师.研究领域:分布式系统,分布智能.

李洪建(1979-),男,本科,讲师.研究领域:计算机教育教学,分布式系统.

于腾飞(1987-),男,硕士生.研究领域:分布式系统,大数据.

毕卫红(1960-),女,博士,教授.研究领域:分布式系统,数融合.

猜你喜欢

数据库
超星数据库录入证
本刊加入数据库的声明
数据库
数据库
数据库
两种新的非确定数据库上的Top-K查询
数据库
国外数据库高被引论文排行TOP10
数据库
数据库