方 暉 景 亮
(寧波軌道交通集團(tuán)有限公司,315010,寧波∥第一作者,工程師)
城市軌道交通票務(wù)清分性能優(yōu)化方案研究
方 暉 景 亮
(寧波軌道交通集團(tuán)有限公司,315010,寧波∥第一作者,工程師)
在分析現(xiàn)行軌道交通票務(wù)清分處理流程的基礎(chǔ)上,提出了多批次并發(fā)清分和多機(jī)并行批量清分的性能優(yōu)化建議方案。多批次并發(fā)清分不采用傳統(tǒng)的順序處理清分方式,將大量的待清分?jǐn)?shù)據(jù)作批次分割后并發(fā)處理。多機(jī)并行批量清分則在解決并行沖突的基礎(chǔ)上多機(jī)并行處理,從而提高系統(tǒng)整體性能。
城市軌道交通;票務(wù)清分;優(yōu)化方案
First-author’s addressNingbo Rail Transit Group Co.,Ltd.,315010,Ningbo,China
城市軌道交通清分中心承擔(dān)路網(wǎng)內(nèi)一票換乘票務(wù)的清分清算功能。清分系統(tǒng)根據(jù)一票換乘清分規(guī)則為各線路提供費(fèi)率表,實(shí)現(xiàn)車票管理、票務(wù)管理、帳務(wù)管理及換乘清分規(guī)則的生成和發(fā)布;并依據(jù)全路網(wǎng)內(nèi)的基礎(chǔ)數(shù)據(jù),實(shí)現(xiàn)各線路的帳務(wù)結(jié)算、車票調(diào)配,以及路網(wǎng)客流和運(yùn)營模式等情況的監(jiān)控。此外,清分系統(tǒng)作為城市軌道交通網(wǎng)絡(luò)對(duì)外服務(wù)的唯一出口,進(jìn)行公共交通卡在城市軌道交通網(wǎng)中使用時(shí)的資金清算;同時(shí)還負(fù)責(zé)向外部系統(tǒng)提供客流在不同時(shí)間斷面、不同路網(wǎng)區(qū)域內(nèi)的準(zhǔn)確有效的數(shù)據(jù)統(tǒng)計(jì)信息[1]。因此,清分中心是城市軌道交通實(shí)現(xiàn)線網(wǎng)內(nèi)各線路之間聯(lián)網(wǎng)運(yùn)行的重要機(jī)構(gòu),其系統(tǒng)性能的高低對(duì)運(yùn)營有直接影響。
目前,國內(nèi)如北京、上海等大城市,隨著其軌道交通路網(wǎng)規(guī)模的不斷擴(kuò)大,日均客流也在快速增長,這就要求提高清分中心系統(tǒng)性能,以滿足大客流下的實(shí)時(shí)清分要求。如何在不增加設(shè)備投資的情況下進(jìn)行系統(tǒng)優(yōu)化,是城市軌道交通清分中心需要考慮的問題。
一個(gè)具有高擴(kuò)展性的系統(tǒng)總是具有相當(dāng)數(shù)量的參數(shù),為了減少I/O開銷,提高效率,應(yīng)用系統(tǒng)應(yīng)大量采用參數(shù)表內(nèi)存化設(shè)計(jì),并盡量多地將相關(guān)常用參數(shù)加載進(jìn)內(nèi)存,從而最大限度地減少數(shù)據(jù)庫訪問的次數(shù),降低慢速磁盤I/O的訪問量,提高處理性能。由于各種參數(shù)(包括不同的清分規(guī)則)可能會(huì)頻繁地發(fā)生變化,因此,為最大限度地保持內(nèi)存中參數(shù)與數(shù)據(jù)表中參數(shù)的一致性,流程調(diào)度模塊需要在履行每次調(diào)度任務(wù)前,將相關(guān)參數(shù)數(shù)據(jù)由數(shù)據(jù)表同步至共享內(nèi)存,以供其他模塊使用。
為了保證系統(tǒng)的穩(wěn)定性及可靠性,在每個(gè)清分流程執(zhí)行之前,需要由流程調(diào)度模塊對(duì)相關(guān)中間數(shù)據(jù)表進(jìn)行數(shù)據(jù)清理,以保證清分中間結(jié)果數(shù)據(jù)的“純潔性”。清理的方法原則上采用整表清除的方法。為能實(shí)施整表清除,需要在設(shè)置中間表時(shí)進(jìn)行相關(guān)的異常考慮。此外,該模塊還負(fù)責(zé)修改相關(guān)批次的控制狀態(tài)信息。清分處理流程如圖1所示。
圖1 清分處理流程
具體流程描述如下:
(1)數(shù)據(jù)初始化——完成共享內(nèi)存及部分應(yīng)用參數(shù)(如清分規(guī)則、車站信息等)的初始化工作。
(2)接收服務(wù)請求——異步方式接收管理控制臺(tái)批處理命令。
(3)清分預(yù)處理——對(duì)不同的服務(wù)請求執(zhí)行不同的預(yù)處理。包括了對(duì)共享內(nèi)存進(jìn)行參數(shù)裝載的動(dòng)作及相關(guān)控制信息的修改。由于相關(guān)參數(shù)信息可能已經(jīng)更改,因此對(duì)共享內(nèi)存進(jìn)行參數(shù)裝載時(shí)需進(jìn)行相關(guān)的控制,以避免由于同時(shí)裝載而導(dǎo)致的共享內(nèi)存中參數(shù)混亂。此外,在處理過程中還須清理相關(guān)異常數(shù)據(jù)。
本文應(yīng)用交叉熵蝙蝠算法來分別實(shí)現(xiàn)Merton跳-擴(kuò)散期權(quán)定價(jià)模型、Heston期權(quán)定價(jià)模型和Bates期權(quán)定價(jià)模型的參數(shù)估計(jì),模擬數(shù)據(jù)和市場數(shù)據(jù)的估計(jì)結(jié)果都表明用交叉熵蝙蝠算法來求解期權(quán)定價(jià)模型參數(shù)估計(jì)問題是可行的和有效的,能夠用該方法來對(duì)期權(quán)定價(jià)模型參數(shù)進(jìn)行較為精確和快速的估計(jì),從而對(duì)市場進(jìn)行較為精準(zhǔn)的預(yù)測和推斷。
(4)確定控制步驟——根據(jù)發(fā)送的不同批處理命令,確定對(duì)應(yīng)的執(zhí)行方案。
(5)讀取控制步驟——按照清分優(yōu)先級(jí)進(jìn)行排序,根據(jù)清分日期讀取控制步驟。
(6)同步/異步發(fā)送——由于執(zhí)行步驟具有下一步驟是否等待上一步驟執(zhí)行完畢的特性,故需要確定發(fā)送方式為同步發(fā)送或異步發(fā)送,同步需要等待,異步則不需等待。
(7)清分后處理——進(jìn)行適當(dāng)?shù)膬?nèi)存參數(shù)、數(shù)據(jù)庫資源處理。
由于該流程是按順序處理接收到的車站線路交易數(shù)據(jù)的,因此在非高峰時(shí)段或總體客流量不大的情況下,系統(tǒng)能實(shí)時(shí)處理接收到的交易數(shù)據(jù),但在運(yùn)營高峰時(shí)段,特別是總體客流量很大的情況下,可能會(huì)使清分中心堆積大量的待清分?jǐn)?shù)據(jù),從而導(dǎo)致客流統(tǒng)計(jì)延時(shí)、實(shí)時(shí)斷面客流失真等問題。
為處理高峰時(shí)段產(chǎn)生的大數(shù)據(jù)量,在清分批處理過程中引入批次的概念。即由主控程序?qū)⒋宸謹(jǐn)?shù)據(jù)分割為若干個(gè)批次(分割粒度可通過參數(shù)配置),每個(gè)批次可包含不同時(shí)段的數(shù)據(jù)。
批處理過程可分成3個(gè)步驟:①待清分處理數(shù)據(jù)批次號(hào)分割;②多進(jìn)程清分批處理;③每天一次的日期切換和日終批處理。優(yōu)化后的清分處理流程在預(yù)處理后、清分處理前加入清分批次號(hào)分配步驟。
在前處理成功后,由總控進(jìn)程完成待清分處理數(shù)據(jù)的批次號(hào)分割工作,后續(xù)清分處理按批次號(hào)多進(jìn)程并發(fā)完成。優(yōu)化后的清分處理流程如圖2所示。
3.1 多批次并發(fā)清分
在單機(jī)模式下,通過多進(jìn)程的方式并發(fā)運(yùn)行多個(gè)清分進(jìn)程(每日實(shí)際運(yùn)行的清分進(jìn)程數(shù)可以由軌道交通清分中心的技術(shù)人員進(jìn)行人工設(shè)置),每個(gè)清分進(jìn)程獲取不同批次的待清分?jǐn)?shù)據(jù)進(jìn)行清分處理。批次清分策略實(shí)際上可認(rèn)為是處理流程上的“流水線化”。即各批次的處理由于由批次號(hào)進(jìn)行控制,因此是可以重疊的。這一并行流水線方案使得清分處理負(fù)載基本上均勻分布在整個(gè)清分處理期,消除了系統(tǒng)突發(fā)處理壓力可能造成的運(yùn)行穩(wěn)定性隱患。
采用多批次清分的另一優(yōu)勢是:由于每日交易量非常大,當(dāng)由于某些原因?qū)е虑宸痔幚碇袛鄷r(shí),可以從中斷處的批次開始恢復(fù);如果確認(rèn)由于某批次出現(xiàn)數(shù)據(jù)錯(cuò)誤(通常人工操作有造成這一錯(cuò)誤的可能性),則只需要對(duì)該批次數(shù)據(jù)進(jìn)行單獨(dú)處理。多批次并發(fā)清分需要采用以下技術(shù)。
圖2 優(yōu)化后清分處理流程
(1)并發(fā)技術(shù)。通過一定的分區(qū)規(guī)則,將清分?jǐn)?shù)據(jù)劃分成不同的邏輯分區(qū),在清分過程中啟動(dòng)多個(gè)清分進(jìn)程,一個(gè)清分進(jìn)程一次只處理一個(gè)邏輯分區(qū),每個(gè)清分進(jìn)程每次處理的記錄個(gè)數(shù)根據(jù)邏輯分區(qū)來確定。清分進(jìn)程劃分為多個(gè)可最大限度地利用CPU資源,邏輯分區(qū)的劃分可最大限度提高I/O性能。清分進(jìn)程的數(shù)量、分區(qū)塊大小的調(diào)整需通過試驗(yàn)來確定最佳組合。清分流程每個(gè)步驟進(jìn)程的并發(fā)個(gè)數(shù)可進(jìn)行合理配置。
(2)多機(jī)擴(kuò)展冗余許可??紤]到多機(jī)橫向擴(kuò)展的可能,多批次并發(fā)清分必須通過技術(shù)手段保證各清分批次數(shù)據(jù)的相對(duì)獨(dú)立,各清分批次無時(shí)間上的依賴關(guān)系,從而使不同批次清分進(jìn)程可以在不同的機(jī)器上并發(fā)運(yùn)行。
(3)流程控制技術(shù)。由于系統(tǒng)中每日需要針對(duì)不同類型的交易數(shù)據(jù)(經(jīng)清分預(yù)處理分類)進(jìn)行多個(gè)批次的清分,而每種交易數(shù)據(jù)類型及其清分批次需要進(jìn)行的動(dòng)作或流程又基本類似,因此,可通過對(duì)流程中各個(gè)動(dòng)作的抽象,將流程通過不同動(dòng)作組合形成的表描述出來,然后由調(diào)度服務(wù)根據(jù)流程表進(jìn)行不同動(dòng)作的調(diào)度,進(jìn)而完成不同清分場次所需的清分功能。
(4)數(shù)據(jù)邏輯分塊。前述數(shù)據(jù)分批技術(shù)僅解決了日終處理的壓力,而要進(jìn)一步減少每次清分處理的時(shí)間,則還要對(duì)數(shù)據(jù)進(jìn)行進(jìn)一步細(xì)分。即將大數(shù)據(jù)按照一定業(yè)務(wù)條件進(jìn)行邏輯分區(qū),形成若干個(gè)小的數(shù)據(jù)群集,從而有效地形成數(shù)據(jù)足夠細(xì)致、處理足夠快捷的數(shù)據(jù)流水線處理方式的數(shù)據(jù)基礎(chǔ)。
(5)容錯(cuò)處理。由于在各個(gè)批次的清分過程中可能會(huì)出現(xiàn)各種不同的異常情況,因此,在清分出錯(cuò)的情況下,系統(tǒng)應(yīng)提供重新進(jìn)行批次清分的功能。系統(tǒng)提供的容錯(cuò)策略為:
·按步驟重新清分。若某一步驟有誤,不需要重新進(jìn)行整個(gè)批次清分流程,只要重新從某步驟開始即可。例如發(fā)生文件生成出錯(cuò)時(shí),只需要在修正程序或配置表后,重做文件生成步驟,以縮短批次清分所需要的時(shí)間。
·重新進(jìn)行批次清分。若必須重新進(jìn)行整個(gè)批次清分流程時(shí),提供重新進(jìn)行批次清分的手段。
·多機(jī)進(jìn)行批次清分。當(dāng)推遲清分造成時(shí)間延誤或需要重做批次清分時(shí),可同時(shí)在多個(gè)應(yīng)用服務(wù)器上執(zhí)行不同批次的清分流程,以保證在日終時(shí),按時(shí)完成當(dāng)天所有批次的清分、清算。
·單筆數(shù)據(jù)異常。清分過程中出現(xiàn)異常時(shí),如果是因單筆交易出現(xiàn)的偶然性錯(cuò)誤,系統(tǒng)將該筆交易記錄為例外文件,并剔除出清分過程,以保證當(dāng)日其他交易清分的順利完成。即單筆的異常并不影響整個(gè)清分流程的完成。
3.2 多機(jī)并行批量清分
當(dāng)單機(jī)負(fù)載達(dá)到80%以上時(shí),系統(tǒng)可采用多機(jī)方式并行處理。優(yōu)化后的清分處理流程在應(yīng)用層充分考慮了多機(jī)并行擴(kuò)展的可能,在應(yīng)用層不會(huì)產(chǎn)生并行沖突。在系統(tǒng)部署與數(shù)據(jù)庫技術(shù)上,可以采用以下技術(shù)來提高多機(jī)并行的處理性能。
(1)系統(tǒng)以RAC(Real Application cluster,真正應(yīng)用集群)方式部署運(yùn)行。為保證多臺(tái)主機(jī)同時(shí)并行存取磁盤數(shù)據(jù),數(shù)據(jù)庫系統(tǒng)必須以共享方式運(yùn)行,應(yīng)用系統(tǒng)也必須部署在多臺(tái)主機(jī)上。
(2)數(shù)據(jù)庫索引技術(shù)。充分利用數(shù)據(jù)庫索引技術(shù),在相關(guān)數(shù)據(jù)表上建立適當(dāng)B+樹索引。這能有效避免大數(shù)據(jù)量的全表掃描,減少數(shù)據(jù)訪問時(shí)間,進(jìn)而提高數(shù)據(jù)訪問的性能。
3.3 優(yōu)化后的性能指標(biāo)
通過多批次并發(fā)清分優(yōu)化后,單機(jī)處理性能可達(dá)到在運(yùn)營日結(jié)束后的1 h內(nèi)完成對(duì)600萬人次客流所產(chǎn)生交易數(shù)據(jù)的處理,并可在2 h內(nèi)完成累計(jì)2 d的交易數(shù)據(jù)清算。交易量估計(jì)和性能衡量考慮以下兩方面要素:每個(gè)客流數(shù)據(jù)按進(jìn)出站共兩筆交易計(jì)算;按經(jīng)驗(yàn)每筆實(shí)際清分交易相當(dāng)于3筆標(biāo)準(zhǔn)交易的處理量。
采用將待處理數(shù)據(jù)批次分割的方式優(yōu)化清分處理流程后,不但可實(shí)現(xiàn)單機(jī)多批次并發(fā)清分,還可實(shí)現(xiàn)多機(jī)并行批量清分,大大縮短了系統(tǒng)清分交易處理時(shí)間。
[1] 閻彬.城市軌道交通自動(dòng)售檢票系統(tǒng)研析[J].鐵路通信信號(hào)工程,2004(2):32.
[2] 于鑫,王富章.城市軌道交通自動(dòng)售檢票系統(tǒng)研析[J].鐵路計(jì)算機(jī)應(yīng)用,2005(6):4.
[3] 朱嘉斌.關(guān)于提高城市軌道交通清分中心處理能力的設(shè)計(jì)研究[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)