對於一個具有海量資料的系統來說,效能的瓶頸最終就只能落在資料庫身上了,這時候硬體升級和程式最佳化已經是無能為力,一個簡單的查詢也有可能給資料庫帶來沉重的負擔。格線運算可把把一個需要巨大的計算能力才能解決的問題分割成許多小部分,然後把這些小部分分配給許多電腦進行處理,最後把這些計算結果綜合起來得到最終結果。對資料庫進行網路計算的架構設計,無疑可能解決上述的效能問題。
那麼怎麼把一個巨大的資料庫分割成許多小的資料庫呢?現階段比較行之有效方法是對資料庫進行分區處理。對於一個巨大容量的資料表,可不可以按日期,或者按類型,或者按地區,或者按ID號進行分割呢?答案是肯定的,這種分區方法也就是所謂的水平資料分割方法。另一方面,對於不同類型的資料,比如一個電子商務系統中的使用者資料、商品資料、交易資料等,它們之間的聯絡不是很緊密,可以存放在不同的資料庫中,這樣就可實現了垂直資料分割。
經過分區處理,一個大的資料庫,可以分成許多小的資料庫。但是這樣一來,對於這些小資料庫的訪問,和怎麼進行綜合處理,就引發出新的問題出來了。
在一個系統中,對這些資料庫進行訪問不是沒有可能,使用多個串連,多重處理,無論在哪種架構中都很容易實現。問題是,在一個系統中分別對這些資料庫進行訪問,其程式的複雜度和處理效率,有可能會產生出另一個瓶頸,這就不是我們需要的結果了。當然也可以使用負載平衡設計,但是其程式的複雜度還是不可避免。
這裡,再引進另一個概念:SOA架構,即服務導向架構。SOA可以通過服務生產者/服務消費者的方式,或訂閱/發布的方式等提供鬆散耦合的分布式服務體系。那麼,對於各個不同地區的資料庫,就可以按照SOA架構做成不同的服務中心,對外提供資料庫提供者。SOA可以使用CORBA、Web Service等方式予以實現。
這樣一來,資料庫伺服器的壓力分散了,程式計算的壓力也分散了,不管資料庫的資料量有多大,程式計算有多複雜,系統的效能都能得到最大限度的提升。
最後,大家可能會說,如果有一個網格資料庫系統就好了,應用系統的設計就不用那麼複雜了。是的,現在的資料庫系統也有向這一方向設計的趨勢,只是技術還沒有成熟。相信在不久的將來,應該可以用到網格資料庫。
原文標題:網格資料庫結構描述設計構想
連結:http://www.cnblogs.com/chrischen662/archive/2010/09/03/1817081.html
延伸閱讀
格線運算已經成為熱點,它所帶來的低成本、高效能以及方便的計算資源共用正是眾多企業所追求的。未來的資料庫將構築在格線運算環境之上。
RACReal Application Cluster,真正應用叢集)是Oracle9i資料庫中採用的一項新技術,也是Oracle資料庫支援格線運算環境的核心技術。它的出現解決了傳統資料庫應用中面臨的一個重要問題:高效能、高延展性與低價格之間的矛盾。
除了RAC技術,Oracle9i資料庫還提供其他功能來支援格線運算,包括支援在資料庫之間進行資料快速複製的Transportable Tablespaces、支援資料流更新的Oracle Streams、支援應用可移植性的One Portable Codebase等。Mendelsohn認為,對那些需要建立資料中心的企業來說,Oracle9i RAC加上刀片伺服器和Linux作業系統,就完全能夠替代傳統的基於大型主機的資料系統。
準確的說應為支援網格的資料庫技術,Oracle10g中的g即為gridding網格。