資料庫SQL(十) 水平擴充套件及資料一致性

2021-10-07 21:11:53 字數 1506 閱讀 3029

二、計算平台分類

三、集群

四、 i/o並行

五、分片

六、複製

七、資料分布傾斜(data-distribution skew)

八、 虛擬結點分割槽

九、一致性hash

資料庫讀寫速度受單機硬體的影響,硬碟的效能時影響讀寫的重要因素。

flynn於 2023年提出了基於分而治之的思想的計算平台的flynn分類法,主要根據資料流來分類,共分為四種型別的計算平台。

以下內容即為水平擴充套件的方法。

水平的將大的資料集劃分為較小的,易於管理的資料集的過程,資料切成碎片。

多個結點上儲存資料集的多個拷貝,稱作副本。

相同的資料在不同的結點上存在多個副本,提供了可伸縮性,可用性和容錯性

複製實現方法

核心思想:假設虛擬節點的數量是實際節點倍數

2023年由mit的karger等人在解決分布式cache中提出。

場景: 假設有n個cache, 如何將資料物件對映到n個cache?

-> hash (object) % n

如果cache m壞了,則所有對映到cachem的物件會失效

-> hash (object) % (n-1)

如果訪問負載增加,需要新增cache

->hash (object) % (n+1)

如果硬體能力增強,希望增加的節點承擔更多的負載,普通hash演算法難以實現

環形空間:共有2^32個bucket空間,首尾相接形成環

資料對映到環形hash空間

使用相同的hash函式將結點(cache/server)對映到hash空間,通常用結點的ip

將資料對映到結點

沿順時針方向,根據資料物件的key,遇到第乙個cache/server就將資料存入其中。

如果某節點server宕機

按順時針遷移的規則,opject2遷移至object3,其他不變

如果增加新伺服器

按順時針遷移規則,object4被遷移到server4中,其他不變。

節點分布不均勻,出現skew問題

設虛擬節點個數為4

server11, server12, server31, server32資料物件object到虛擬節點的對應關係object1→server12;

object2 > server32

object3 >server31

object4 > server11

虛擬節點的hash計算採用對應節點的ip位址;數字字尾的方式

➢例如,server1 的ip位址為202.168.110.241

hash (「202.168.110.241#1" ),

hash (「202.168.110.241#2」 )

資料庫 sql及ddl dcl dml

1 sql及ddl語句操作 url 2 ddl dml dcl語句 url 3 sql語句中的ddl dml dcl的介紹 url 4 dql dml ddl dcl的概念與區別 url 5 sql事務 隔離級別 阻塞 死鎖 url url 6 鎖表與解鎖 檢視mysql鎖表語句 url oracl...

資料庫及SQL語法

常見資料庫 1 oracle database 甲骨文公司 2 sqlserver 微軟 3 db2 ibm公司 4 postgresql 開源 5 mysql 開源 滲透測試常用函式 gpoup concat col 返回由屬於一組的列值連線而成的結果 ascii char 返回字元的ascll碼...

PHP資料庫擴充套件mysql mysqli及pdo

mysql conn mysql connect localhost root ordie mysql connect error mysql select db test conn res mysql query select from user var dump res mysqli mysql...