欧美性猛交xxxx免费看_牛牛在线视频国产免费_天堂草原电视剧在线观看免费_国产粉嫩高清在线观看_国产欧美日本亚洲精品一5区

您好,歡迎來(lái)電子發(fā)燒友網(wǎng)! ,新用戶?[免費(fèi)注冊(cè)]

您的位置:電子發(fā)燒友網(wǎng)>電子百科>網(wǎng)絡(luò)>網(wǎng)絡(luò)交換機(jī)>

初識(shí)sharding技術(shù)

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

數(shù)據(jù)庫(kù)的sharding技術(shù)作為一個(gè)“新瓶裝舊酒”的概念,在新的應(yīng)用環(huán)境中被賦予了新的意義。隨著云計(jì)算的發(fā)展,sharding在最近幾年是越來(lái)越火熱,越來(lái)越多的產(chǎn)品開(kāi)始聲稱自己支持sharding功能。那么到底什么是sharding,sharding到底能為你的數(shù)據(jù)庫(kù)應(yīng)用帶來(lái)哪些好處。另外最重要的,如何實(shí)現(xiàn)一個(gè)sharding系統(tǒng),有哪些sharding算法可供選擇。本文將為你解決這些問(wèn)題。

一. 簡(jiǎn)介

1. 背景

數(shù)據(jù)庫(kù)的擴(kuò)展是一個(gè)永恒的話題。對(duì)于傳統(tǒng)的關(guān)系數(shù)據(jù)庫(kù),采用的是縱向擴(kuò)展(Scale Up)的方式,即買更好的機(jī)器添加更多的資源來(lái)取得更好的性能(如硬件升級(jí)、更快更多的CPU、更大的內(nèi)存、更多更大的磁盤(pán)等)。而形式上采用的是并行數(shù)據(jù)庫(kù)、分布式數(shù)據(jù)庫(kù)的模式,具體細(xì)節(jié)依賴水平分區(qū)或者垂直分區(qū)的技術(shù)。關(guān)系數(shù)據(jù)庫(kù)通過(guò)ScaleUp方式已在傳統(tǒng)的企業(yè)應(yīng)用環(huán)境中統(tǒng)治了將近三十多年。

但是近年來(lái)隨著數(shù)據(jù)量的暴增尤其是云計(jì)算模式的出現(xiàn),這種擴(kuò)展模式對(duì)于某些應(yīng)用已經(jīng)不太適合,這時(shí)便出現(xiàn)了橫向擴(kuò)展(Scale Out)模式。這種方式采用一些Ad-hoc的技術(shù),比如說(shuō)對(duì)數(shù)據(jù)庫(kù)進(jìn)行主從配置(Master-Slave)、采用數(shù)據(jù)庫(kù)復(fù)制(Replication)技術(shù)以及服務(wù)器的緩存(Server Cache)等,來(lái)將負(fù)載分布到多個(gè)物理節(jié)點(diǎn)上去。另外sharding技術(shù)也逐步發(fā)展,并在近年來(lái)吸引了眾人的眼球。

2. 什么是Sharding

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

形式上,Sharding可以簡(jiǎn)單定義為將大數(shù)據(jù)庫(kù)分布到多個(gè)物理節(jié)點(diǎn)上的一個(gè)分區(qū)方案。每一個(gè)分區(qū)包含數(shù)據(jù)庫(kù)的某一部分,稱為一個(gè)shard,分區(qū)方式可以是任意的,并不局限于傳統(tǒng)的水平分區(qū)和垂直分區(qū)。一個(gè)shard可以包含多個(gè)表的內(nèi)容甚至可以包含多個(gè)數(shù)據(jù)庫(kù)實(shí)例中的內(nèi)容。每個(gè)shard被放置在一個(gè)數(shù)據(jù)庫(kù)服務(wù)器上。一個(gè)數(shù)據(jù)庫(kù)服務(wù)器可以處理一個(gè)或多個(gè)shard的數(shù)據(jù)。系統(tǒng)中需要有服務(wù)器進(jìn)行查詢路由轉(zhuǎn)發(fā),負(fù)責(zé)將查詢轉(zhuǎn)發(fā)到包含該查詢所訪問(wèn)數(shù)據(jù)的shard或shards節(jié)點(diǎn)上去執(zhí)行。

sharding技術(shù)

3. Sharding與分區(qū)的比較

Sharding與分區(qū)有著千絲萬(wàn)縷的聯(lián)系,它們所采取的技術(shù)本質(zhì)上是類似的,可以說(shuō)sharding的概念就是由分區(qū)而來(lái)。在某些情況下sharding可能指的就是水平分區(qū)。另外有些文檔中使用了fragment(也是碎片的意思)的術(shù)語(yǔ)(在并行數(shù)據(jù)庫(kù)中的這些分區(qū)稱為partition,在分布式數(shù)據(jù)庫(kù)中則稱為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

]]

但是我們所說(shuō)的sharding和分區(qū)還是有很大區(qū)別的。下面羅列一下:

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

(2)目的不同。分區(qū)的目的是為了將一個(gè)查詢進(jìn)行并行處理,這樣所有的節(jié)點(diǎn)能并行處理一個(gè)查詢;而sharding是讓每個(gè)節(jié)點(diǎn)盡量處理不同的查詢。

(3)應(yīng)用場(chǎng)景:分區(qū)適用與傳統(tǒng)的企業(yè)應(yīng)用,尤其是OLAP的應(yīng)用,基本上每個(gè)查詢都需要訪問(wèn)大部分的數(shù)據(jù);而sharding適用于云Web應(yīng)用,特征是有大量的用戶和查詢,但是每個(gè)查詢?cè)L問(wèn)到的元組是非常少的,sharding可以將負(fù)載分散到多個(gè)物理節(jié)點(diǎn)上。

(4)可用性:對(duì)于分布式數(shù)據(jù)庫(kù)基本上每個(gè)查詢都需要所有的節(jié)點(diǎn)參與,如果某些節(jié)點(diǎn)down掉后,系統(tǒng)會(huì)大受影響;而sharding所處理的應(yīng)用一般只涉及到少數(shù)幾個(gè)節(jié)點(diǎn),所以可用性上sharding要好一些。另外分布式數(shù)據(jù)庫(kù)需要有一個(gè)主節(jié)點(diǎn)來(lái)生成執(zhí)行計(jì)劃并協(xié)調(diào)相關(guān)節(jié)點(diǎn)執(zhí)行等,很容易形成單點(diǎn)瓶頸。

(5)分割粒度:分區(qū)一般只針對(duì)于一個(gè)數(shù)據(jù)庫(kù)內(nèi)部進(jìn)行分割;而sharding可以以數(shù)據(jù)庫(kù)為粒度進(jìn)行分割,因此可用來(lái)構(gòu)建多租房數(shù)據(jù)庫(kù)系統(tǒng)(multi-tenantdatabase)。

4.Sharding的優(yōu)點(diǎn)

對(duì)于Sharding來(lái)說(shuō),主要有以下主要的優(yōu)點(diǎn):

(1)提高了數(shù)據(jù)庫(kù)的可擴(kuò)展性,可以隨著應(yīng)用的增長(zhǎng)來(lái)增加更多的服務(wù)器,只需要將新增加的數(shù)據(jù)以及負(fù)載放到新加的服務(wù)器上就可以。

(2)提高了數(shù)據(jù)庫(kù)的可用性。其中幾個(gè)shard服務(wù)器down掉之后,并不會(huì)使整個(gè)系統(tǒng)對(duì)外停止服務(wù),而只會(huì)影響到需要訪問(wèn)這幾個(gè)shard服務(wù)器上的數(shù)據(jù)的用戶。

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

(4)系統(tǒng)有更好的可管理性。對(duì)系統(tǒng)的升級(jí)和配置可以按照shard一個(gè)一個(gè)來(lái)做,并不會(huì)對(duì)服務(wù)產(chǎn)生大的影響。

非常好我支持^.^

(5) 100%

不好我反對(duì)

(0) 0%

( 發(fā)表人:辰光 )

      發(fā)表評(píng)論

      用戶評(píng)論
      評(píng)價(jià):好評(píng)中評(píng)差評(píng)

      發(fā)表評(píng)論,獲取積分! 請(qǐng)遵守相關(guān)規(guī)定!

      ?