1. 程式人生 > >華泰證券分散式資料庫的探索與應用

華泰證券分散式資料庫的探索與應用

本文選自《交易技術前沿》第二十七期 (2017年6月)。

管文琦

E-mail :[email protected]

長期以來,Oracle資料庫在國內券商業務系統中處於壟斷地位,為響應國家“自主可控”的資訊保安戰略,打破券商行業對Oracle資料庫的依賴,華泰證券公司在國內券商中率先大範圍使用開源Mariadb資料庫代替Oracle商用資料庫,承載重要業務生產系統。

2015年,華泰證券正式啟動建設開源資料庫平臺,代替Oracle商用資料庫,推行基於X86平臺和非集中儲存架構的關係型開源資料庫建設方案,經過一年多的探索和實踐,平臺承載了大量重要生產業務系統,成功的支撐了業務的高速發展,華泰證券在積極探索自主可控道路上邁出了堅實一步。

一、平臺建設背景

國內傳統金融行業的重要生產系統主要依靠‘IOE’平臺提供技術支撐,即Oracle資料庫執行在IBM小型機和EMC提供的集中儲存之上。Oracle作為業內關係型資料庫的翹楚,具有很強的SQL併發處理能力和良好的效能,優秀的高可用架構和資料安全保障。IBM小型機具有極其強大的單機處理能力,以目前高階的X86 PC伺服器能力,也只能望其項背。EMC為代表的集中式儲存伺服器具有強大的吞吐能力,同時也能夠為資料庫提供強大的資料安全保證,同時也是RAC等高可用架構中的重要支撐元件。建設基於X86平臺和非集中儲存架構的關係型開源資料庫,就必須達到如下目標:具有類似小型機的強大的處理能力;具有較強SQL

處理能力;具有較好的高可用能力和資料安全保障;具有較好的IO能力。

二、華泰證券現有分散式資料庫平臺架構

華泰證券公司選用MySQL的重要的社群版本Mariadb,作為資料庫平臺的基礎元件。

1、利用資料庫中介軟體實現水平擴充套件能力:

華泰證券公司開發應用了資料庫中介軟體,實現了資料庫的平行擴充套件能力。資料庫中介軟體是一個實現了MySQL協議的Server,前端使用者可以把它看作是一個數據庫代理,用MySQL客戶端工具和命令列訪問,而其後端可以用MySQL原生(Native)協議與多個MySQL伺服器通訊。其核心功能是分表分庫,即將一個大表水平分割為N個小表,儲存在後端MySQL

伺服器裡。

資料庫中介軟體攔截了使用者傳送過來SQL語句,首先對SQL語句做了一些特定的分析:如分片分析、路由分析、讀寫分離分析、快取分析等,然後將此SQL發往後端的真實資料庫,並將返回的結果做適當的處理,最終再返回給使用者。

通過資料庫中介軟體,可以大大增加資料庫的水平擴充套件能力。通過增加資料庫節點,實現處理能力的提升,IO吞吐能力的提高,承載更多的SQL併發,達到支撐業務發展的需要。

2、利用第三方開源Galera技術,實現資料安全及系統的高可用:

網際網路行業普遍使用的高可用方案是:以主從複製及在此基礎上的多執行緒半同步,而金融行業對資料要求較高,無法承擔資料丟失風險。

經過技術調研,我們在2015年選擇了當時在國內較少使用的第三方開源技術,Galera同步複製技術,作為華泰證券主要的容災技術。Galera具有先進的設計理念:真正的多主架構,任何節點都可以進行讀寫、同步複製,各節點間無延遲且節點宕機不會導致資料丟失、沒有切換時間、支援InnoDB儲存引擎等。

利用Galera技術結合華泰的資料庫中介軟體,我們建設同城的雙活資料中心,通過在同城第三點建設仲裁節點,實現兩個主要生產機房可以同時對外提供服務。讓任意一個機房因為某種原因不能對外服務時,第二個機房可以繼續對外提供服務。

目前華泰證券已經有大量業務系統使用分散式資料庫平臺進行業務支撐,包括交易、客戶財富、網際網路金融等,業務系統單表記錄數最高超過30億條,響應延時保持在10ms以內,最大峰值TPS達到5000,有效支撐了業務的發展。

三、未來規劃

隨著業務的不斷髮展,對資料庫平臺的要求原來越高,資料庫中介軟體加關係型資料庫這種資料架構仍有諸多的侷限性,怎樣更好的支撐業務系統,成為我們今年來的課題。

隨著近年來大資料業務蓬勃發展,其分散式的先進理念得到了整個行業的認可,我們也在探索如何將大資料的理念融合到關係型資料庫中,實現快速的資料庫彈性擴充套件。

經過一年多的技術調研,我們在內部研究和初步使用了一種基於Google Spanner / F1論文實現的開源分散式NewSQL資料庫–TIDB

它主要由三個元件組成:TIDB serverPDTIKV cluster,其邏輯結構如下:

TIDB具有很多特點如:SQL支援(和MySQL相容的)、水平線性彈性擴充套件、分散式事務、跨資料中心資料強一致性保證、故障自恢復的高可用等。其中最主要的是:

1、水平擴充套件

理論上無限水平擴充套件是TiDB的一大特點,水平擴充套件包括兩方面:計算能力和儲存能力。TiDB Server負責處理SQL請求,隨著業務的增長,可以簡單的新增TiDB Server節點,提高整體的處理能力,提供更高的吞吐。TiKV負責儲存資料,隨著資料量的增長,可以部署更多的TiKV Server節點解決資料Scale的問題。

2、高可用

高可用是TiDB的另一大特點,類似於大資料框架,TiDB/TiKV/PD這三個元件都能容忍部分例項失效,不影響整個叢集的可用性。根據業務真實場景,搭建了ITDB叢集,並且正在進行容災、效能、可擴充套件性等測試,如果測試順利並投入生產,預期將會給資料庫在金融領域的應用帶來里程碑式的變革。

展望未來,金融科技將進入一個加速發展的時代,對傳統金融行業而言,金融科技帶來的不僅僅是挑戰,還有機遇。華泰證券將緊緊抓住時代機遇,衝破國外大型廠商的壟斷,藉助金融科技實現平臺技術轉型和創新發展,支撐和促進業務的發展。