成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

別B+樹了,out了

開發 前端
相比于 B+Tree,Blink Tree的兄弟節點也進行了指針相連,當分裂在進行中還未完成,也就是父節點到新的子節點的鏈接還沒有建立時,B+Tree 我們已經演示過了,并發讀可能導致數據查詢不到。

本文轉載自微信公眾號「  yes的練級攻略」,作者 是Yes呀。轉載本文請聯系 yes的練級攻略公眾號。

你好,我是yes。

最近了解了下 PolarDB MySQL,后續有機會分享下學習心得。

今天這篇先聊聊其內部引入 Blink Tree 來替換 B+Tree 的事情。

想必大伙都非常熟悉 B+Tree,面試常客,但是 Blink Tree 確實很少有人提到,它是 B+Tree 的升級版,據阿里云文檔所述,通過對 B+Tree 的優化,可以將交易場景下 PolarDB 的讀寫性能提升20%。

B+Tree 的問題

那么 B+Tree 哪塊表現的不好呢?

主要是并發場景下,寫操作導致節點分裂(SMO,Split Merge Operation)的時候,剛好有并發讀操作訪問到錯誤的葉子節點,查錯了節點,那么目標值肯定就搜索不到了,于是導致了錯誤查詢。

舉個例子,比如現有如下的一個 B+Tree:

圖片圖片

此時,插入一個數據 27,恰好頁A滿了,需要觸發分裂,新增一個頁B,且同時有個讀取請求,想要訪問數據 29。

圖片圖片

那么很有可能在分裂的時候,讀請求訪問到老的頁面指針,指向了頁 A,而頁 A 內的 29 已經被分裂到新的頁 B 中,這樣一來讀請求就發現沒有 29 ,于是返回沒數據,這就錯亂了。

而且,葉子節點的分裂,可能會導致父節點的分裂,這種調整最長可能級聯到根節點,并發場景下很容易導致錯誤,為了避免這種情況的發生,最簡單的操作就是在發生節點分裂時,把整顆 B+Tree 都鎖了。

這樣一來數據的正確性得到了保證,但是性能就很低了,因為全局鎖會影響了對所有頁的訪問。

后續 MySQL 對其在 5.7 版本后做了優化,但是整個 B+Tree 同時只能支持一個 SMO 操作的發生,高并發時大數據量插入導致多 SMO 的發生還是會被阻塞,影響性能。

Blink Tree

Blink Tree 主要引入了 high key 和 link 指針來解決并發讀寫中間態數據訪問出錯問題,能降低鎖的粒度,提高性能。

high key 存儲了每個節點的最大值,每個節點的 link 指針則指向了同層右側的兄弟節點,在寫入數據的時候,僅需對當前節點加鎖,當前節點修改完畢后立馬解鎖,鎖的粒度很細,并發度很高。

那具體是如何解決并發時候 SMO 中間態問題的呢?

我們直接來看來阿里云官網給的一個示意圖:

圖片圖片

可以看到,相比于 B+Tree,Blink Tree的兄弟節點也進行了指針相連,當分裂在進行中還未完成,也就是父節點到新的子節點的鏈接還沒有建立時,B+Tree 我們已經演示過了,并發讀可能導致數據查詢不到。

而 Blink Tree 就能解決這個問題,當讀請求沿著老指針訪問老頁面的時候,對比下 high key,發現查詢的值比當前頁 high key 大,那么就沿著 link 指針找到旁邊新分配的頁面,此時就可以找到要查詢的值了。

最后

這篇就簡單介紹到這,對我們正常業務開發同學來說 Blink Tree 的理解到這也就差不多了,有興趣的可以再看看 Blink Tree 的論文

還有這篇文章

責任編輯:武曉燕 來源: yes的練級攻略
相關推薦

2020-03-30 17:20:54

B+樹SQL索引

2020-09-08 06:43:53

B+樹面試索引

2020-04-01 18:08:57

MySQL B-樹B+樹

2019-08-29 10:46:22

MySQL索引數據庫

2021-09-30 06:13:36

打印日志error

2019-01-29 19:43:10

MySQL索引數據庫

2021-02-16 16:38:41

MySQLB+樹索引

2019-09-24 09:33:53

MySQLB+樹InnoDB

2023-08-29 08:31:13

B+樹數據索引

2022-03-28 08:24:52

MySQL聚簇索引非聚簇索引

2021-12-14 17:19:15

存儲數據

2021-05-19 09:51:31

MySQL-B+樹數據

2024-05-22 09:01:53

InnoDBB+索引

2021-04-19 10:03:33

MongoDbB 樹 B+ 樹

2019-11-13 10:02:38

B樹MySQL索引

2009-07-21 14:29:18

職場逆商

2019-01-21 09:19:05

5G

2020-02-12 19:01:22

索引B-樹B+樹

2019-09-19 14:03:32

B樹節點數據結構

2015-11-16 10:29:00

點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 欧美激情一区二区 | 日韩视频在线一区 | 欧美日韩大片 | 精品福利在线 | 99国产精品99久久久久久 | 国产成年人视频 | 天天色官网 | 欧美在线亚洲 | 国产乱码精品一区二区三区忘忧草 | 日韩在线视频免费观看 | 99国内精品久久久久久久 | 一级在线观看 | 亚洲精品国产成人 | 国产在线永久免费 | 精品国产乱码久久久久久蜜退臀 | 国产乱码精品一区二区三区中文 | 精品成人一区二区 | 综合久久久 | 久久国产精品视频免费看 | 国产农村妇女精品一二区 | 国产性网 | 日韩久久成人 | 爱爱视频在线观看 | 成人啊啊啊| 日韩欧美高清 | 中文字幕在线一区 | 夜夜久久 | 欧美成人一区二区三区 | 久操亚洲 | 四虎影院免费在线播放 | 免费看一级毛片 | 在线观看国产视频 | 水蜜桃亚洲一二三四在线 | 在线成人av | 一区二区三区日韩 | 大久| 久草视频观看 | 久久久久久久久久久久亚洲 | 精品久久久久久18免费网站 | 在线看91 | 中文无码日韩欧 |