隨著語音、數據和多媒體業務需求的不斷提升,通信架構也日趨復雜。數據管理是目前通信網絡和業務開發中挑戰性的領域,本文介紹的數據管理技術不僅能提供高可用性,而且還能提供卓越的性能、可量測性和成本效益。
全互聯網協議(all-Internet Protocol)網絡以及基于IP的業務通常要求通信系統不僅具有較短的開發周期,還要能保證傳統的電信級業務的連續性和響應度。而且,隨著語音、數據和多媒體業務需求的不斷提升,通信架構也日趨復雜。靜態信息的日益動態化、定制用戶特性的不斷增加以及內容豐富的預付費和在線點播業務的持續增長則使問題進一步復雜化。所有這些因素均要求大幅提升數據量,并對數據進行快速、可靠、精確地存儲和訪問,而且每次處理一項業務請求。
面對這些壓力,系統供應商正試圖采用一種基于公開的標準架構塊方法以削減產品上市時間并降低通信架構開發和維護的成本。例如,業務可用性論壇(www.saforum.org)通過創建、宣傳業界廣泛采用的加速高可用架構和應用系統開發及部署的公開標準規范,詳細討論了該問題。
高速實時數據庫是該設備的中樞架構塊,可提供下一代網絡所需的數據處理功能。這些數據庫還可滿足業務可用性和可靠性需要。該數據庫通常基于專用解決方案,這往往加大了開發成本并延長了產品上市時間。現在,架構生產商則能從現有的實時數據庫產品中受益,即以較短的時間及較低的成本提供更具競爭力的通信平臺。
數據庫分析
嵌入至通信系統內部的實時數據庫系統需要:
* 對數量極大的簡單查詢進行響應(總是通過主鍵或的輔助鍵加以實現);
* 通過頻繁的更新來管理簡單數據;
* 具有高可用性,故障時間每年多半分鐘;
* 具有極短的響應時間,通常只為幾個毫秒。
這些需求還必須適應不斷增加的用戶數需求。目前,大型移動網絡所能處理的用戶數范圍已經達到一千萬。將來,虛擬業務提供商將能共享相同的網絡架構,這樣單個網絡將不得不支持更多的用戶數。此外,用戶也許很快就能使用嵌入至汽車和家用電器的移動設備,由此導致連接數目呈幾何指數增長。
傳統方法
傳統基于磁盤的數據庫可采用磁盤復制技術確保數據可用性。為了改進性能,存儲進程可將處理程序從應用系統轉移到數據庫本身。這樣,可以通過在RAM中獲取數據以改進存取時間。該方法的存儲速率仍然相對降低,尤其對于需要大量進行寫操作的應用,因為這時磁盤I/O仍將成為主要瓶頸。
為了獲得更高性能,專用實時數據管理系統可在RAM中進行所有的數據處理。通過在固定的內存位置存儲數據,而不像高速緩存那樣到處移動數據,即可實現更高的性能。該解決方案也同樣適用于簡單的數據結構。然而,這類實時數據庫并不能提供很高的可靠性并且易受系統崩潰的影響。改進可靠性和可用性的方法(例如,通過在不同的內存段中采用同步復制)通常代價昂貴,使系統靈活地適應各類不同的應用通常需要不同的事務處理模式,這進一步增加了專用解決方案的成本。下一代通信系統將需要一種新型數據庫以有效地進行實時數據管理。
分布式方法
為了滿足實時系統中新型數據管理的需要,可以考慮能對分布在諸多網絡節點上的數據進行同步復制的并行主存數據庫系統。
所謂的無共享簇(由眾多節點組成的并行系統,每個節點均自備操作系統、磁盤和RAM,這些節點實現高速互聯)可以在多個處理器中進行分布式處理并能自動隱藏局部系統中的故障。
一旦出現故障,數據庫系統可以自動配置并隱藏故障的處理器。故障切換時間(發現故障節點至切換至備用節點的時間)可以限制在50毫秒以內以保證業務不受干擾。此外,還可采用同步復制和動態配置支持在線輪詢升級。這種設計可實現每年多30秒故障時間的高可用性,即在99.9999%的時間內均能正常運行。
為使廣大應用開發人員迅速采用這些特性,必須使其具有標準的應用編程接口,同時,還必須保持足夠的靈活性以滿足各種應用需要。這意味著必須開發出既能支持共享內存又支持無共享架構,同時還具有相當靈活度的冗余模型。因此,開發人員提出了所謂的N*Active/M*Standby冗余模型以適用實時分布式數據庫,并被業務可用性論壇加以標準化。
在N*Active/M*Standby冗余模型中,數據庫采用N個活動節點,在這些節點上,數據庫服務器運行表征應用的事務。模型可以通過以下兩條途徑實現冗余:在活動節點間進行節點復制以及將數據復制到備用節點。
M個備用數據庫節點可在數據庫重配置過程中激活。這些激活可以是數據庫管理人員提出的有計劃重配置,也可以是由于節點故障導致的意外重配置。一旦活動數據庫出現故障,應用系統將重新連接到備用數據庫。
在全復制過程中,所有數據將在所有活動節點中加以復制。然而,在大多數場合下,具有兩個副本的分離復制就能滿足絕大多數可用性需求。
配置過程中,數據將采用一種對應用開發人員完全透明的分布式線性散列方法。活動節點將分成兩類節點組,而數據則將在節點組內的節點進行復制,這樣就形成了數據的主級復制和輔助復制(參見圖1)。只要所有的節點組少具有一個正常工作的活動節點,系統就能正常運行。
分布式數據庫可解決多個節點故障。當一個節點故障時,節點組中的其他節點仍然能包含相關的信息分段,從而可以繼續工作。當節點重啟時,主級復制將配合節點重啟并獲取所有分段信息。這樣,系統不僅不會出現任何故障時間,而且還允許對數據庫進行寫操作。
當所有的復制完成更新并將日志寫入主存儲器后,即可匯報情況。事務可以一種恒定的方式異步進行磁盤操作,這樣如果出現系統故障,仍然能使數據庫恢復到恒定的事務狀態。
對于災難恢復,異步復制還可用于分散分布的數據庫。全部復制間的并行日志信道可提供處理網絡冗余的靈活機制。
基準測試表明,基于無共享簇的實時分布式數據庫設計可提供比非分布式主存數據庫更優的性能以及更高的可靠性和可用性。
例如,愛立信公司開發的實時分布式數據庫系統NDB簇已成為通過配置32個節點數據庫簇解決每秒150萬個事務的商用Unix系統的基準。負載則由利用高帶寬實現互聯并連接至數據庫簇的23個遠程處理器生成。
實際應用中的數據庫
分布式實時數據庫廣泛應用于核心網節點,如移動切換中心,媒體網關和媒體網關控制器。數據庫可用于存儲面向會話的數據,這些數據反映了正在進行的連接和通信業務的狀態。在部分系統故障條件下保存會話數據對于實現高可用性至關重要。數據庫也可用于資源管理,下面的示例說明了這一點。
例如,在媒體網關中,數據庫可用于管理一組表征節點物理資源的虛擬對象(圖2)。媒體網關的任務就是通過對實際數據流進行處理(在用戶平面上)以建立和拆除通話。媒體網關應用實現了用戶平面控制功能。首先媒體網關為媒體網關控制器試圖建立的通話分配實際資源 ,應用為設備建立與通話相關的協議,以完成連接并處理之后的數據流。通話結束,媒體網關將釋放連接和設備。
一旦應用進程出現故障,另一進程可以通過從數據庫獲取信息從而接管應用。對于那些無法保存的通話,資源可利用數據庫中的信息加以釋放。在媒體網關中采用數據庫可以顯著簡化資源管理。
數據庫需要考慮的因素包括:
* 高可用性特性;
* 數據庫處理器出現故障時,故障切換的時間小于50ms;
* 實時軟件更新時的數據可用性;
* 性能和可量測性;
* 客戶機—服務器模式下復制系統具有每秒10,000個事務的處理能力并使用盡可能少的處理器;
* 通過添加更多設備卡以提高數據庫容量的能力;
* 對于數據的不同部分具有不同的響應時間需求;
* 在某些極端情形下,如當接入時間小于0.1 ms時,能在客戶端緩存數據;
* 內存使用;
* 每個設備卡的內存容量有限(通常RAM的容量為0.5 G);
* 較小的數據庫內存規格以及每個數據庫記錄都具有小開支;
* 應用開發;
* 可以便捷地將數據庫集成至應用系統;
* 解析數據的物理位置(緩存在API或配置在遠程處理器);
* 解析數據庫配置(是否運行于兩個或更多處理器之上)。
數據管理是目前通信網絡和業務開發中挑戰性的領域,得益于分布式實時操作系統、數據庫系統、網絡運營商、產品生產商和設計人員的共同努力,目前已經推出的數據管理技術不僅能提供高可用性,而且還能提供卓越的性能、可量測性和成本效益。
作者簡介:
Tomas Ulin是Alzato公司的總經理,Alzato公司是一家由愛立信公司出資,專注于在通信領域開發和銷售分布式實時數據庫技術的商務創新投資公司。Ulin于瑞典Royal Institute of Technology大學(Stockholm)獲得計算機科學博士學位,于Case Western Reserve (Cleveland)大學和瑞典Uppsala大學分別獲得電子工程碩士學位和工程物理碩士學位。