日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 运维知识 > windows >内容正文

windows

分布式存储系统设计(2)—— 数据分片

發(fā)布時(shí)間:2024/6/21 windows 48 豆豆
生活随笔 收集整理的這篇文章主要介紹了 分布式存储系统设计(2)—— 数据分片 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

在分布式存儲(chǔ)系統(tǒng)中,數(shù)據(jù)需要分散存儲(chǔ)在多臺(tái)設(shè)備上,數(shù)據(jù)分片(Sharding)就是用來(lái)確定數(shù)據(jù)在多臺(tái)存儲(chǔ)設(shè)備上分布的技術(shù)。數(shù)據(jù)分片要達(dá)到三個(gè)目的:

  • 分布均勻,即每臺(tái)設(shè)備上的數(shù)據(jù)量要盡可能相近;
  • 負(fù)載均衡,即每臺(tái)設(shè)備上的請(qǐng)求量要盡可能相近;
  • 擴(kuò)縮容時(shí)產(chǎn)生的數(shù)據(jù)遷移盡可能少。
  • 數(shù)據(jù)分片方法

    數(shù)據(jù)分片一般都是使用Key或Key的哈希值來(lái)計(jì)算Key的分布,常見(jiàn)的幾種數(shù)據(jù)分片的方法如下:

  • 劃分號(hào)段。這種一般適用于Key為整型的情況,每臺(tái)設(shè)備上存放相同大小的號(hào)段區(qū)間,如把Key為[1, 10000]的數(shù)據(jù)放在第一臺(tái)設(shè)備上,把Key為[10001, 20000]的數(shù)據(jù)放在第二臺(tái)設(shè)備上,依次類推。這種方法實(shí)現(xiàn)很簡(jiǎn)單,擴(kuò)容也比較方便,成倍增加設(shè)備即可,如原來(lái)有N臺(tái)設(shè)備,再新增N臺(tái)設(shè)備來(lái)擴(kuò)容,把每臺(tái)老設(shè)備上一半的數(shù)據(jù)遷移到新設(shè)備上,原來(lái)號(hào)段為[1, 10000]的設(shè)備,擴(kuò)容后只保留號(hào)段[1, 5000]的數(shù)據(jù),把號(hào)段為[5001, 10000]的數(shù)據(jù)遷移到一臺(tái)新增的設(shè)備上。此方法的缺點(diǎn)是數(shù)據(jù)可能分布不均勻,如小號(hào)段數(shù)據(jù)量可能比大號(hào)段的數(shù)據(jù)量要大,同樣的各個(gè)號(hào)段的熱度也可能不一樣,導(dǎo)致各個(gè)設(shè)備的負(fù)載不均衡;并且擴(kuò)容也不夠靈活,只能成倍地增加設(shè)備。
  • 取模。這種方法先計(jì)算Key的哈希值,再對(duì)設(shè)備數(shù)量取模(整型的Key也可直接用Key取模),假設(shè)有N臺(tái)設(shè)備,編號(hào)為0~N-1,通過(guò)Hash(Key)%N就可以確定數(shù)據(jù)所在的設(shè)備編號(hào)。這種方法實(shí)現(xiàn)也非常簡(jiǎn)單,數(shù)據(jù)分布和負(fù)載也會(huì)比較均勻,可以新增任何數(shù)量的設(shè)備來(lái)擴(kuò)容。主要的問(wèn)題是擴(kuò)容的時(shí)候,會(huì)產(chǎn)生大量的數(shù)據(jù)遷移,比如從N臺(tái)設(shè)備擴(kuò)容到N+1臺(tái),絕大部分的數(shù)據(jù)都要在設(shè)備間進(jìn)行遷移。
  • 檢索表。在檢索表中存儲(chǔ)Key和設(shè)備的映射關(guān)系,通過(guò)查找檢索表就可以確定數(shù)據(jù)分布,這里的檢索表也可以比較靈活,可以對(duì)每個(gè)Key都存儲(chǔ)映射關(guān)系,也可結(jié)合號(hào)段劃分等方法來(lái)減小檢索表的容量。這樣可以做到數(shù)據(jù)均勻分布、負(fù)載均衡和擴(kuò)縮容數(shù)據(jù)遷移量少。缺點(diǎn)是需要存儲(chǔ)檢索表的空間可能比較大,并且為了保證擴(kuò)縮容引起的數(shù)據(jù)遷移量比較少,確定映射關(guān)系的算法也比較復(fù)雜。
  • 一致性哈希。一致性哈希算法(Consistent Hashing)在1997年由麻省理工學(xué)院提出的一種分布式哈希(DHT)實(shí)現(xiàn)算法,設(shè)計(jì)目標(biāo)是為了解決因特網(wǎng)中的熱點(diǎn)(Hot Spot)問(wèn)題,該方法的詳細(xì)介紹參考此處http://blog.csdn.net/sparkliang/article/details/5279393。一致性哈希的算法簡(jiǎn)單而巧妙,很容易做到數(shù)據(jù)均分布,其單調(diào)性也保證了擴(kuò)縮容的數(shù)據(jù)遷移是比較少的。
  • 通過(guò)上面的對(duì)比,在這個(gè)系統(tǒng)選擇一致性哈希的方法來(lái)進(jìn)行數(shù)據(jù)分片。

    虛擬服務(wù)器

    為了讓系統(tǒng)有更好的擴(kuò)展性,這里提出存儲(chǔ)層VServer(虛擬服務(wù)器)的概念,一個(gè)VServer是一個(gè)邏輯上的存儲(chǔ)服務(wù)器,是分布式存儲(chǔ)系統(tǒng)的一個(gè)存儲(chǔ)單元,一臺(tái)物理設(shè)備上可以部署多個(gè)VServer,一個(gè)VServer支持一個(gè)寫進(jìn)程和多個(gè)讀進(jìn)程。

    通過(guò)VServer的方式,會(huì)有下面一些好處:

  • 提高單機(jī)性能。為了不引入復(fù)雜的鎖機(jī)制,采用了單寫進(jìn)程的設(shè)計(jì),如果單機(jī)只有一個(gè)寫進(jìn)程,寫并發(fā)能力會(huì)受到限制,通過(guò)VServer方式把單機(jī)上的存儲(chǔ)資源(內(nèi)存、硬盤)劃分為多個(gè)存儲(chǔ)單元,這樣就支持多個(gè)寫進(jìn)程同時(shí)工作,大大提升單機(jī)寫并發(fā)能力。
  • 部署擴(kuò)展性更好。VServer的方式在部署上非常靈活,可以根據(jù)單機(jī)的資源情況來(lái)確定VServer的數(shù)量,針對(duì)不同的機(jī)型配置不同的VServer數(shù)量,這樣不同的機(jī)型都能充分利用機(jī)器上的資源,即使在一個(gè)系統(tǒng)中使用多種機(jī)型,也能做到機(jī)器的負(fù)載比較均衡。
  • 一致性哈希的應(yīng)用

    數(shù)據(jù)分片是在接口層實(shí)現(xiàn)的,目的是把數(shù)據(jù)均勻地劃分到不同的VServer上。有了接口層的存在,邏輯層尋址就輕量了很多,尋址存儲(chǔ)層VServer的工作全部由接口層負(fù)責(zé),邏輯層只需要隨機(jī)選一個(gè)接口層機(jī)器訪問(wèn)即可。

    接口層使用了一致性哈希的割環(huán)算法來(lái)實(shí)現(xiàn)數(shù)據(jù)分片,在割環(huán)算法中,為了讓數(shù)據(jù)均勻分布到各個(gè)VServer,每個(gè)VServer需要有多個(gè)VNode(虛擬節(jié)點(diǎn))。一個(gè)Key尋址的過(guò)程如下圖所示,首先根據(jù)Hash(Key)在哈希環(huán)上找到對(duì)應(yīng)的VNode,在根據(jù)VNode和VServer的映射表確定所屬的VServer。

    由上述查找過(guò)程可知,需要事先離線計(jì)算出VNode在哈希環(huán)上的分布、VServer和VNode映射關(guān)系。為了是計(jì)算結(jié)果具有通用性,即在擁有任何數(shù)量VServer的一個(gè)系統(tǒng)都可以使用該結(jié)果得到一致性哈希的映射表,這就要求結(jié)果是與機(jī)器無(wú)關(guān)的,比如不能使用IP來(lái)計(jì)算VNode的哈希值。在計(jì)算前需要確定每個(gè)VServer包含的VNode數(shù)量,以及一個(gè)系統(tǒng)所支持的最大VServer數(shù)量。一個(gè)簡(jiǎn)單的方法是類似上文鏈接中提到的方法,但不能和IP相關(guān),可以改用VServer和VNode的編號(hào)來(lái)計(jì)算哈希值,如Hash("1#1"),Hash("1#2")… 這種方法要求一個(gè)VServer包含的VNode的數(shù)量比較多,大概需要500個(gè)才能使各個(gè)VServer上的數(shù)據(jù)比較均勻。當(dāng)然還有其他的一些方法做到一個(gè)VServer上包含更少的VNode數(shù)量,并且讓數(shù)據(jù)分布偏差在一定范圍內(nèi)。

    Google提出了一種新的一致性哈希算法Jump Consistent Hash,此算法零內(nèi)存消耗,均勻分配,快速,并且只有5行代碼,優(yōu)勢(shì)非常明顯,詳細(xì)介紹見(jiàn)此處http://my.oschina.net/u/658658/blog/424161。和上面介紹的方法相比,一個(gè)最大的不同點(diǎn)是,在擴(kuò)容重新分布數(shù)據(jù)時(shí),在上面的方法中,新機(jī)器的一個(gè)VNode上的數(shù)據(jù)只會(huì)來(lái)自一個(gè)老機(jī)器上的VNode,而這種方法是會(huì)來(lái)自所有老機(jī)器上的VNode。這個(gè)問(wèn)題可能會(huì)導(dǎo)致一些設(shè)計(jì)上復(fù)雜化,所以使用的時(shí)候要慎重考慮。

    轉(zhuǎn)載于:https://www.cnblogs.com/glacierh/p/5653512.html

    總結(jié)

    以上是生活随笔為你收集整理的分布式存储系统设计(2)—— 数据分片的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

    如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。

    主站蜘蛛池模板: 九九精品免费 | 进去里在线观看 | 国产精品自慰网站 | 亚洲欧美强伦一区二区 | 二区三区在线视频 | 日本欧美久久久久免费播放网 | 男女啪啪软件 | 男人天堂成人 | 日本少妇xxxxxx | 国产成人一区二区三区 | 国产精品一区二区三区四区 | 精品看片| 四月婷婷| 日韩电影一区二区在线观看 | 成人天堂| 日韩污视频 | 大香伊人中文字幕精品 | 亚洲女同在线 | 久久久久无码精品国产 | 公交顶臀绿裙妇女配视频 | 精品人妻大屁股白浆无码 | 欧美老熟妇一区二区 | 99爱视频在线 | 亚洲乱仑 | 欧美色图在线观看 | 成人一区二区三区在线观看 | 欧美极品少妇无套实战 | 艳妇臀荡乳欲伦交换gif | 蜜桃在线一区 | 久久久久久www | 91热久久 | 毛茸茸毛片 | 日本在线黄色 | 人妖粗暴刺激videos呻吟 | 日韩欧美大片 | 国产三区在线观看 | 91精品国产综合久久久蜜臀九色 | 日韩美女视频网站 | 操操操免费视频 | 欧美一二三区视频 | 极品白嫩的小少妇 | 一区二区三区四区精品 | 亚洲精品一 | 成人爽a毛片一区二区 | 国产xxx在线观看 | 精品福利视频一区二区 | 人妻体内射精一区二区 | 午夜视频在线免费 | 欧美色v | 久久公开视频 | 精品亚洲中文字幕 | 樱花电影最新免费观看国语版 | 1000部做爰免费视频 | 欧美激情网址 | 六月丁香综合 | 日韩一区二区三区在线观看视频 | 女裸全身无奶罩内裤内衣内裤 | 国产欧美在线播放 | 91福利视频网 | 成人在线观看国产 | 亚洲免费黄色片 | 久久精品国产亚洲av久一一区 | 成年人免费网站在线观看 | 欧美 日韩 国产 成人 在线观看 | 欧美精品久久 | 日本精品一区二区视频 | 网站在线观看你懂的 | 伊人欧美 | 精品久久一 | 精精国产 | 久久免费久久 | 逼特逼在线视频 | 久久精品天堂 | 国产尤物在线视频 | 草久免费视频 | 人妖黄色片 | 国产主播精品在线 | 韩国特级毛片 | 狠狠干伊人网 | 国产aⅴ一区二区三区 | 久久影院午夜理论片无码 | 色欲狠狠躁天天躁无码中文字幕 | 伊人动漫| 中文字幕av高清片 | 粉嫩小箩莉奶水四溅在线观看 | 亚洲午夜无码久久久久 | 欧美色乱| 日本美女交配 | 美国一区二区三区 | 精品日韩视频 | 国产交换配乱淫视频免费 | 91色综合 | 午夜影院在线观看 | 黄色专区 | 九九热国产 | 韩国三级久久 | 91精品视频一区二区三区 | 中文字幕三区 | 九九久久九九久久 |