方 晖 景 亮
(宁波轨道交通集团有限公司,315010,宁波∥第一作者,工程师)
城市轨道交通票务清分性能优化方案研究
方 晖 景 亮
(宁波轨道交通集团有限公司,315010,宁波∥第一作者,工程师)
在分析现行轨道交通票务清分处理流程的基础上,提出了多批次并发清分和多机并行批量清分的性能优化建议方案。多批次并发清分不采用传统的顺序处理清分方式,将大量的待清分数据作批次分割后并发处理。多机并行批量清分则在解决并行冲突的基础上多机并行处理,从而提高系统整体性能。
城市轨道交通;票务清分;优化方案
First-author’s addressNingbo Rail Transit Group Co.,Ltd.,315010,Ningbo,China
城市轨道交通清分中心承担路网内一票换乘票务的清分清算功能。清分系统根据一票换乘清分规则为各线路提供费率表,实现车票管理、票务管理、帐务管理及换乘清分规则的生成和发布;并依据全路网内的基础数据,实现各线路的帐务结算、车票调配,以及路网客流和运营模式等情况的监控。此外,清分系统作为城市轨道交通网络对外服务的唯一出口,进行公共交通卡在城市轨道交通网中使用时的资金清算;同时还负责向外部系统提供客流在不同时间断面、不同路网区域内的准确有效的数据统计信息[1]。因此,清分中心是城市轨道交通实现线网内各线路之间联网运行的重要机构,其系统性能的高低对运营有直接影响。
目前,国内如北京、上海等大城市,随着其轨道交通路网规模的不断扩大,日均客流也在快速增长,这就要求提高清分中心系统性能,以满足大客流下的实时清分要求。如何在不增加设备投资的情况下进行系统优化,是城市轨道交通清分中心需要考虑的问题。
一个具有高扩展性的系统总是具有相当数量的参数,为了减少I/O开销,提高效率,应用系统应大量采用参数表内存化设计,并尽量多地将相关常用参数加载进内存,从而最大限度地减少数据库访问的次数,降低慢速磁盘I/O的访问量,提高处理性能。由于各种参数(包括不同的清分规则)可能会频繁地发生变化,因此,为最大限度地保持内存中参数与数据表中参数的一致性,流程调度模块需要在履行每次调度任务前,将相关参数数据由数据表同步至共享内存,以供其他模块使用。
为了保证系统的稳定性及可靠性,在每个清分流程执行之前,需要由流程调度模块对相关中间数据表进行数据清理,以保证清分中间结果数据的“纯洁性”。清理的方法原则上采用整表清除的方法。为能实施整表清除,需要在设置中间表时进行相关的异常考虑。此外,该模块还负责修改相关批次的控制状态信息。清分处理流程如图1所示。
图1 清分处理流程
具体流程描述如下:
(1)数据初始化——完成共享内存及部分应用参数(如清分规则、车站信息等)的初始化工作。
(2)接收服务请求——异步方式接收管理控制台批处理命令。
(3)清分预处理——对不同的服务请求执行不同的预处理。包括了对共享内存进行参数装载的动作及相关控制信息的修改。由于相关参数信息可能已经更改,因此对共享内存进行参数装载时需进行相关的控制,以避免由于同时装载而导致的共享内存中参数混乱。此外,在处理过程中还须清理相关异常数据。
本文应用交叉熵蝙蝠算法来分别实现Merton跳-扩散期权定价模型、Heston期权定价模型和Bates期权定价模型的参数估计,模拟数据和市场数据的估计结果都表明用交叉熵蝙蝠算法来求解期权定价模型参数估计问题是可行的和有效的,能够用该方法来对期权定价模型参数进行较为精确和快速的估计,从而对市场进行较为精准的预测和推断。
(4)确定控制步骤——根据发送的不同批处理命令,确定对应的执行方案。
(5)读取控制步骤——按照清分优先级进行排序,根据清分日期读取控制步骤。
(6)同步/异步发送——由于执行步骤具有下一步骤是否等待上一步骤执行完毕的特性,故需要确定发送方式为同步发送或异步发送,同步需要等待,异步则不需等待。
(7)清分后处理——进行适当的内存参数、数据库资源处理。
由于该流程是按顺序处理接收到的车站线路交易数据的,因此在非高峰时段或总体客流量不大的情况下,系统能实时处理接收到的交易数据,但在运营高峰时段,特别是总体客流量很大的情况下,可能会使清分中心堆积大量的待清分数据,从而导致客流统计延时、实时断面客流失真等问题。
为处理高峰时段产生的大数据量,在清分批处理过程中引入批次的概念。即由主控程序将待清分数据分割为若干个批次(分割粒度可通过参数配置),每个批次可包含不同时段的数据。
批处理过程可分成3个步骤:①待清分处理数据批次号分割;②多进程清分批处理;③每天一次的日期切换和日终批处理。优化后的清分处理流程在预处理后、清分处理前加入清分批次号分配步骤。
在前处理成功后,由总控进程完成待清分处理数据的批次号分割工作,后续清分处理按批次号多进程并发完成。优化后的清分处理流程如图2所示。
3.1 多批次并发清分
在单机模式下,通过多进程的方式并发运行多个清分进程(每日实际运行的清分进程数可以由轨道交通清分中心的技术人员进行人工设置),每个清分进程获取不同批次的待清分数据进行清分处理。批次清分策略实际上可认为是处理流程上的“流水线化”。即各批次的处理由于由批次号进行控制,因此是可以重叠的。这一并行流水线方案使得清分处理负载基本上均匀分布在整个清分处理期,消除了系统突发处理压力可能造成的运行稳定性隐患。
采用多批次清分的另一优势是:由于每日交易量非常大,当由于某些原因导致清分处理中断时,可以从中断处的批次开始恢复;如果确认由于某批次出现数据错误(通常人工操作有造成这一错误的可能性),则只需要对该批次数据进行单独处理。多批次并发清分需要采用以下技术。
图2 优化后清分处理流程
(1)并发技术。通过一定的分区规则,将清分数据划分成不同的逻辑分区,在清分过程中启动多个清分进程,一个清分进程一次只处理一个逻辑分区,每个清分进程每次处理的记录个数根据逻辑分区来确定。清分进程划分为多个可最大限度地利用CPU资源,逻辑分区的划分可最大限度提高I/O性能。清分进程的数量、分区块大小的调整需通过试验来确定最佳组合。清分流程每个步骤进程的并发个数可进行合理配置。
(2)多机扩展冗余许可。考虑到多机横向扩展的可能,多批次并发清分必须通过技术手段保证各清分批次数据的相对独立,各清分批次无时间上的依赖关系,从而使不同批次清分进程可以在不同的机器上并发运行。
(3)流程控制技术。由于系统中每日需要针对不同类型的交易数据(经清分预处理分类)进行多个批次的清分,而每种交易数据类型及其清分批次需要进行的动作或流程又基本类似,因此,可通过对流程中各个动作的抽象,将流程通过不同动作组合形成的表描述出来,然后由调度服务根据流程表进行不同动作的调度,进而完成不同清分场次所需的清分功能。
(4)数据逻辑分块。前述数据分批技术仅解决了日终处理的压力,而要进一步减少每次清分处理的时间,则还要对数据进行进一步细分。即将大数据按照一定业务条件进行逻辑分区,形成若干个小的数据群集,从而有效地形成数据足够细致、处理足够快捷的数据流水线处理方式的数据基础。
(5)容错处理。由于在各个批次的清分过程中可能会出现各种不同的异常情况,因此,在清分出错的情况下,系统应提供重新进行批次清分的功能。系统提供的容错策略为:
·按步骤重新清分。若某一步骤有误,不需要重新进行整个批次清分流程,只要重新从某步骤开始即可。例如发生文件生成出错时,只需要在修正程序或配置表后,重做文件生成步骤,以缩短批次清分所需要的时间。
·重新进行批次清分。若必须重新进行整个批次清分流程时,提供重新进行批次清分的手段。
·多机进行批次清分。当推迟清分造成时间延误或需要重做批次清分时,可同时在多个应用服务器上执行不同批次的清分流程,以保证在日终时,按时完成当天所有批次的清分、清算。
·单笔数据异常。清分过程中出现异常时,如果是因单笔交易出现的偶然性错误,系统将该笔交易记录为例外文件,并剔除出清分过程,以保证当日其他交易清分的顺利完成。即单笔的异常并不影响整个清分流程的完成。
3.2 多机并行批量清分
当单机负载达到80%以上时,系统可采用多机方式并行处理。优化后的清分处理流程在应用层充分考虑了多机并行扩展的可能,在应用层不会产生并行冲突。在系统部署与数据库技术上,可以采用以下技术来提高多机并行的处理性能。
(1)系统以RAC(Real Application cluster,真正应用集群)方式部署运行。为保证多台主机同时并行存取磁盘数据,数据库系统必须以共享方式运行,应用系统也必须部署在多台主机上。
(2)数据库索引技术。充分利用数据库索引技术,在相关数据表上建立适当B+树索引。这能有效避免大数据量的全表扫描,减少数据访问时间,进而提高数据访问的性能。
3.3 优化后的性能指标
通过多批次并发清分优化后,单机处理性能可达到在运营日结束后的1 h内完成对600万人次客流所产生交易数据的处理,并可在2 h内完成累计2 d的交易数据清算。交易量估计和性能衡量考虑以下两方面要素:每个客流数据按进出站共两笔交易计算;按经验每笔实际清分交易相当于3笔标准交易的处理量。
采用将待处理数据批次分割的方式优化清分处理流程后,不但可实现单机多批次并发清分,还可实现多机并行批量清分,大大缩短了系统清分交易处理时间。
[1] 阎彬.城市轨道交通自动售检票系统研析[J].铁路通信信号工程,2004(2):32.
[2] 于鑫,王富章.城市轨道交通自动售检票系统研析[J].铁路计算机应用,2005(6):4.
[3] 朱嘉斌.关于提高城市轨道交通清分中心处理能力的设计研究[J].城市轨道交通研究,2012(3):69.
On Optimum Scheme of Metro Fare Clearing
Fang Hui,Jing Liang
The current process of metro fare clearing is analyzed,on this basis a multi-batch or multi-machine optimum scheme is proposed,which will not adopt the normal way of dealing with data sequentially,but use plural processes at the same time after generating many batch numbers.This new scheme that uses many machines to deal with the data at the same time could enhance the metro fare clearing performance based on the solution to concurrent parallel conflicts.
urban rail transit;fare clearing;optimum scheme
F 530.68:U 293.22
2013-05-17)