AISWare AIDB亞信資料庫產品特性解讀——平滑彈性擴充套件(一)
AISWare AIDB亞信資料庫(以下簡稱:AIDB)作為一款高效能、高可用的分散式關係型資料庫產品,各個現場的使用者量很大,資料成倍增長,複雜的業務、巨量的資料對系統效能提出了更高的要求。
如何通過資料庫節點的彈性伸縮,實現使用者無感知的平滑擴充套件,並無需上層應用進行停機維護,成為業務側的迫切需求。
本文將詳細解讀AIDB的平滑擴充套件能力,和幾種常見業務架構的對比。
幾種常用的業務架構設計
傳統資料庫,依賴單節點效能,單個伺服器的處理能力、磁碟空間、網路I/O都是有限的,水平擴充套件比較困難。業務架構設計過程中,更傾向於分庫設計,將其切分成更多更小的庫,把效能壓力分攤到各例項。
分散式資料庫,是以叢集算力挑戰傳統資料庫,對單個伺服器的要求不高。業務架構在設計過程中,更多地考慮業務邏輯本身,而非資料如何分層。資料模型在設計過程中,在內部執行分片策略,強調資料分片對上層應用無感知。
目前,也有 使用中介軟體的分散式資料庫存在。但接入代理層導致的慢SQL、效能不高等問題,使得『真正資料庫級別』的分散式,成為在業務架構上實現彈性擴充套件的最佳解決方案。
AIDB的平滑彈性擴充套件
AIDB基於自研的原生分散式架構, 產品架構、底層儲存和查詢處理,均面向分散式資料管理需求。資料庫叢集作為一個整體對外提供服務,在叢集內部實現了不停機擴容、負載均衡、強一致性等細節,且提供C/ API/ODBC/JDBC/Python等多種開發語言支援。
(圖1 AISWare AIDB產品架構)
如上圖,AIDB是一個多節點的資料庫叢集,從管理節點提供的全域性後設資料中心、資料分片、負載均衡等功能,實現資料節點(Raft Group)的自動化擴縮容和分散式管理,即可線上增刪節點組,節點數量按需靈活擴充套件。
AIDB叢集內部,資料採用Hash和Range分片演算法雜湊在不同的節點,對業務的侵入性小。單張表資料量過大時,使用者無需關注Sharding等實現細節,資料自動負載均衡。
節點間的資料訪問,支援RDMA(Remote Direct Memory Access)高速網路模式,可以簡單理解為,網路卡完全繞過CPU實現兩個伺服器之間的記憶體資料交換,大幅提升了傳輸效率,有利於整個資料庫獲得更低延遲、更高吞吐。
水平與垂直擴充套件
資料庫的擴充套件,通常有垂直(Scale up)和水平(Scale out)兩種方式,垂直擴充套件是指伺服器硬體升級,水平擴充套件是指叢集節點增加。AIDB支援以上兩種擴充套件方式:
- 垂直擴充套件:超強的scale up能力,對單個節點的CPU、記憶體、連線數不做限制;
- 水平擴充套件:使用者可線上進行擴容操作,動態伸縮節點,保障線上業務的連續性。
AIDB的平滑擴充套件能力, 在伺服器利用率和管理複雜性上,均明顯優於中介軟體方案。分庫分表後,使用者的資料散落在不同的庫和表中,資料的CURD操作,是通過資料庫本身的SQL層去執行分散式事務的管理,保障事務的ACID特性。
小結
本次章節,主要介紹了AIDB的彈性擴充套件能力,在實際應用中,系統的併發量很高,即便是空閒時段也有相當的訪問量;而海量資料的長時停機遷移,對使用者的影響更加明顯。
如何實現不停機地平滑擴充套件?線上擴容,又需要注意哪些關鍵點?我們將在後續章節,分享AIDB資料庫在通訊行業提供平滑擴充套件服務的最佳實踐、和典型案例。
關於AISWare AIDB 亞信資料庫
AISWare AIDB亞信資料庫是亞信科技(股票程式碼01675.HK)自研的分散式關係型資料庫,依託多年行業積累與實踐經驗精心打造。具備原生分散式、百萬高併發、“電信級”高可用、平滑擴充套件、分層儲存等特性,同時具備全面相容MySQL、視覺化運維,支援高吞吐低時延OLTP類場景等優勢。至今已成功應用於中國移動、中國電信、中國聯通的核心業務系統,服務於國內外電信、廣電、交通等行業客戶。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/70000893/viewspace-2839576/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- AISWare AIDB亞信科技資料庫產品特性解讀——平滑彈性擴充套件(二)AI資料庫套件
- 簡單解讀AISWare AIDB亞信資料庫產品特性AI資料庫
- 【應用場景】AISWare AIDB 亞信資料庫在多省份計費系統應用案例AI資料庫
- 甲骨文推出OracleExadataCloudMachineOracleCloudatCustomer產品組合擴充套件至資料庫工作負載OracleCloudMac套件資料庫負載
- kotlin 擴充套件(擴充套件函式和擴充套件屬性)Kotlin套件函式
- PHP的SPL擴充套件庫(一)資料結構PHP套件資料結構
- [譯] 論資料流的擴充套件性套件
- 【Kotlin】擴充套件屬性、擴充套件函式Kotlin套件函式
- 讀構建可擴充套件分散式系統:方法與實踐09可擴充套件資料庫基礎套件分散式資料庫
- 教你 4 步搭建彈性可擴充套件的 WebAPI套件WebAPI
- 提高擴充套件性套件
- 可擴充套件性套件
- GBASE觀察:擴充套件分析型資料庫套件資料庫
- 資料庫平滑擴容方案剖析資料庫
- PHP擴充套件資料庫連線引數說明詳解PHP套件資料庫
- 大資料——Scala擴充套件大資料套件
- ncurses其他特性:curs_set(),離開curses模式,ACS_擴充套件字符集,擴充套件庫模式套件
- Java 缺失的特性:擴充套件方法Java套件
- ASP.NET Core擴充套件庫之Http通用擴充套件ASP.NET套件HTTP
- SpringCloudGateway資料庫儲存路由資訊的擴充套件方案SpringGCCloudGateway資料庫路由套件
- java資料型別擴充套件Java資料型別套件
- 資料檢索擴充套件包套件
- 記錄一些有關資料庫操作的擴充套件包資料庫套件
- 一個根據資料庫自動生成model類的擴充套件資料庫套件
- Swift 擴充套件 Storyboard 屬性Swift套件
- 使用nub恢復資料庫的知識擴充套件資料庫套件
- 資料庫擴充套件表設計過程記錄資料庫套件
- 讀資料質量管理:資料可靠性與資料質量問題解決之道08擴充套件異常檢測套件
- C 擴充套件庫 – mysql API套件MySqlAPI
- 使用cython擴充套件python庫套件Python
- DLR 的擴充套件庫 Dynamitey套件MIT
- 歐盟最大的ETF公司擴充套件加密貨幣產品套件加密
- 梭子魚備份產品解決方案再次擴充套件儲存容量及效能套件
- MySQL - 擴充套件性 2 擴充套件策略:氪金氪腦任君選MySql套件
- 讓前端也能填充資料庫的 Reach Seeder 擴充套件前端資料庫套件
- 可擴充套件的資料庫系統,請求批評套件資料庫
- bash的特有擴充套件屬性套件
- 《基於 swoole 擴充套件實現真正的 PHP 資料庫連線池》讀後感套件PHP資料庫