偷偷摘套内射激情视频,久久精品99国产国产精,中文字幕无线乱码人妻,中文在线中文a,性爽19p

聊一聊分片和一致性哈希

數(shù)據(jù)庫(kù) 其他數(shù)據(jù)庫(kù)
一致性哈希是一種將龐大的數(shù)據(jù)集(例如100萬(wàn)行)分割成多個(gè)較小的數(shù)據(jù)子集(存儲(chǔ)在一組數(shù)據(jù)庫(kù)服務(wù)器上)的技術(shù),以確保在集群中的服務(wù)器數(shù)量發(fā)生變化(即添加或刪除服務(wù)器)時(shí),數(shù)據(jù)的遷移量最小。

在設(shè)計(jì)大規(guī)模分布式系統(tǒng)時(shí),你可能會(huì)遇到兩個(gè)概念——分片(sharding)和一致性哈希(consistent hashing)。雖然我在網(wǎng)上找到了很多關(guān)于這些術(shù)語(yǔ)的解釋,但它們讓我感到有些困惑。我覺(jué)得分片和一致性哈希本質(zhì)上是在討論同一件事——將數(shù)據(jù)分布在一組服務(wù)器上。

我想—這兩個(gè)概念是不是相同的,還是有所不同?如果你也有類似的困惑,讓我們簡(jiǎn)要地來(lái)解釋一下。

分片

想象一下我們有一個(gè)數(shù)據(jù)庫(kù),其中數(shù)據(jù)以行和列的形式存儲(chǔ)(就像關(guān)系型數(shù)據(jù)庫(kù),盡管分片也適用于NoSQL數(shù)據(jù)庫(kù))。當(dāng)我們的數(shù)據(jù)集變得非常龐大時(shí)(比如1百萬(wàn)條記錄),對(duì)龐大數(shù)據(jù)集進(jìn)行任何類型的操作(讀取、更新、刪除、連接等)都會(huì)變得非常緩慢。而且隨著數(shù)據(jù)量的增長(zhǎng),由于服務(wù)器可能具有的物理空間(HDD/SSD)的限制,將所有數(shù)據(jù)存儲(chǔ)在一個(gè)數(shù)據(jù)庫(kù)服務(wù)器上幾乎是不可能的。為了解決這些問(wèn)題,最合理的方法是將數(shù)據(jù)集劃分為較小的數(shù)據(jù)集。

想象一下,我們將整個(gè)數(shù)據(jù)集(100萬(wàn)行)劃分為10個(gè)較小的子集(每個(gè)子集有10萬(wàn)行)。這個(gè)將數(shù)據(jù)集水平(或沿著行)劃分的過(guò)程被稱為對(duì)數(shù)據(jù)集進(jìn)行分片。

除了提高性能外,分片數(shù)據(jù)集的另一個(gè)非常重要的好處是將這些數(shù)據(jù)分片存儲(chǔ)在較小且更便宜的數(shù)據(jù)庫(kù)服務(wù)器上,而不是將整個(gè)百萬(wàn)行存儲(chǔ)在一個(gè)龐大且非常昂貴的數(shù)據(jù)庫(kù)服務(wù)器上。

一致性哈希

一致性哈希是一種將龐大的數(shù)據(jù)集(例如100萬(wàn)行)分割成多個(gè)較小的數(shù)據(jù)子集(存儲(chǔ)在一組數(shù)據(jù)庫(kù)服務(wù)器上)的技術(shù),以確保在集群中的服務(wù)器數(shù)量發(fā)生變化(即添加或刪除服務(wù)器)時(shí),數(shù)據(jù)的遷移量最小。在大規(guī)模分布式系統(tǒng)設(shè)計(jì)中,這非常重要,因?yàn)榉?wù)器故障在數(shù)據(jù)中心中相當(dāng)常見(jiàn)。

對(duì)于一致性哈希,我們選擇兩個(gè)值M和N,即哈希鍵空間(根據(jù)應(yīng)用程序需求選擇的M)和數(shù)據(jù)庫(kù)服務(wù)器數(shù)量(用N表示)。通常情況下,M >> N。

算法本身是一個(gè)簡(jiǎn)單的三步過(guò)程。

創(chuàng)建一個(gè)循環(huán)數(shù)字線(從0到M-1)。 對(duì)數(shù)據(jù)庫(kù)服務(wù)器ID進(jìn)行哈希運(yùn)算,對(duì)M取模,并在循環(huán)數(shù)字線上分配一個(gè)位置。 對(duì)每個(gè)數(shù)據(jù)行進(jìn)行哈希(基于其唯一鍵),對(duì)M取模,并在循環(huán)數(shù)字線上找到其位置。順時(shí)針?lè)较蛞苿?dòng),直到找到第一個(gè)數(shù)據(jù)庫(kù)服務(wù)器。將這些數(shù)據(jù)存儲(chǔ)在該服務(wù)器上。

好了..那么它們之間有什么真正的區(qū)別嗎? 盡管分片和一致性哈??雌饋?lái)都可以將巨大的數(shù)據(jù)集分割成較小的數(shù)據(jù)集,但它們之間存在微妙的區(qū)別。分片是所有水平數(shù)據(jù)分區(qū)方案的統(tǒng)稱。從本質(zhì)上講,分片只是將數(shù)據(jù)集沿著行進(jìn)行劃分的一個(gè)花哨的名字。

如果你覺(jué)得水平分割(或分片)數(shù)據(jù)集可能有許多不同的方式,那么你是對(duì)的。在許多不同的分片數(shù)據(jù)集的方式/算法中,一致性哈希是最高效的算法之一。所以,這是一個(gè)相當(dāng)簡(jiǎn)單但微妙的區(qū)別。分片是一個(gè)通用術(shù)語(yǔ),而一致性哈希是一種特定類型的算法,用于實(shí)現(xiàn)數(shù)據(jù)分片。

責(zé)任編輯:姜華 來(lái)源: 今日頭條
相關(guān)推薦

2023-12-27 14:23:10

微服務(wù)數(shù)據(jù)存儲(chǔ)

2021-02-05 08:00:48

哈希算法?機(jī)器

2021-02-02 12:40:50

哈希算法數(shù)據(jù)

2023-12-09 14:30:29

哈希數(shù)據(jù)分片

2021-09-15 07:46:42

哈希一致性哈希算法

2020-07-20 08:30:37

算法哈希分布式系統(tǒng)

2016-12-19 18:41:09

哈希算法Java數(shù)據(jù)

2021-07-27 08:57:10

算法一致性哈希哈希算法

2023-06-26 07:17:48

負(fù)載均衡策略Dubbo

2017-07-25 14:38:56

數(shù)據(jù)庫(kù)一致性非鎖定讀一致性鎖定讀

2024-08-05 09:42:05

2022-01-27 08:31:20

一致性哈希

2023-12-20 08:11:02

Redis節(jié)點(diǎn)通信

2022-12-14 08:23:30

2019-11-01 09:13:37

算法哈希緩存

2021-11-12 08:38:26

一致性哈希算法數(shù)據(jù)結(jié)構(gòu)

2023-12-12 08:00:50

節(jié)點(diǎn)哈希算法

2018-07-05 09:41:08

一致性哈希算法

2023-12-05 14:44:01

2023-06-02 07:45:39

點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)