周亮瑾,王富章
(中国铁道科学研究院 研究生部,北京 100081)
铁路客票发售和预订系统 (以下简称“客票系统”) 自 1996 年开始建设,经过 20 余年的发展,目前已经建成覆盖全国的超大型售票网络,实现了全国联网售票。铁路全方位的直销渠道主要包括窗口、自动售票机、互联网、电话、代售点等销售渠道,其中售票窗口约 28 000 个,自动售票机约2 000 台,互联网注册用户约 2.6 亿户,电话订票线路约 10 万线,日均售票量超过 800 万张,峰值售票量达 1 326 万张以上。铁路客票系统很好地适应了我国铁路高速度、高密度、大流量、高安全和网络化的业务特点[1]。
随着我国经济社会的不断发展,旅客的出行频率增加,铁路旅客发送量不断创出历史新高。2018 年铁路计划完成旅客发送量 32.5 亿人次,按照目前铁路客票业务办理情况统计,发送人数与办理业务量的比值约为 1 : 2,即铁路客票系统需要支撑 65 亿单业务量的办理。铁路客票系统目前采用逻辑集中、物理独立分层管理的方式来对客运产品进行销售。这种管理方式与铁路目前的客运业务管理十分契合,逻辑集中适应了当前客运业务管理权限的集中模式需要;物理独立的铁路局集团公司级分层、分范围管理,提高并发处理能力,降低了数据审计成本。但是,随着客运业务的不断发展,根据车站所处的地理位置、路网位置不同,在各个物理节点上的数据分布也不均衡,从而导致业务办理的速度差别,特别是在节假日等高峰出行时段,需求密集提交,交易集中办理,给客票系统正常运行带来挑战。
保证铁路客票发售与预订系统平稳运行的重要前提是及时做好系统的负载均衡工作。负载均衡方法是以客流预测结果为导向,进行负载均衡的方法,其研究重点均在客流预测方法上[2-7],在应对交易高峰和运行图调整时局限性明显。因此,为保证铁路客票系统的正常、平稳运行,从分析客票系统核心交易业务的办理流程出发,确定核心数据与核心业务办理效率关系[8],建立基于工作量证明的负载优化模型,得到系统数据资源平衡与分配方案,用于指导客票系统数据资源的配置。
铁路客票系统交易业务的办理,是以列车票额为中心,兼顾其他客运业务规则的票额销售体系。在全部的客运产品销售过程中,列车票额从产生到消亡,接受所有与列车相关的管理规则、销售策略、业务规则及系统要求的约束,是交易系统中的核心数据。目前,列车票额数据在客票系统总体架构中,在物理上,服从全路客运业务办理的均衡性要求,采用数据分中心的基于列车的票额均衡存放组织;在逻辑上,根据交易业务管理的独立性要求,采用基于列车管理中心的分布式存取访问。这种物理均衡、逻辑独立的核心数据组织方式,可以通过扩充数据中心实现有效扩容,有利地保证了客票系统业务办理效率,特别是铁路 12306 及手机APP 渠道在高峰期业务办理的稳定性、可靠性。
随着铁路建设的发展,列车运行图的市场化调整日趋频繁,引起列车的运行区间、到发时刻、车型、停站、编组类型等影响运输能力的票额相关属性发生变化,现有的物理独立、逻辑业务统一的票额数据管理方式容易受业务的影响,导致数据负载中心间资源的不均衡使用。产生不均衡的原因主要有 2 个:一是技术人员的影响,为了方便管理,将同向、同始发、同属性的列车集中存放在 1 个数据中心上,在高峰期,容易将系统压力集中在若干个热门方向、热门列车上,导致负载不均衡,在后台系统监控中一般容易表现为阶梯式失衡,即若干中心持续繁忙、若干中心持续空闲的现象;二是业务规则的影响,如车站起售时间调整、列车编组调整、集中调图时后押预售引起的席位集中投放,导致列车票额数量或某一时刻的票额极不平衡的释放,从而导致负载不均衡,在系统监控中容易产生渐进式失衡,即中心间的失衡在一段时间内不易观察,在个别系统压力点下出现时才逐渐显露。
阶梯式失衡较容易识别,便于系统后续调优处理;渐进式失衡不易察觉,一般在集中交易高峰显现。目前,为有效规避数据中心负载失衡,客票系统采用定期巡检机制,对各中心系统的负载压力进行评估诊断,保证数据中心整体均衡运行。
铁路客票系统数据中心的均衡性与其进行的客票交易相关业务密切相关。维持数据中心负载的均衡性是保证客票系统稳定、可靠运营的基础。办理客票交易业务,以列车的基础数据、产品数据为基础,旅客需求与列车席位相互配合完成交易。对于目前的客票系统架构,以某一铁路局集团公司有 2 个数据中心为例进行分析,除列车产品数据 (席位数据) 分摊存放外,其他数据处理与存放均需要集中在 1 个数据中心上进行。因此,票额作为核心数据是基本工作量的关键指标证明,实现系统的负载均衡、降低售票高峰期的系统压力,核心问题就是将交易业务频繁的席位数据进行数据中心间的均衡;考虑到客运业务管理的业务完整性需求,票额均衡需要以列车车次为单位,进行数据中心的均衡方案调整。
旅客列车对外提供的客运产品以可发售票额为载体。围绕列车票额的销售交易办理是从票额的生命周期开始点——进入预售期开始,直至列车运行至终点结束。在这段时间内,根据车票所处的运输时期、运输区段、运输时间的不同,旅客的需求热度不同,对票额数据的访问热度也不同。因此,客票系统目前采用的基于静态客运量预测方法进行的负载均衡方法,体现的是最终票额数量对数据中心的影响,不能体现票额销售过程中局部密集访问对数据中心造成的瞬时压力失衡,特别是这些瞬时压力叠加后,对数据中心造成的影响。为此,对于各个数据中心按照业务逻辑组织的列车票额存放方式,建立基于销售强度和销售量的双因素工作量证明形式化算法,以期更合理地实现对各个数据中心系统压力的数据负载评估。
工作量证明形式化算法是以票额数据为基础,对业务上若干相关负载中心的负载现状工作量进行指定时段的负载工作量计算,确定相关负载中心的负载系数,以及需要均衡负载的负载中心范围,并根据业务人员选择的是以搬迁数量最小为目标,还是以负载均衡性最优为目标,通过基于票额数据的工作量证明进行均衡方案计算,得到负载均衡方案。对负载均衡方案进行可行性评估,同时业务专家结合业务应用需要进行微调,得到可以实施的最终负载方案并付诸实施。
工作量证明形式化算法步骤如下。
步骤 1:设 H = 均衡时刻{1 : 00,1 : 30,…,23 : 30};G = {均衡目标|搬迁数量最小,负载均衡最优};TNi= 负载压力阈值;Ni= 第 i 个负载中心;Ti= 第 i 列列车票额;Ai= 列车预售强度;NT = 需要进行均衡负载的数据中心范围,是 Ni上的集合。
步骤 2:获取训练数据集 S、相同客流时期的列车席位 Ti和列车预售强度 Ai。
步骤 3:以步骤 2 中的数据为基础,计算均衡时刻基于列车销售量的负载系数、基于预售强度的负载系数。
步骤 4:确定指定范围内负载均衡的必要性,以及需要进行均衡负载的数据中心范围 NT。例如,原先有 10 个数据中心,经过评估需要调整 3 个数据中心, NT = {N3,N5,N7},则 || NT || = 3。
步骤 5:根据均衡目标 G 和 TNi,确定需要实施负载均衡的必要性和负载均衡列车范围。
步骤 6:按照最优化理论中的整数规划,计算基于工作量证明的负载均衡方案 Q。
步骤 7:评估负载均衡方案 QI。
步骤 8:业务专家评估方案 QIR。
步骤 9:形成最终负载均衡方案 Qr,对负载中心 NT 依次进行负载均衡数据策略调整。
业务专家结合业务应用需要进行的方案评估,在达成业务共识后,也可以增加至评估算法中。
在上述工作量证明形式化算法中,最核心的子算法为负载均衡算法。负载均衡算法本质上可以视为整数规划问题,这里的整数是将列车的席位集视为可选数据集。各个负载中心的均衡是二次优化的结果。第 1 次,根据最值定理,建立静态销售量优化模型,求列车在各个负载中心上的均衡分布负载量的最大值;第 2 次,对各个负载中心席位预售强度的均衡性求解。
优化模型目标函数 Z 如公式 ⑴ 所示,求解即为各负载中心的列车负载结果集。
式中:Tj为数据中心上的第 j 列列车票额;Ni为第 i个负载中心;i ∈ (0,|| NT ||),j = {1,2,…,U},i为调整的负载中心标识号,U 为常数,表示所管理的列车数的最大值的序号。
采用上述方法,以武汉数据中心为例,进行客票系统数据中心负载均衡评估与调整。在客票系统数据中心负载均衡调整前,根据武汉数据中心当前业务组织状态,评估各个数据负载中心的负载系数、各个时刻的负载系数,评估进行数据中心负载均衡的必要性。
武汉数据中心与客票业务办理相关的有 3 个数据负载中心,系统负载均衡调整前各数据负载中心票额静态均衡状态如表 1 所示,系统负载均衡调整前各数据负载中心观察时刻票额均衡状态如图 1 所示。
从表 1 和图 1 可以看出,数据负载中心 1 的负载压力最小,数据负载中心 3 的负载压力最大。从销售量上看,需要进行 3 个数据负载中心的负载均衡性调整。观察武汉数据中心的预售高峰,可以看出在 12 : 00、12 : 30 和 13 : 30 3 个时间点分别出现了个别负载压力点,特别是 13 : 30 的数据负载中心 1 节点,这些局部高点会在售票高峰期时出现系统提供的交易服务出现卡顿现象。
表 1 系统负载均衡调整前各数据负载中心票额静态均衡状态Tab.1 Static data from all centers before load balancing
因此,需要对 3 个数据负载中心进行系统负载的均衡性调整计算。考虑到 3 个数据负载中心的机器设备性能基本匹敌,从业务角度分析,3 个数据负载中心的负载量可以考虑均担。采用上述基于工作量证明的负载均衡算法,对 3 个数据负载中心进行高峰期的预售强度和售票的工作量证明,得到系统负载均衡性调整后各数据负载中心票额静态均衡状态如表 2 所示。从各数据负载中心的静态负载状态看,3 个数据负载中心的负载量基本相同,列车票额均匀分布在各个负载中心上。
表 2 系统负载均衡性调整后各数据负载中心票额静态均衡状态Tab.2 Static data from all centers after load balancing
考虑到业务管理人员和系统维护人员便于管理和操作的因素,对武汉数据中心的列车进行业务规则的二次整理,以保证业务人员方便记忆管理规则。系统负载均衡性调整后各数据负载中心抢票高峰 10 min 的票额均衡状态如图 2 所示。
通过表 1 和表 2 的系统负载均衡性调整比较,在静态负载量方面,数据负载中心 1 从 17%增加至32%;数据负载中心 2 从 37% 调整至 35%;数据负载中心 3 从 46% 下调至 33%。静态调整后,各个数据负载中心的均衡性向好。观察图 1 和图 2,系统负载均衡性调整前重点观察时刻的累计席位基本均衡,但 13 : 30 数据负载中心 1 的负载是数据负载中心 2、数据负载中心3 的 10 倍以上,数据负载中心 1 压力较大;系统负载均衡性调整后,相同观察时刻各数据负载中心的峰值为调整前的一半,整体较为均衡,调整后观察时刻的累计交易量数据负载中心 1 较其他数据负载中心大,但 11 个观察时刻中,数据负载中心 1 的预售强度相对均衡,削峰填谷作用明显,故高峰抢票应对性好。
图 1 系统负载均衡调整前各数据负载中心观察时刻票额均衡状态Fig.1 Real-time load status at all centers before load balancing
图 2 系统负载均衡性调整后各数据负载中心抢票高峰 10 min 的票额均衡状态Fig.2 Load status at all centers, 10 minutes after load balancing
生产实时交易系统的稳定运行是评估客票系统的重要标准,适用的数据中心负载均衡方法是决定客票系统是否正常运行的关键。研究提出的基于关键交易数据的预售强度和销售量的双层工作量证明优化负载均衡方法,解决了传统静态均衡方法无法实现抢票高峰办理时的系统负载均衡问题。武汉数据中心的 3 个数据负载中心应用该方法进行评估与调整,验证了铁路客票系统数据负载均衡方法的实用性和有效性。在客票发售过程中,还应进一步研究如何实现各个数据中心的动态压力评估与实施动态业务负载均衡方法。
[1] 张振利. 适应中国高速铁路客流特性的售票组织策略优化研究[J]. 铁道经济研究,2010(6):43-45.ZHANG Zhen-li. Study on Strategies about the Optimal Control of Seat Selling based on the Characteristics of Passenger Flows in Chinese High-speed Railway[J]. Railway Economics Research,2010(6):43-45.
[2] 汪荣鑫. 随机过程[M]. 西安:西安交通大学出版社,2000.
[3] 龚光鲁,钱敏平. 应用随机过程教程及在算法和智能计算中的随机模型[M]. 北京:清华大学出版社,2005.
[4] 王 燕. 应用时间序列分析[M]. 北京:中国人民大学出版社,2005.
[5] 何 勇,鲍一丹,吴江明. 随机型时间序列预测方法的研究[J]. 系统工程理论与实践,1997(1):36-43.HE Yong,BAO Yi-dan,WU Jiang-ming. A New Forecasting Method for Stochastic Time Series[J]. Systems Engineering-Theory and Practics,1997(1):36-43.
[6] 张 圣,朱建生,王洪业. 铁路大站票额预分预测模型研究[J]. 铁道运输与经济,2017,39(6):27-31.ZHANG Sheng,ZHU Jian-sheng,WANG Hong-ye. Study on Forecast Model of Ticket Pre-assignment in Railway Large Station[J]. Railway Transport and Economy,2017,39(6):27-31.
[7] 李夏苗,黄桂章,汤 杰. 基于 OD 反推模型预测客运通道客流量[J]. 铁道学报,2008,30(6):7-12.LI Xia-miao,HUANG Gui-zhang,TANG Jie. Passenger Flow Forecasting based on OD-matrix Estimation Model[J].Journal of the China Railway Society,2008,30(6):7-12.
[8] 马建军,许 红,胡思继,等. 计算机编制旅客列车票额分配系统的理论和设计方法[J]. 铁道学报,2001,23(6):6-10.MA Jian-jun,XU Hong,HU Si-ji,et al. Theory and Design Method on Seats Allotment System of Passenger Trains Worked Out with Computer[J]. Journal of China Railway Society,2001,23(6):6-10.