2020年11月20-21日,一年一度的數據技術嘉年華在北京順利召開,此次大會以「自研·智能·新基建——雲和數據促創新 生態融合新十年」為主題,打造 「開源自研、智能運維、智能自治、新基建、用戶實踐」五大模塊,設置1個主會場、12個分會場,匯聚學術精英、資料庫技術大咖、數據行業專家、網際網路卓越產品,帶來超過60場主題演講。
星環科技受邀亮相此次嘉年華,與行業內的專家和業界人士一同探討總結數據技術過往十年的歷程與成績,共同展望未來十年的趨勢與目標!
星環科技產品研發部趙志強結合當前分布式資料庫的技術需求背景,分享《國產分布式資料庫KunDB開發實踐》主題演講。趙志強主要從介紹星環KunDB產品、KunDB如何使用分布式技術解決分庫分表方案的核心痛點、KunDB上私有雲的技術總結、KunDB主要開發路線四個方面做有關主題演講,與參會人員分享星環科技近些年在分布式資料庫上所做的努力和貢獻,並希望未來將分享更多相關前沿技術。
分布式資料庫的技術需求
目前國內分布式資料庫的發展逐步火熱化,企業紛紛開始投入做國產分布式資料庫的行列中。在了解市場和政策的需求背景下,結合具體的技術邏輯,趙志強總結了分布式資料庫技術的應用需求和運維需求。以星環科技參與上海市隨申碼開發為例,目前與人民生活密切相關的民生和政務系統會成為海量用戶使用的應用,亟待分布式資料庫技術解決。另外,並不是所有企業像頭部網際網路公司一樣具有專業的運維團隊,由於資料庫目前是分布式的,數據同步和災備超出傳統的管理能力,所以能夠在產品層面解決運維痛點也是企業目前急需解決的難題。
KunDB介紹
此次大會分享的KunDB產品是星環科技打造的分布式關係型資料庫,具有可擴展、高並發、高可用等特性,可對現代資料庫的需求提供通用的解決方案,有效支撐各行業業務平臺,應對各類新型業務面臨的挑戰。
雲化資料庫
KunDB是雲原生的資料庫產品,可以部署在公有雲、私有雲、及混合雲架構;具有高性能、好遷移、易部署等優勢
性能水平擴展
KunDB採用可擴展分布式架構,輕鬆處理高並發、大流量訪問,使資料庫性能不再成為系統瓶頸。具有線性延展、在線延展、高並發等優勢
多租戶能力
KunDB提供多租戶能力,保障租戶隔離和SLA。可以保障多租戶間的數據隔離、資源隔離、運行隔離,提供租戶管理員角色,使各租戶能得到有效監管,統一界面對租戶權限和資源進行合理劃分與管理。
SQL & ACID
KunDB高度兼容傳統關係型資料庫SQL以及標準事務。
安全可靠、自主可控
KunDB是星環科技自主研發的國產資料庫,同時為數據提供多維度的安全保護,確保數據信息安全。
高可用和容災
KunDB內置災備和恢復機制,提供7x24小時連續服務保證。可取代傳統國外RDB,擺脫外國廠商對國內資料庫市場的控制,同時支持國產CPU和伺服器等自主可控的硬體平臺,兼容多種國產作業系統,能夠足夠滿足企業對數據安全的要求,適應多租戶模式的企業架構對安全的要求。
KunDB產品的技術實踐
KunDB的分布式實踐
星環科技在研發KunDB產品過程中,具體的的分布式實踐可以在以下五個方面突出表現。
可擴展性方面,KunDB部署後,支持單Shard模式和分布式模式兩種形態。KunDB產品所有組件都是容器化的,所以擴縮容過程可做到真正的平滑,為了做到在線業務影響最小化,擴縮容數據重分布的過程,則需按照嚴謹的結構複製、數據複製、數據一致性校驗等流程完成。計算層由於沒有狀態,相對輕量,可快速完成並且不影響在線業務。
事務的原子性方面,KunDB默認提供了一階段提交和二階段提交兩種模式。一階段適合對事務原子性沒有非常高要求的業務場景。二階段提交增加了事務準備的中間階段,正常流程中,所有事務先進行投票,投票通過後,所有參與者一起發起事務提交。投票失敗的時候,事務可通過回滾達到全局原子性。在實現上,KunDB中KunGate擔當了二階段提交的事務協調者的角色,存儲集群則是事務的實際參與者。KunDB自研二階段提交協議,未使用MySQL XA協議完成,並且優化了通信流程,比經典的二階段提交方式更加輕量。KunDB含有異常事務的監測進程,用來管理因參與者宕機故障或者超時引起無法按流程執行的事務。
事務的一致性方面,KunDB引入了全局事務管理器和快照模型。全局事務管理器用來管理事務ID和可見的事務快照,即可見的事務範圍。為了協調事務執行的參與者,即KunDB的各個Shard,參與到一個共享的事務中,將全局事務下發給給存儲層的Shard。通過修改MySQL的事務邏輯使其同時支持分布式全局事務和本地事務,保證分布式事務的全局一致性。事務的實際執行與管理仍可在本地進行,跟常見的全局事務管理器方案相比,性能上更有優勢。
事務的隔離性方面,採用的是全局事務+Read View的方案,從全局事務管理器獲取的快照列表跟本地的Read View機制一起做數據可見性的判斷。另外對事務過程中的二進位日誌做全局管理,即把全局事務管理下沉到二進位日誌中,實現全局備份恢復一致性。
分布式資料庫在解決高並發寫和可擴展存儲後,需要通過分布式查詢計算實現大容量數據下的數據高性能讀取和使用。KunDB在查詢計算的數據鏈路中,有KunGate提供查詢的SQL解析,基於規則和代價選擇合適的執行路徑,儘可能的下推給底層MySQL來並發執行。部分不能下推的複雜計算型的SQL或者沒有分片規則可以優化執行的場景,會通過批處理的方式從底層存儲引擎拉取到內存中進行分布式計算。
KunDB的雲化實踐
雲原生資料庫是資料庫新的部署形態。KunDB支持在星環TDH和TDC兩種模式下部署和交付。兩種模式下,KunDB的服務組件都是通過容器計劃服務化的,區別在於存儲方面,TDH裡KunDB還是用的裸存儲設備,而在TDC裡則用的池化的存儲設備。
資料庫作為一種持久化的服務,使用容器服務化會異常複雜。星環使用Docker+Kubernetes框架對大數據類服務和微服務框架進行改造,KunDB基於多年的容器實踐做了雲化改造。
首先是服務編排、調度與資源管理的技術。包括如何支持資料庫這類有狀態服務的雲存儲,KunDB在內部採用了存儲感知的調度策略,優化了對池化資源的使用。通過資料庫內部服務切分,跟雲平臺服務的調度系統和多租戶服務的SLA控制策略結合,保障資料庫服務的優先調度。借鑑大數據云化的經驗,採取數據局部性讓計算最優化。
KunDB目前支持雙因子認證,數據通信鏈路加密,數據加密,MAC權限管理等機制。KunDBA套件基於資料庫運行日誌做全時態的監控,包括資料庫運行狀態,性能監控和SQL審計,並支持告警。分布式資料庫的運維體系相對傳統資料庫更加複雜,KunDBA還提供了服務鏈路的跟蹤和故障的根因分析。在監控的基礎上,KunDBA會集成SQL調優、擴縮容管理、災備管理等常見的運維事項,提供集中化的運維平臺。
KunDB產品的演進
星環科技通過多年的實踐經驗,目前KunDB的核心定位是作為MySQL和Oracle的分布式替代方案,持續增強對MySQL和Oracle的兼容。HTAP是資料庫產品的一個新的趨勢,KunDB結合現有的能力以及星環科技的產品矩陣,選擇了OLTP+OLAP的異構方案組成HTAP。其中OLTP指的是KunDB,OLAP是星環分布式分析資料庫ArgoDB。
星環科技從技術視角出發,生動詮釋KunDB作為分布式資料庫和雲原生資料庫的內容,以期帶來有關對資料庫技的思考和實踐。展望未來,希望星環科技的KunDB產品能夠在技術的加持下,服務更多市場客戶,用實力技術助推企業發展。
【微信搜索關注關注「星環科技」公眾號>>>更多內容資訊等你來看>>>還有不定時福利放送哦!】