實戰 | 廣發證券基于分布式架構的新一代估值系統實踐
隨著信息技術應用創新試點范圍不斷擴大,能否勝任更多業務場景,是各行各業當前階段選型數據庫的關鍵。早在2019年,廣發證券即開啟對分布式架構的數據庫產品進行調研,并經歷了單主從讀寫分離、多套單機主從的分庫分表,以及原生分布式數據庫等不同的產品形態。
2021年底,廣發證券通過估值系統應用架構分布式升級,同時使用OceanBase原生分布式數據庫,落地證券行業首個信創估值系統。新一代估值系統為長期業務增長打下堅實基礎,同時對行業內估值系統的全面信創改造起到借鑒和推動作用。此次“廣發證券基于OceanBase分布式架構的新一代估值系統”項目憑借對整個估值核算效率顯著提升,以及多項技術創新,榮獲“2022第十三屆金融科技應用創新獎”。
單體架構升級為分布式架構
證券行業核心的兩類場景分別是集中撮合交易與估值核算處理。由于單體架構先天限制,在容量和性能遇到瓶頸時無法橫向動態擴容,制約了這兩類場景中系統的整體處理能力。隨著業務發展,廣發證券估值系統舊有的單體架構和強依賴于Oracle特性的計算服務,在清算、核算批量執行時CPU已經接近滿負荷,單純依賴提高服務器配置已經無法較好滿足業務發展需要,必須從系統整體架構上進行升級改造。
新一代估值系統整體采用微服務技術平臺開發,通過以下的改造優化,充分發揮分布式架構的橫向能力,實現系統性能整體提升,在大數據量的環境下,大幅降低批處理時間,提高向基金管理人提供估值核算數據的及時性。一是“化整為零”,將原有系統中的大事務分拆為小事務,并實現數據批處理內存化。通過拆解大事務,尤其是拆解大數據量的DML語句,確保系統可以并行處理。同時,將原有復雜的數據庫SQL邏輯,通過數據加載到內存中處理,利用內存低延時的特點,大幅提升處理效率。二是“分而治之”,通過優化表結構設計,使得數據便于分庫、分表、分片;優化程序設計,結合單元化的思想,將參數依賴、服務依賴等外部依賴分解,優化處理流程,提升并行效率。三是“化繁為簡”,通過簡化業務邏輯,適應分布式數據庫的特點,通過“異步化+定時校對+補償”的柔性事務設計,減少甚至避免產生分布式事務,提升系統處理的吞吐量。四是“借力使力”,發揮分布式數據庫自身的能力,如分區、表組等特性,多管齊下,降低系統架構優化的設計難度和開發難度,提升研發效率。
另外,金融行業對系統災備能力有著極高的要求,系統的部署架構設計是對災備應對期望(RTO和RPO)的體現,同時受機房數量、網絡情況的影響。廣發證券新一代估值系統應用服務采用分布式部署,同時引入原生分布式數據庫,需要延續證券行業一貫的災備規范以及使用習慣。分布式部署架構天然能夠消除機房內單點故障,同時分布式數據庫在集群內高可用基礎上也實現了集群間的“主備庫”,通過物理日志的復制和數據壓縮,降低對機房間網絡帶寬的要求。借助分布式數據庫集群內多副本多活,集群間可靈活選擇同步強度等級的特點,實現switchover計劃內切換、failover故障切換,以及備庫獨立運行三種災備切換能力,滿足證券行業常見的機房災備切換、日常演練等要求。

估值系統的原生分布式數據庫實踐
從數據庫整體路線建設的視角看,本次新一代估值系統引入原生分布式數據庫,給廣發證券帶來了基于多租戶能力的DBaaS體系,即在一套數據庫集群內,秒級交付邏輯隔離的數據庫資源,快速響應業務對數據庫的使用需求,并且租戶規格可在線靈活調整,應對不同等級、不同規模的業務系統數據庫資源整合。
廣發證券在前期選型驗證中曾測試過,租戶規格的擴展可分為垂直擴展(增加單元資源配額)與橫向擴展(增加單元數量)兩種,分別應對不同業務場景的需求。對于需要更多計算資源的大事務SQL,增加CPU與內存配額能夠支持更大的并行度,從而讓數據處理速度跟上數據增長;對于并發數可能增加的在線交易類業務,以及存儲容量突破單機瓶頸的level2行情數據類業務,則可以增加租戶的單元數量,讓更多硬件節點共同承載租戶壓力,應對業務增長。
除此之外,早期分布式形態的數據庫產品,通常具備讀寫分離、分庫分表等能力,券商的部分業務場景對這兩種使用方式有一定經驗,引入新的原生分布式數據庫,需要了解類似場景業務如何銜接過渡。
對于讀寫分離,在OceanBase產品體系中,無需額外引入中間件,通過OBProxy即可開啟“弱讀”,將事務以外的select請求發到非leader的租戶副本;在行情、消息推送等讀多寫少并且存在讀寫時間差的場景,該功能能夠發揮各個數據副本的算力,提升系統性能容量上限;對于分庫分表,OceanBase的分區表模式與早期的分庫分表方案有些許相似,也有其特有優勢。
● 相似之處在于:對于單個表而言,需要指定分區鍵,該表的數據才具備被分布到不同硬件節點的條件,由應用根據實際情況決定是否需要分布式。
● 不同之處在于:OceanBase本身是一個分布式形態的數據庫,因此具備全局統一的視圖,能夠數據在不同節點的分布狀態,正是因此具備了表組(TableGroup)能力,以及在分布式架構下,能夠支持生成復雜執行計劃和存儲過程。

擴大應用場景,全面提升基金運營核心能力
廣發證券此次估值系統信創試點是全功能完整試點,實現了一套系統對全產品類型的估值核算的統一化管理,支持多市場、多品種、多幣種核算,同時實現自動估值服務,全面提升估值核算的自動化水平和整體運營效率,提升基金運營業務的核心競爭力。需要強調的是,該項目真正驗證了信息技術應用創新產業加速核心業務系統自主可控的可行性,為解決我國“卡脖子”問題,新增了一條行之有效的實踐路徑。
打通核心系統全棧信創的最后一公里。我國推進信息技術應用創新工作已有一段時間,從辦公系統到一般業務系統,再到核心系統,從芯片到服務器、網絡設備等,以點帶面、逐步推進。尤其對于核心系統的數據庫,存儲著企業最重要、最關鍵的數據,是整個企業的生命線,不容有失。因此,核心系統的信創工作,需要整個企業的IT部門、業務部門提升覺悟并達成共識,持續不斷地堅持投入,穩步推進。新一代估值系統將對系統架構的改造優化,融入到信創工作中,將兩者結合后的效果能夠更好地呈現給業務部門,改變對系統完成信創后“性能差”“使用難”“問題多”的主觀感受,打消疑慮,使業務部門更加支持信創工作的開展,為企業的數字化轉型打下堅實的基礎。
樹立IT架構轉型的典范工程。新一代估值系統應用層采用分布式架構設計,使用微服務技術開發,實現系統的橫向彈性擴容能力,應對交易請求高峰低谷特征明顯的證券業務;在數據持久化方面,通過原生分布式數據庫,實現數據讀寫分離、分庫分表、彈性擴展,多副本冗余的能力。通過一些列的改造和優化,解決了舊系統的單點瓶頸和對數據庫特性的強依賴,使得系統具備了高性能、高容量、高可靠的特點。
通過系統從應用層到數據層的整體分布式改造優化,得益于服務器資源的橫向擴展能力和并行度的提高,在測試環境的條件下,將整體跑批時間由1小時縮短為分鐘級,提高了估值核算數據的及時性。以下是壓測調優的環境和效果對比。

新一代估值系統能夠快速完成跑批清算,并且具備橫向擴展能力,這將直接提升我司基金運營效率,同時估值系統的下游關聯系統也能夠更快獲取到所需數據,并且隨數據量增長帶來的跑批慢問題可通過分布式應用和原生分布式數據庫的擴容解決,讓業務開發人員能夠專注于新功能實現,最終共同更好地服務于業務,樹立了IT系統架構轉型工程的典范。
本次估值系統的信創試點落地,讓廣發證券了解了OceanBase的使用特點與運維方式。后續,我們將會把分布式架構優化經驗和分布式數據庫的技術應用于更多業務場景,有效解決容量與擴展性的瓶頸,提升基金運營效率,降低運營成本,最終提升廣發證券對客基金運營服務能力的綜合水平。