方 暉 景 亮
(寧波軌道交通集團有限公司,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)