YashanDB推出共享集群技術 劍指核心系統替換
原創隨著信創進入深水期,國產數據庫廠商即將面臨一個巨大的考驗:國產替代必須從外圍系統走向高端市場核心系統。國產數據庫能挑起“核心”的大梁嗎?這也成為決定國產數據庫未來格局的關鍵性問題。
最堅固的堡壘:核心系統“去O”
在業務規模發展和政策的雙重影響下,金融行業已開始了國產化改造。從2019年開始,金融領域國產替代已經歷了三期試點,主要覆蓋終端機具、辦公管理類系統、一般業務系統等非核心、邊緣性系統,但涉及核心系統最難的Oracle數據庫系統的替換還沒有規模發生。
金融行業核心系統的主要功能是處理復雜業務的賬務信息,由于涉及重要數據,銀行核心系統對數據庫的時延、數據一致性、安全性、高可用性等方面都有著極高要求。大多數金融企業以國外廠商提供的主機和數據庫解決方案來進行系統構建。其中Oracle RAC(Oracle Real Application Clusters)共享集群技術長期以來是高端市場的“王牌”,是國產替代最難攻下的“堡壘”。
金融核心系統業務關系錯綜復雜,需要快速實現多套系統的平滑遷移。然而熱門技術路線分布式架構對上層應用軟件的架構設計要求較高,改造存量軟件系統向分布式演進往往面臨較大困難,例如表模型的設計、SQL語句的調優等,這種未知的風險是核心系統難以承受的。
是否有性能、功能、擴展性、可靠性維度完全對等Oracle RAC的國產替換方案?近些年,很多國內數據庫廠商想挑戰該技術,但由于技術難度大,實現共享集群技術的國內數據庫廠商屈指可數。
共享集群:核心系統的“獨門絕技”
共享集群為何成為Oracle全球數據庫高端市場橫行二十多年的“獨門絕技”?作為Oracle數據庫中的一項核心技術,Oracle RAC是多節點實例的數據庫集群,被廣泛應用在企業級核心交易數據庫領域。
核心系統對業務連續性要求非常高,要求故障恢復所需時間短(RTO, Recovery Time Objective)、數據丟失量接近為零(RPO, Recovery Point Objective)。Oracle RAC的優勢在于能保證RPO為0,容忍單點故障并實現客戶端透明切換,具有極高的高可用能力;其次,共享集群可以實現應用透明的橫向擴展,具有優異的性能表現,非常符合核心業務場景的訴求。
共享集群技術可被稱之為數據庫領域的“塔尖”技術,其開發難度可謂是難上加難。Oracle從90年代開始嘗試開發Oracle并行服務器(OPS,Oracle Parallel Server,為 RAC 前身),Oracle 9i正式推出RAC形態,過程中投入大量的成本與時間進行底層代碼的持續更新,歷經多次迭代系統才逐步穩定。目前國產數據庫大多基于MySQL、PostgreSQL等開源數據庫二次改寫,受限于存儲結構,其架構向多活共享集群方向演進時非常困難。可見,共享集群技術架構需要耗費巨大的研發投入,也必須要有自研的內核能力。
國產數據庫如何挑起“核心”系統替代的大梁?基于多年的技術積累與工程實踐,全自研國產數據庫系統YashanDB給出了自己的答案。
近日,深圳計算科學研究院推出了完全自主研發設計、對標Oracle RAC的YashanDB共享集群,YashanDB不滿足于架構的微創新,而是將深算院的原創理論融入產品實踐,基于自研內核,采用單數據庫多實例架構,所有計算節點提供對等的多活計算能力,節點之間以強一致性方式實現并發讀寫,可為用戶提供應用透明的高可用、高擴展、高性能數據庫能力,是助力金融、運營商、政企等高端市場實現數據庫國產替代的“殺手锏”。
YashanDB共享集群為何能挑起“核心”替代大梁?
作為國內極少數可以做出共享集群產品并將其推向市場的廠商,深圳計算科學研究院的崖山數據庫系統研發團隊基于在內核方面的持續創新與突破,攻克了共享集群的關鍵技術瓶頸。
在可用性方面,YashanDB 共享集群提供金融級高可用能力,RPO為0、RTO<10S;在擴展方面,支持動態擴縮容,提供 0.8以上線性擴展比;在性能方面,YashanDB 共享集群可以支撐更多的用戶請求高效處理,具有更高的吞吐量,經實測,在同等硬件條件下,YashanDB 共享集群 TPC-C 基準測試(用于評測數據庫的聯機交易處理能力)表現比 Oracle RAC 高 30%。
·快速恢復與連續性技術保證金融級高可用
核心系統對高可用的要求非常嚴苛,采用共享集群的客戶一般都是看重其高可用能力,故障自動切換無需運維干預且RPO 為0。
傳統的主備通常選擇異步復制,故障切換時RPO 不為0,如果選擇同步復制往往可用性大大降低,略微的網絡抖動導致延遲會大大增加,此外無論選擇哪種復制方式,單點故障后都會產生額外的運維工作。而分布式系統帶來的應用架構以及運維的復雜化,需要有較強開發能力的團隊才能駕馭。
共享集群具備天然的高可用優勢,任何一個實例故障后都不影響應用的連續性,YashanDB使用了快速恢復和連接連續性技術保證服務端的透明接管和客戶端的透明切換,這意味著當單節點發生故障時,YashanDB 既可以快速自動地將故障實例的數據恢復到存活實例,繼續提供服務,又能實現業務查詢不中斷、不報錯。
通過快速恢復技術實現在服務端接管時,集群中每個數據庫實例都會指定一個輔助恢復實例接受其日志和臟頁,在其故障時可極速接管該實例,針對故障實例臟頁的操作請求的 RTO極大降低。
除了快速恢復以外,針對客戶端的透明切換,YashanDB 使用連接連續性技術讓業務無感知,客戶端(application failover)集群中單數據庫實例故障時,原有客戶端連接可以自動切換到其他正常運行的實例,原有查詢操作可繼續進行,保證應用的高可用。
·解鎖共享集群關鍵技術 高性能多實例讀寫
共享集群技術為何是數據庫技術的“塔尖”技術?最核心的難點在于實例間的交互,如何保證多個實例間數據的強一致性?如何協調數據之間發生的沖突?如何處理網絡通信的各種異常情況?這對架構設計的挑戰非常大,需要一整套協調機制來實現。
YashanDB共享集群中所有數據庫實例共享緩存,本地訪問頁面時若未命中,可通過網絡從其他實例拿到最新版本頁面,實現數據交換,應用可以連接任意節點訪問和使用數據庫完整能力。為解決讀寫沖突,提高讀寫性能,YashanDB自研“七種武器”逐一破解難題:
?頁內鎖技術,YashanDB在數據頁面中同時包含數據和鎖的信息,避免多次發送;
?免鎖讀技術,通過Page級別的Consistent Read能力實現一致性讀,可緩解實例間讀寫沖突;
?去中心化的事務管理機制,避免事務管理中心化帶來的性能瓶頸和擴展瓶頸;
?基于時間戳的MVCC(Multi-version Concurrency Control,多版本并發控制)機制,以及實例間lamport消息方式實現時間戳同步,確保跨實例的數據交換不影響事務可見性;
?實例親和性的空間分配機制,實例間對同一張表并行導入數據時避免了空間爭用;
?基于負載緩存自動調度策略,提高集群整體緩存命中率;
?臟頁快傳技術,臟頁在實例間傳遞時,在遵從WAL(Write Ahead Logging,預寫日志)協議前提下,減少磁盤IO等待,極大降低處理時延。
除此之外,為了提高數據庫的性能,YashanDB自研集群文件系統,采用 In memory FAT(Allocation Table, 文件分區表) + Direct access 專利技術,該技術能實現文件系統元數據常駐內存,提供更高效的存儲管理能力和效率。文件系統客戶端程序通過直連共享內存訪問 FAT 數據,確保 YashanDB 針對所有持久化文件(包括但不限于控制文件、數據文件以及redo文件)的 read/write 操作,不涉及等待磁盤 IO 或網絡 IO,實現性能最優。
·融入原創理論 突破性能極限
深圳計算科學研究院是深圳市政府批準建設的“十大基礎研究機構”之一,區別于市場上的大多數企業,其全自研的基礎軟件系統產品擁有世界領先的基礎理論作為支撐。針對數據庫系統事務吞吐量隨著計算核數的增加反而降低等難題,YashanDB 提出了自適應的異步并行任務調度機制,將傳統的分區方法變革為新型的調度方法,測算多核線程之間的調度代價,評估算子代價或統計擬合代價,遞進計算多任務、多事務的全過程執行時間,在確保 YashanDB 數據庫系統事務處理通用性的情況下,大幅度降低了多核之間的事務沖突協調開銷。相對于同步調度和異步調度,自適應異步并行調度分別提高了 14.7 倍和 4.8 倍。
結語
在數據庫國產化替代的浪潮下,國內數據庫市場呈現“百花齊放”的狀態,多種數據庫類型以及產品橫空出世。數據庫是一個多樣化的市場,企業也會根據自己的業務場景和需求,來選擇更加適合的數據庫架構以及產品。
針對金融、運營商等行業對核心系統的關鍵訴求,YashanDB勇攀高峰,敢于挑戰行業尖端技術,推出共享集群產品。相信,通過“原創理論+領先架構+工程能力”三位一體的工程研發體系,YashanDB 打造的技術先進、性能穩定、持續創新的產品內核,能實現以“根技術”筑牢行業自主創新發展的根基,推動金融、電信等行業核心系統國產化替換的規模化應用。