|
對于一個具有海量數據的系統來說,性能的瓶頸最終就只能落在數據庫身上了,這時候硬件升級和程序優化已經是無能為力,一個簡單的查詢也有可能給數據庫帶來沉重的負擔。網格計算可把把一個需要巨大的計算能力才能解決的問題分割成許多小部分,然后把這些小部分分配給許多計算機進行處理,最后把這些計算結果綜合起來得到最終結果。對數據庫進行網絡計算的架構設計,無疑可能解決上述的性能問題。
那么怎么把一個巨大的數據庫分割成許多小的數據庫呢?現階段比較行之有效的方法是對數據庫進行分區處理。對于一個巨大容量的數據表,可不可以按日期,或者按類型,或者按區域,或者按ID號進行分割呢?答案是肯定的,這種分區方法也就是所謂的水平分區方法。另一方面,對于不同類型的數據,比如一個電子商務系統中的用戶數據、商品數據、交易數據等,它們之間的聯系不是很緊密,可以存放在不同的數據庫中,這樣就可實現了垂直分區。
經過分區處理,一個大的數據庫,可以分成許多小的數據庫。但是這樣一來,對于這些小數據庫的訪問,和怎么進行綜合處理,就引發出新的問題出來了。
在一個系統中,對這些數據庫進行訪問不是沒有可能,使用多個連接,多重處理,無論在哪種框架中都很容易實現。問題是,在一個系統中分別對這些數據庫進行訪問,其程序的復雜度和處理效率,有可能會產生出另一個瓶頸,這就不是我們需要的結果了。當然也可以使用負載均衡設計,但是其程序的復雜度還是不可避免。
這里,再引進另一個概念:SOA架構,即面向服務的體系結構。SOA可以通過服務生產者/服務消費者的方式,或訂閱/發布的方式等提供松散耦合的分布式服務體系。那么,對于各個不同區域的數據庫,就可以按照SOA架構做成不同的服務中心,對外提供數據庫訪問接口。SOA可以使用CORBA、Web Service等方式予以實現。
這樣一來,數據庫服務器的壓力分散了,程序計算的壓力也分散了,不管數據庫的數據量有多大,程序計算有多復雜,系統的性能都能得到最大限度的提升。
最后,大家可能會說,如果有一個網格數據庫系統就好了,應用系統的設計就不用那么復雜了。是的,現在的數據庫系統也有向這一方向設計的趨勢,只是技術還沒有成熟。相信在不久的將來,應該可以用到網格數據庫。
參考:
網格計算:http://baike.baidu.com/view/20049.htm
SOA:http://baike.baidu.com/view/21305.htm?fr=ala0_1_1
it知識庫:網格數據庫架構設計構想,轉載需保留來源!
鄭重聲明:本文版權歸原作者所有,轉載文章僅為傳播更多信息之目的,如作者信息標記有誤,請第一時間聯系我們修改或刪除,多謝。