posts - 30,  comments - 85,  trackbacks - 0
           

          RAIDb的目標:

          通過將多個廉價的數據庫實例組合到一個數據庫陣列,提供比單臺數據庫更好的性能和容錯性。

          隱藏分布式數據庫的復雜性,提供給數據庫客戶端一個獨立的數據庫。

          在RAIDb中,一個控制器在其他資源的前面。客戶發送他們的請求到RAIDb控制器,這個控制器將他們分發給一組RDBMS后端。

          有不同的RAIDb級別或數據分發方案可用,它提供不同的費用,性能,或者容錯權衡。

          全分割(RAIDb-0)

          RAIDb-0 分割數據庫表到一個數據庫后端節點集。

          • 一個表本身不能再分割了。但是不同的表可以分布在不同的后端節點上。
          • RAIDb-0 需要至少兩個數據庫后端。
          • RAIDb-0 當前只能和一個控制器配置一起使用。
          • RAIDb-0 提供了一定的性能擴展,但不支持容錯功能。

          注意:

          當前的實現不支持分布式join。也就是說如果你想在表t1和t2間進行join操作,你必須確保t1和t2在同一臺機器上。

          擴展性的提升取決于表的數目和各個表的負載情況:

          • 如果你的數據庫很大,沒有單個節點有足夠的容量存放整個數據庫,那么RAIDb-0允許你把一個數據庫分布存儲到到一組節點上。
          • 此外,每個數據庫引擎處理一個小的數據集可以盡可能的提高緩存利用率,因為總是請求那幾個表。
          • RAIDb-0存儲的使用率是最高的,因為沒有重復的信息。
          • RAIDb-0需要控制器知道那個表在哪臺服務器上,以便把請求導向正確的節點。因為沒有重復的表,一直一個后端會執行一個特定的請求。這些信息也可以靜態配置到配置文件中,也可以從每個數據庫中抓取其schema來動態構建。

          全復制 (RAIDb-1)

          • RAIDb-1 在一組后端上提供了一個數據庫的全鏡像。
          • RAIDb-1 需要至少兩個后端節點,但是理論上后端的數量沒有上限的限制。每個后端必須有足夠的空間運行整個數據庫。
          • RAIDb-1 允許在集群配置中使用幾個控制器來為關鍵系統獲得高可用性。

          RAIDb-1的擴展能力取決于控制器廣播更新所有節點的能力。如果有大量后端數據庫,使用復合RAIDb可以獲得更好的擴展性。

          RAIDb-1提供了對讀查詢的加速,因為他們可以被均衡到所有后端上。另一方面,它對寫操作沒有加速(update,insert,delete請求),因為他們必須廣播到所有節點。寫操作在所有的后端并行執行。所以,在寫的角度來看,RAIDb-1可能比不上一個單獨的節點,但是從讀的角度來看,性能會隨著后端節點的增加而線性增長。

          RAIDb-1有很好的容錯性,因為系統即使只有一個后端可用時也可以保持工作。

          不像RAIDb-0,RAIDb-1控制器不需要知道數據庫的結構,因為所有的節點都有能力處理任何請求。然后,RAIDb-1提供了一個緩存,它需要數據庫結構來維護緩存的一致性。

          部分復制 (RAIDb-2)

          RAIDb-2可以看作是RAIDb-0 和 RAIDb-1權衡下的一個中庸的解決方案。它支持調整每個數據庫表的部分復制程度,以獲得一個做好的讀寫性能。

          RAIDb-2:

          • 要求至少三個數據庫后端;
          • 要求每個數據庫表在至少兩個后端上可用以解決單點故障問題。
          • 不要求任何一個節點可以運行整個數據庫。

          下面是RAIDb-2的典型應用:




          沒有或者只有少數幾個節點運行整個數據庫,一組節點各自運行這數據庫的一部分。

          下圖中的例子顯示了RAIDb-2的部分復制,數據庫包含3個表:x,y,和z.第一個后端包含整個數據庫,但是其他節點都只包含一個或兩個表。表x 和 y有3份拷貝,表z有兩份拷貝。任一節點失敗,仍然可以從其他的存活節點中找到數據。

          RAIDb-2對于異構數據庫非常有用。一個已有的企業數據庫使用商業數據庫,但是要建立一個全拷貝無論是從存儲上還是從增加許可的費用上來說,都太貴了。有了RAIDb-2就好辦了,你可以增加幾個小型開源數據庫來各自運行整個數據庫中的某些部分來代替整個數據庫,這樣也可以獲得更好的容錯性。

          RAIDb-2容錯性沒有RAIDb-1好,但是它有效的改善了寫操作的效率。跟RAIDb-0類似,RAIDb-2也要求控制器知道所有數據庫的結構,以便將請求定向到適當的節點。

          posted on 2008-12-10 21:35 安文豪 閱讀(1293) 評論(1)  編輯  收藏

          FeedBack:
          # re: RAIDb的理解
          2008-12-11 12:53 | narry
          可惜Sequoia在啟動階段的數據同步上做的不怎么樣,希望它能快快改進  回復  更多評論
            

          只有注冊用戶登錄后才能發表評論。


          網站導航:
           

          <2008年12月>
          30123456
          78910111213
          14151617181920
          21222324252627
          28293031123
          45678910

          常用鏈接

          留言簿(6)

          隨筆檔案(28)

          文章分類(3)

          文章檔案(4)

          最新隨筆

          搜索

          •  

          積分與排名

          • 積分 - 86552
          • 排名 - 667

          最新評論

          閱讀排行榜

          評論排行榜

          主站蜘蛛池模板: 衢州市| 通州区| 泽普县| 南漳县| 资中县| 洮南市| 定安县| 长岭县| 东辽县| 黄石市| 新宁县| 遂川县| 横峰县| 梁山县| 舟曲县| 石泉县| 武胜县| 开封县| 临沂市| 岳普湖县| 卓尼县| 泰顺县| 青神县| 桐庐县| 崇信县| 伊宁市| 福贡县| 长汀县| 辽阳市| 石棉县| 佛坪县| 乡宁县| 道孚县| 汶川县| 邢台市| 读书| 四会市| 嘉义县| 平邑县| 东港市| 阿荣旗|