色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美15最新在线-色哟哟免费在线观看-国产l精品国产亚洲区在线观看-国产l精品国产亚洲区久久

您好,歡迎來電子發燒友網! ,新用戶?[免費注冊]

您的位置:電子發燒友網>電子百科>網絡>網絡交換機>

初識sharding技術

2012年02月15日 14:31 IT168 作者:秩名 用戶評論(0

數據庫的sharding技術作為一個“新瓶裝舊酒”的概念,在新的應用環境中被賦予了新的意義。隨著云計算的發展,sharding在最近幾年是越來越火熱,越來越多的產品開始聲稱自己支持sharding功能。那么到底什么是sharding,sharding到底能為你的數據庫應用帶來哪些好處。另外最重要的,如何實現一個sharding系統,有哪些sharding算法可供選擇。本文將為你解決這些問題。

一. 簡介

1. 背景

數據庫的擴展是一個永恒的話題。對于傳統的關系數據庫,采用的是縱向擴展(Scale Up)的方式,即買更好的機器添加更多的資源來取得更好的性能(如硬件升級、更快更多的CPU、更大的內存、更多更大的磁盤等)。而形式上采用的是并行數據庫、分布式數據庫的模式,具體細節依賴水平分區或者垂直分區的技術。關系數據庫通過ScaleUp方式已在傳統的企業應用環境中統治了將近三十多年。

但是近年來隨著數據量的暴增尤其是云計算模式的出現,這種擴展模式對于某些應用已經不太適合,這時便出現了橫向擴展(Scale Out)模式。這種方式采用一些Ad-hoc的技術,比如說對數據庫進行主從配置(Master-Slave)、采用數據庫復制(Replication)技術以及服務器的緩存(Server Cache)等,來將負載分布到多個物理節點上去。另外sharding技術也逐步發展,并在近年來吸引了眾人的眼球。

2. 什么是Sharding

Sharding 是把數據庫Scale Out到多個物理節點上的一種有效的方式。Shard這個詞的意思是“碎片”。如果將一個數據庫當作一塊大玻璃,將這塊玻璃打碎,那么每一小塊都稱為數據庫的碎片(DatabaseShard)。將整個數據庫打碎的過程就叫做sharding,可以翻譯為分片。

形式上,Sharding可以簡單定義為將大數據庫分布到多個物理節點上的一個分區方案。每一個分區包含數據庫的某一部分,稱為一個shard,分區方式可以是任意的,并不局限于傳統的水平分區和垂直分區。一個shard可以包含多個表的內容甚至可以包含多個數據庫實例中的內容。每個shard被放置在一個數據庫服務器上。一個數據庫服務器可以處理一個或多個shard的數據。系統中需要有服務器進行查詢路由轉發,負責將查詢轉發到包含該查詢所訪問數據的shard或shards節點上去執行。

sharding技術

3. Sharding與分區的比較

Sharding與分區有著千絲萬縷的聯系,它們所采取的技術本質上是類似的,可以說sharding的概念就是由分區而來。在某些情況下sharding可能指的就是水平分區。另外有些文檔中使用了fragment(也是碎片的意思)的術語(在并行數據庫中的這些分區稱為partition,在分布式數據庫中則稱為fragment)。\ref footnote 1

Foot note 1:

[[

Daniel C. Zilio. Physical Database Design Decision Algorithms and ConcurrentReorganization for Parallel Database Systems. PhD thesis 1997.

M. Tamer ?zsu, Patrick Valduriez. Principles ofDistributed Database Systems, Third Edition. Springer. 2011

]]

但是我們所說的sharding和分區還是有很大區別的。下面羅列一下:

(1)擴展方式不同。Sharding屬于scaleout,而分區則屬于scale up方式。

(2)目的不同。分區的目的是為了將一個查詢進行并行處理,這樣所有的節點能并行處理一個查詢;而sharding是讓每個節點盡量處理不同的查詢。

(3)應用場景:分區適用與傳統的企業應用,尤其是OLAP的應用,基本上每個查詢都需要訪問大部分的數據;而sharding適用于云Web應用,特征是有大量的用戶和查詢,但是每個查詢訪問到的元組是非常少的,sharding可以將負載分散到多個物理節點上。

(4)可用性:對于分布式數據庫基本上每個查詢都需要所有的節點參與,如果某些節點down掉后,系統會大受影響;而sharding所處理的應用一般只涉及到少數幾個節點,所以可用性上sharding要好一些。另外分布式數據庫需要有一個主節點來生成執行計劃并協調相關節點執行等,很容易形成單點瓶頸。

(5)分割粒度:分區一般只針對于一個數據庫內部進行分割;而sharding可以以數據庫為粒度進行分割,因此可用來構建多租房數據庫系統(multi-tenantdatabase)。

4.Sharding的優點

對于Sharding來說,主要有以下主要的優點:

(1)提高了數據庫的可擴展性,可以隨著應用的增長來增加更多的服務器,只需要將新增加的數據以及負載放到新加的服務器上就可以。

(2)提高了數據庫的可用性。其中幾個shard服務器down掉之后,并不會使整個系統對外停止服務,而只會影響到需要訪問這幾個shard服務器上的數據的用戶。

(3)小的數據庫的查詢壓力比較小,查詢更快,性能更好。

(4)系統有更好的可管理性。對系統的升級和配置可以按照shard一個一個來做,并不會對服務產生大的影響。

非常好我支持^.^

(5) 100%

不好我反對

(0) 0%

( 發表人:辰光 )

      發表評論

      用戶評論
      評價:好評中評差評

      發表評論,獲取積分! 請遵守相關規定!

      ?
      主站蜘蛛池模板: 干了快生了的孕妇| 少妇大荫蒂毛多毛大| 97资源站超碰在线视频| h版动漫在线播放的网站| 98久久无码一区人妻A片蜜| 俄罗斯兽交XXXXX在线| 精品国产5g影院天天爽| 农民工老头在出租屋嫖老熟女| 特黄AAAAAAA片免费视频| 我和黑帮老大第365天第2季在线| 思思久久99热只有频精品66| 伊人影院亚洲| 古代荡乳尤物H妓女调教| 久草在线精彩免费视频| 国产自拍视频在线一区| 国产精品无码久久av| 国产亚洲精品久久久久苍井松 | 一道本av免费不卡播放| 亚洲成人综合在线| 99视频精品国产免费观看| 成人在线观看国产| 久见久热 这里只有精品| 色多多污污在线观看网站| 在线观看国产小视频| 高清 仑乱 一级 a| 免费国产久久拍久久爱| 亚洲 欧美 国产 伦 综合| japonensis护士| 久久精品国产亚洲AV忘忧草蜜臀| 金发欧美一区在线观看| 日韩爽爽影院在线播放| 在线天天看片视频免费观看| 国产91青青成人a在线| 久久这里只有精品无码3D| 亚洲国产精品久久无套麻豆| 戳女人屁股流水羞羞漫画| 久久久精品日本一区二区三区| 我的好妈妈8高清在线观看WWW| a国产成人免费视频| 久久精品AV无码亚洲色欲| 午夜一级视频|