2019年5月上旬,巨杉資料庫在DTCC(2019中國資料庫技術大會)上隆重發布了旗下核心分布式資料庫產品SequliaDB 3.2版本,並就當前業內需求趨勢,資料庫的創新理念和創新之處進行了一番介紹。
作為一款金融級分布式關係型資料庫,巨杉資料庫連續兩年入選 Gartner 資料庫報告,在超過50家大型商業銀行的核心生產系統規模使用,其中單集群最大物理節點數達到135個,單集群最大存儲容量達2.1 PB,集群管理最大記錄數1318 億條,在容災安全性方面能做到RPO = 0 , RTO小於15秒。
分布式資料庫是資料庫領域的一大創新,與傳統集中式資料庫有很大差別。分布式資料庫相對於集中式資料庫有多重優勢,在成本,可管理性以及對新型業務的支撐方面都有體現,比如在微服務架構方面就有很大優勢。
分布式資料庫能更好地支持微服務架構
容器技術,以及與容器技術緊密相關的DevOps、微服務等技術非常流行,被許多人認為是繼虛擬化技術之後,IT基礎設施領域的又一大創新,對於企業敏態業務發展至關重要,圍繞容器技術需要企業IT架構作出調整,對於資料庫的需求也有很大改變。
王濤提到,很多企業都在從基於傳統資料庫的煙囪式開發向微服務架構轉型,微服務體系架構中,每個微服務都需要提供數據持久化能力,用戶希望每個微服務所應對的數據量能夠無限彈性擴張。
支撐微服務的話,是用集中式資料庫還是分布式資料庫呢?
王濤介紹說,如果使用傳統集中式資料庫,那麼對於應用程式的改造相對比較小,對DBA運維人員的成本比較低,但由於數據緊耦合,既無法彈性擴張,又可能存在的單點故障的隱患。
另一種做法是每個微服務對應一個獨立的小資料庫,比如使用MySQL或PostgreSQL,這樣能夠解決集中式存儲的問題,但因為每個微服務都使用獨立的資料庫,會使原本集中的數據分散到很多不同的設備中,會造成數據極度碎片化,數據在微服務之間無法共享,而且運維成本極其高昂。
碎片化帶來什麼難題呢?
王濤介紹說,一些網際網路公司生產系統中維護著兩三萬套MySQL資料庫,這樣的架構下想要進行企業內部的數據整合視圖是極為困難的事兒。數位化轉型時代,數據是企業的核心資產,在大數據以及基於數據的人工智慧技術在企業逐步落地和發展的過程中,這樣的數據架構顯然是有很大問題的。
巨杉資料庫的分布式資料庫能很好地解決這一問題。一方面,分布式資料庫解決數據的彈性擴張的問題,使每個微服務可以不受底層數據存儲限制進行擴容。另一方面,可以解決微服務應用架構中數據嚴重碎片化的問題。
巨杉分布式資料庫如何解決這一問題的呢?
巨杉分布式資料庫的做法是用統一的分布式資料庫做底座,上層可以創建成百上千個資料庫實例,同時,應用無需感知每個資料庫實例底下對應的資源。
對單個應用來說,這樣的資料庫與傳統標準資料庫完全一致,但是又能做到彈性伸縮。管理方面,所有的物理設備從邏輯上進行統一管理,降低管理成本。數據共享方面,不同實例裡的數據可以進行共享。
這樣的分布式資料庫既兼容了傳統資料庫技術,同時又是面向未來的。
在兼容傳統資料庫方面,作為金融級資料庫,巨杉資料庫有完整的ACID支持,事務和一致性保證,而且,巨杉資料庫完整支持SQL語句,與傳統資料庫如MySQL/PostgreSQL的語法完全兼容,用戶和管理員可以像以往一樣用資料庫,應用程式也無需做什麼改動。
完整的ACID支持意味著能同時支持一致性和安全性,王濤強調「絕對不能為了上分布式犧牲數據的一致性和安全性」,他認為,新型面向聯機交易的分布式資料庫必須對傳統ACID有完美的支持,與傳統Oracle DB2的數據安全性一致性保持兼容。
在面向未來的新特性方面,巨杉資料庫有三點創新:
第一個是分布式與擴展性,這其實是分布式資料庫的核心價值,它可以根據數據量的變化,實現存儲層和計算層的彈性擴展,能在資料庫的層面以服務資源池的形式提供資料庫訪問能力。
第二個在於多模式訪問接口,其實主要就是因為如今的服務類型、應用需求等多樣化,對資料庫接口類型的要求也日益多樣化,所以,分布式資料庫要支持多類型數據管理和多種模式的訪問接口。這點與分布式存儲也非常類似,面對多樣化的應用,存儲也需要多元化的接口類型。
第三個方面其實考量共享架構的資源隔離問題,當一個資料庫同時處理HTAP交易和分析混合處理業務時候,如何不影響聯機交易業務的性能表現?巨杉分布式資料庫的資源池內可對交易與分析業務進行物理資源隔離實現數據的物理隔離,性能方面互不幹擾。
作為一款金融級的關係型資料庫,巨杉資料庫在數據安全和容災方面也頗有造詣。巨杉資料庫原生支持資料庫內核級別的高可用以及跨數據中心災備能力,目前已經實現異地容災備份,可滿足「三地五中心」的容災支持。同時,巨杉資料庫在異地容災基礎上,實現了數據異地多活,目前已經實現雙中心同時讀寫,中心切換RPO為0和RTO達到秒級,提供了「超金融級」的數據安全保障。
分布式資料庫的演進
分布式的概念已有很多年,分布式存儲,分布式資料庫都是如此,分布式資料庫在歷經多年的發展當中不斷迭代,分布式資料庫技術發展體系可分為三類:垂直分庫、分庫分表和原生分布式資料庫。
王濤介紹說,最傳統的是垂直分庫,通過定義好的應用規則,按照規則找到資料庫實例,然後再直接獲取連接進行查詢。這種方式的缺點在於,跨資料庫的事務難以實現,需要非常多的定製化開發。
還有一種方式是分庫分表。做法是在應用程式和資料庫之間構建一個SQL解析服務,將SQL翻譯成底層每個資料庫所看得懂的子查詢,把查詢下發給底層的傳統資料庫。這種機制是從集中式架構到分布式架構的過渡狀態,同時,由於對於應用無法做到完全透明,一般來說需要在應用拼裝SQL的時候指定很多參數或比較獨特的語法。
最後一種則是通常所說的原生分布式資料庫,常見的有巨杉和螞蟻金服的OceanBase分布式資料庫。原生分布式資料庫是底層完全從零開始研發,完全拋棄小型機體系,基於PC伺服器硬體架構設計的分布式資料庫,將高可用、容災、分布式等機制天然融入到數據存儲體系的方方面面。
以巨杉資料庫為例,能夠保證在與MySQL 100%兼容的前提下實現對應用完全透明的分布式能力。開發者不需要關注一個表存了幾億還是十幾億記錄,只要在建表的時候配置好容量和橫跨多少臺物理設備,數據即可自動在庫內進行均衡,從應用來看就像訪問標準的表一樣直接進行讀寫請求。
SequoiaDB v3.2版本在分布式存儲層和資料庫實例層均增加了許多新特性。底層的分布式存儲層作為資源池,負責數據存儲、分布式事務控制等,資料庫實例層則提供對上層應用程式的SQL服務,用戶可創建結構化實例,也可以創建非結構化實例,可應用在包括聯機交易、數據中臺以及內容管理三大場景下。
作為一款開源分布式資料庫,在巨杉資料庫的官網上已經提供了開放下載服務,感興趣的朋友可以即可去下載安裝體驗。
未經允許不得轉載:DOIT » 巨杉金融級分布式資料庫SequoiaDB 3.2發布,特性全面強化