DBMS Disk Space Management

閱讀時間約 4 分鐘

要談論DBMS,除了SQL語法之外,我們還必須了解底層是怎麼處理資料儲存的,也就是DBMS架構的底層Disk Space Management:

raw-image

Disk Space Management

提供API來讀/寫資料到硬碟,資料會以Page為傳輸單位,為什麼會一次要等到這麼大才寫入硬碟或一次要讀這麼大的資料,背後是跟儲存裝置的特性有關,這邊暫不贅述。

在資料庫中,最小的單位是row,aka一筆資料。而在Disk中,最小單位則是page(1 page read from disk or 1 page write to disk),而所謂的block會比page大,因為block在SSD當中會含有多個page。

Disk Space Management會背後是由操作系統和文件系統來處理的,它會負責在硬碟上分配一個大而連續的空閑的文件用來存資料,每一份文件(file)裡都會有很多的page(根據設定的固定page大小來決定有幾頁),DBMS這些檔案可能會分散在不同的機器/硬碟上。

raw-image

宏觀來看,Page File裡面長怎樣:

raw-image

這樣可以方便在新增資料的時候能快速找到要插入的頁面中的位置是哪裡,而不用一個一個page找每頁的閒置空間夠不夠放這筆資料。

I/O成本從n個page降到4個I/O(1.讀header page2.讀資料 3.寫資料到page 4.更新header page)。

Page Layout(通常4KB, postgresql為8KB,要看你資料庫的預設值為何):

宏觀來看,一個page中會存多個row的資料,而每一個row有多個欄位,每個欄位的長度雖會不同,但又可分為可變/不可變的而有不同page layout。

Fixed Length Records 固定長度

每個page都有一個header,裡面維護一個bitmap,每一個slot會指向record的位置,因為size固定,所以我們可以很簡單的直接藉由數學計算而得每一個slot的起始位置在哪,接著只需要維護每個slot是有值還是沒值:

raw-image

Variable Length Records 可變長度

因為每一個紀錄的長度大小不同,不可直接預先知道每一個slot指向的位置為何,我們會用另外一種做法。

維護一個page footer,此時會多兩個特別的slot,最後一個slot代表這個頁面有的slot數(包含空的),倒數第二個則指向閒置空間的位置,其餘的slot會記錄兩件事:指向有紀錄的record以及record的大小 [record pointer, record length]。

raw-image

要刪除record會根據是要緊湊還是不緊湊而有所不同,如果是非緊湊的(unpacked)只要簡單的將poiner取消掉並且把紀錄長度設為null即可。之後會交由作業系統決定何時要GC。

緊湊的話,則需要將刪除的紀錄真正從page中移除,這意味著可能要更新到其餘record的位置(往前挪一格,slot也要移,這個移動不會跨頁,只會管同一個page的情況)。

插入新資料也只是很簡單的插入在free space pointer指向的位置,並且在值為null的slot中寫入資料後更新slot長度跟指標位置[record pointer, record length]、free space pointer的指標位置即可。

raw-image
7886

7886

Tuple Layout

(待補)

延伸閱讀:

73.6. Database Page Layout


73.6. Database Page Layout # 73.6.1. Table Row Layout This section provides an overview of the page format used within…www.postgresql.org

https://cs186berkeley.net/notes/note3/

4會員
10Content count
分享感情與生活的故事,期望我們都能在愛與被愛的路上感到幸福,並且在這個只有活一次的人生裡好好的活成自己喜歡的樣子
留言0
查看全部
發表第一個留言支持創作者!
JHIHLEI LIN的沙龍 的其他內容
我對於自己開發的API會習慣性寫一份swagger文件方便前端串接,但因為這些文件都是存在我個人的swagger帳號,且會受限於免費版限制,再加上剛好跟PM在討論如何維護我們的文件,於是我就開始著手將swagger自己部署到公司管理後台。 這樣做的好處: (1)後端都可以編輯 (2)文件隸屬於
我對於自己開發的API會習慣性寫一份swagger文件方便前端串接,但因為這些文件都是存在我個人的swagger帳號,且會受限於免費版限制,再加上剛好跟PM在討論如何維護我們的文件,於是我就開始著手將swagger自己部署到公司管理後台。 這樣做的好處: (1)後端都可以編輯 (2)文件隸屬於
你可能也想看
Thumbnail
重點摘要: 1.9 月降息 2 碼、進一步暗示年內還有 50 bp 降息 2.SEP 上修失業率預期,但快速的降息速率將有助失業率觸頂 3.未來幾個月經濟數據將繼續轉弱,經濟復甦的時點或是 1Q25 季底附近
Thumbnail
近期的「貼文發佈流程 & 版型大更新」功能大家使用了嗎? 新版式整體視覺上「更加凸顯圖片」,為了搭配這次的更新,我們推出首次貼文策展 ❤️ 使用貼文功能並完成這次的指定任務,還有機會獲得富士即可拍,讓你的美好回憶都可以用即可拍珍藏!
Thumbnail
SpaceX 是提到太空產業,多數人會想到的玩家之一。不僅是它是馬斯克的公司,而他們重新想像火箭的未來,也實際打造了能夠重複使用的火箭,更讓火箭可以飛回來。 在這資本密集的太空產業中,SpaceX 有哪些創新、獨特的競爭優勢?目前 SpaceX 在太空產業中面臨哪些競爭者,以及他們有機會挑戰 Sp
Thumbnail
隨著串流媒體的興起,不少人都選擇轉向網路平台,來收聽自己喜愛的內容,然而那些隨時代封存的實體專輯,又有什麼機會,能再次被拿起欣賞呢?
Thumbnail
作者:陳瀚森 Marcus 世事如棋,人生如局。人生每一個決策就是一場博弈。唯有在牌桌上看清自己的籌碼,認清各種風險的樣態,衡量自己的資產和成本,才能讓自己的勇敢不是有勇無謀。
Thumbnail
作者:陳華夫 SpaceX公司發展了有史以來最大、最強,也是第一個完全可重複使用的SpaceX星艦飛船,高度為 119 米,起飛重量為 5,000公噸。是迄今最大能重複使用的運載火箭,SpaceX公司是全球航天發射行業的龍頭。
Thumbnail
主題其實清楚說明老師的中心思想:21世紀的瑜珈:不止強身健體,更要身心平衡。 以下整理一些覺得值得分享的重點。 1. 瑜伽的定義 2. 什麼是Prana能量 3. 商業跟瑜伽的拿捏 4. 三角式的順位 5. 脈輪跟冥想 1. 瑜伽的定義 有人敘述瑜伽像樹幹,各種派別像是四散的枝葉。 但如果再去探尋瑜
Thumbnail
過往顯示於「會員個人頁」的成就值全新改版為──Space V 登月勳章計畫。 Space V 登月勳章計畫的 3 個核心概念: ❶ 更多元的勳章取得管道 ❷ 更跨場域的互動搜集 ❸ $VOC 空投的權重 趕快點進來看看詳情吧!
Thumbnail
Space age 的極致,獻給仍然迷戀的偏執狂。 要說甚麼整體空間能讓店裡的太空年代家具最適得其所,絕無妥協,那絕對是芬蘭設計師Matti Suuronen在1960年代所設計出的"Futuro House"莫屬!!
Thumbnail
學生時喜歡閱讀,模仿作家洋洋灑灑寫出長篇大論。懂你說什麼的人不多,但大多數人會看完,分享同悲同喜的情緒。之後新興社群軟體盛行,生活步伐匆忙,一分一秒都顯得昂貴。大家漸漸失去了完整敘述與閱讀的耐性,從一篇文章簡短成一個段落,一行字,一個圖案。而我也不例外,每次的千言萬語刪減成一句濃縮精華,甚至靈光乍現
Thumbnail
美國東部時間5月27日的下午四點半左右(印象中是 16:33),由大家戲稱現實版鋼鐵人、Tesla汽車創始人也是 SpaceX 的創始人 Elon Mask 與美國國家航空暨太空總署 NASA 共同計劃要執行一項太空任務,任務是由 SpaceX 執行其商業火箭發射,特別之處是這是自 2011 年以來
Thumbnail
重點摘要: 1.9 月降息 2 碼、進一步暗示年內還有 50 bp 降息 2.SEP 上修失業率預期,但快速的降息速率將有助失業率觸頂 3.未來幾個月經濟數據將繼續轉弱,經濟復甦的時點或是 1Q25 季底附近
Thumbnail
近期的「貼文發佈流程 & 版型大更新」功能大家使用了嗎? 新版式整體視覺上「更加凸顯圖片」,為了搭配這次的更新,我們推出首次貼文策展 ❤️ 使用貼文功能並完成這次的指定任務,還有機會獲得富士即可拍,讓你的美好回憶都可以用即可拍珍藏!
Thumbnail
SpaceX 是提到太空產業,多數人會想到的玩家之一。不僅是它是馬斯克的公司,而他們重新想像火箭的未來,也實際打造了能夠重複使用的火箭,更讓火箭可以飛回來。 在這資本密集的太空產業中,SpaceX 有哪些創新、獨特的競爭優勢?目前 SpaceX 在太空產業中面臨哪些競爭者,以及他們有機會挑戰 Sp
Thumbnail
隨著串流媒體的興起,不少人都選擇轉向網路平台,來收聽自己喜愛的內容,然而那些隨時代封存的實體專輯,又有什麼機會,能再次被拿起欣賞呢?
Thumbnail
作者:陳瀚森 Marcus 世事如棋,人生如局。人生每一個決策就是一場博弈。唯有在牌桌上看清自己的籌碼,認清各種風險的樣態,衡量自己的資產和成本,才能讓自己的勇敢不是有勇無謀。
Thumbnail
作者:陳華夫 SpaceX公司發展了有史以來最大、最強,也是第一個完全可重複使用的SpaceX星艦飛船,高度為 119 米,起飛重量為 5,000公噸。是迄今最大能重複使用的運載火箭,SpaceX公司是全球航天發射行業的龍頭。
Thumbnail
主題其實清楚說明老師的中心思想:21世紀的瑜珈:不止強身健體,更要身心平衡。 以下整理一些覺得值得分享的重點。 1. 瑜伽的定義 2. 什麼是Prana能量 3. 商業跟瑜伽的拿捏 4. 三角式的順位 5. 脈輪跟冥想 1. 瑜伽的定義 有人敘述瑜伽像樹幹,各種派別像是四散的枝葉。 但如果再去探尋瑜
Thumbnail
過往顯示於「會員個人頁」的成就值全新改版為──Space V 登月勳章計畫。 Space V 登月勳章計畫的 3 個核心概念: ❶ 更多元的勳章取得管道 ❷ 更跨場域的互動搜集 ❸ $VOC 空投的權重 趕快點進來看看詳情吧!
Thumbnail
Space age 的極致,獻給仍然迷戀的偏執狂。 要說甚麼整體空間能讓店裡的太空年代家具最適得其所,絕無妥協,那絕對是芬蘭設計師Matti Suuronen在1960年代所設計出的"Futuro House"莫屬!!
Thumbnail
學生時喜歡閱讀,模仿作家洋洋灑灑寫出長篇大論。懂你說什麼的人不多,但大多數人會看完,分享同悲同喜的情緒。之後新興社群軟體盛行,生活步伐匆忙,一分一秒都顯得昂貴。大家漸漸失去了完整敘述與閱讀的耐性,從一篇文章簡短成一個段落,一行字,一個圖案。而我也不例外,每次的千言萬語刪減成一句濃縮精華,甚至靈光乍現
Thumbnail
美國東部時間5月27日的下午四點半左右(印象中是 16:33),由大家戲稱現實版鋼鐵人、Tesla汽車創始人也是 SpaceX 的創始人 Elon Mask 與美國國家航空暨太空總署 NASA 共同計劃要執行一項太空任務,任務是由 SpaceX 執行其商業火箭發射,特別之處是這是自 2011 年以來