邵麒,李亞鵬,佟文朋
(中國人民解放軍31401部隊,吉林長春,130000)
在信息時代下,網絡領域的應用模式和數據量不斷發生著變化,物聯網、云計算以及通信技術的快速發展,給數據的共享、存儲與管理提出了較高的要求,信息化領域關鍵數據庫技術的發展也由關系數據庫發展到NoSQL數據庫,再發展到如今的NewSQL數據庫,NewSQL數據庫吸收了NoSQL數據庫的分布式能力和傳統關系數據庫的強一致性特性,支持海量數據的儲存,同時具備很好的擴展性能,可支持并滿足原子性一致性、持久性、隔離性特性的事務,在分布式系統的設計與應用中發揮著關鍵作用[1]。
隨著互聯網的普及,互聯網用戶數量逐年增加,產生的數據越來越多,因此,應用系統必須具備對海量數據的存儲、管理能力和能夠支持用戶高并發訪問。分布式系統技術和分布式數據庫技術已經成為云計算、大數據、物聯網等信息領域的重點研究方向。
數據庫單機在容量上有一定的限制,采用數據分片的方式可以突破這個限制,將數據建立在多節點上,可增強數據處理高效性和靈活性,實現系統的彈性擴展,提高分布式系統的綜合性能。基于數據分片的方式有兩種,其中一種是水平分片,此分片方式將數據按照元組進行劃分,分為很多組,然后分散到多個節點上;另一種數據分片方式為垂直分片,垂直分片是將數據表在豎列的排列方向上進行數據切割,也可將數據分為很多小片段,各個片段之間除了主鍵外沒有交集,再將數據分散到不同的節點上。
為保證數據的正常使用,分布式系統數據庫中的數據會存有多個副本,利用充足的物理存儲資源將數據備份存儲,以防因為硬件的意外故障造成數據的丟失且不可恢復,采用存儲多副本的方式保證數據的容災性、安全性,即使出現硬件設備的故障丟失數據,也可使用事先存儲的副本,避免造成經濟損失。同樣,對海量數據進行重復備份,勢必需要足夠的存儲空間、可靠的副本定位技術、完善的副本創建策略等,也需要解決多個副本彼此之間的一致性問題,這些都提升了分布式數據庫技術的難度和復雜性。
分布式系統是建立在通信網絡之上,由一組為完成共同任務而進行分工、協調合作的計算機節點組成。獨本數據在使用上不需要建立副本,系統也不需要考慮副本之間的數據一致性問題,有著較高的數據一致性。但是,分布式系統在數據庫上的設計需要建立副本以提高系統的運行效果,顯著提升了數據的安全性和準確性。但不同節點之間的信息的管理,造成了較高的通信成本。分布式系統對數據庫提出在降低成本的基礎上保障數據的一致性需求[2]。
數據庫技術發展至今,中間研發并應用過多種數據庫技術,當前分布式系統的核心技術以及主流發展方向是NewSQL數據庫技術。NewSQL數據庫不僅結合了NoSQL數據庫對大量數據的處理能力,也具備傳統數據庫的ACID和SQL等特性。具有以下顯著優勢。
NewSQL數據庫對于服務器資源具有統一集群的構架思想,可將這些分散的資源進行整合,化為一個服務整體,供客戶使用。統一集群的方式一定程度上解決了小集群之間的障礙,使得對集群資源的使用和管理更加合理、高效,有效提高了整體資源的利用率,可增強數據庫的資源共享能力。
NewSQL數據庫的統一存儲架構思想不再將數據分片存儲,而是進行統一、集中的存儲,統一存儲的方式,實現了各種數據之間的整合管理,增強了數據庫的數據分享能力。統一、整體的數據資源具有分片資源缺乏的全量數據分析優勢,為系統的數據分析、總結與預測方面提供了較大幫助,同時,統一存儲避免了因重復備份和不同節點溝通造成的物理資源的浪費,也實現了多樣化業務數據的統一存儲與管理[3]。
在互聯網時代,數據安全問題頻繁發生,造成人們的數據信息曝光和丟失。數據庫技術不僅面臨著來自自然故障的壓力,也需要嚴防網絡黑客的惡意攻擊,分布式數據庫具備應對單點故障、網絡故障等自然故障的應對策略,針對惡意的竊聽、越權攻擊、破譯密文等網絡安全問題,NewSQL數據庫建立了統一安全架構,通過統一鑒權、保密通信、細粒度資源隔離與訪問控制以及庫文加密等手段,從多方面保證了數據資產的安全。
分布式系統中NewSQL數據庫的應用,可使得平臺底層的集群服務維護和監控能力過強,應用開發者可在此良好基礎上使用平臺服務接口進行應用的設計與研發,且易于數據分析人員和數據科學家的使用,便利了其對于數據的查詢和分析過程。
分布式系統中NewSQL數據庫在數據存儲上保持分布式,其統一存儲的思想構架可依靠鍵值對存儲引擎技術,將主體數據進行統一存儲,放到統一的集群中,基于分布式共識算法協議保證分布式各節點之間數據的一致性,當有數據進行變更后會自動生成一條共識算法日志,通過這條日志,將分布式系統中的每一節點都進行數據的同步復制,在所有節點中,只要同步復制成功的節點占大多數,就能安全、可靠地完成數據的寫入,一定程度上減小了數據同步復制的難度,保障了數據變更過程的正確性,如果在這一過程中出現了硬件設備的故障,只要同步復制成功的節點在一半以上,可后期通過共識算法協議將副本自動補全即可,有效提升了數據存儲的可靠性[4]。
分布式系統NewSQL數據庫中數據的存儲、運算以及管理均采用分組的方式,系統的整體存儲空間由多個組域組成,并盡量均勻地分散于系統的眾多節點上,盡量使統一集群中每個節點的負載均衡,在此基礎上實現系統存儲容量的水平擴展。分布式存儲引擎技術以組域為單位進行數據的分散和復制,增加了數據存儲的安全性。數據分布式存儲示意圖如圖1所示。

圖1 分布式儲存
在分布式系統設計中,NewSQL數據庫相比于采用主鍵索引模式的傳統關系數據庫,具有更加實時的次級索引機制,在海量數據的處理中,可進行快速、靈活的篩選,同時可與基于內存計算的大數據分布式計算框架進行融洽銜接,實現區間裁剪和計算下推功能,為用戶提供實時分析和查詢功能。在查詢過程上也進行了更加合理的設計,以降低遠程執行函數的調用成本,將SQL數據庫命令集中的謂詞條件下推到存儲節點進行計算,簡化了數據傳輸路徑,每個節點只需返回此節點中符合用戶分析與查詢條件的數據,各節點返回的數據和結果在系統的解析層進行匯聚以后統一處理。實時分析和查詢引擎的運行示意圖如圖2所示。

圖2 計算下推、逐層返回數據
分布式系統設計中NewSQL數據庫具備HTAP混合負載架構,因其實現了NewSQL數據庫技術、列式存儲類在線分析類型數據庫技術、聯機交易類型數據庫技術的結合。在系統同時對聯機交易類業務和在線分析類業務進行處理時,可省略數據復制這一環節,直接進行業務的處理。數據庫技術的混合負載架構采用列存儲方式,數據之間無較多關聯,同時結合了高效處理層和分布式協同共識算法,在數據的存儲和復制上采用組域的形式,使系統具有良好的分布式特性[5]。
綜上所述,網絡的普及和發展,引起了海量數據的儲存和管理挑戰,分布式系統中NewSQL數據庫技術不僅傳承了傳統關系數據庫技術的強一致特性,還兼具了NoSQL數據庫的分布式能力。NewSQL數據庫技術的各種優勢能夠較好滿足分布式系統對數據庫技術的需求,是當今以及未來數據庫管理系統的主流發展方向。相信隨著云計算、物聯網等技術的不斷發展,NewSQL數據庫技術在分布式系統中的應用將會更加廣泛。