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會員
10內容數
分享感情與生活的故事,期望我們都能在愛與被愛的路上感到幸福,並且在這個只有活一次的人生裡好好的活成自己喜歡的樣子
留言0
查看全部
發表第一個留言支持創作者!
JHIHLEI LIN的沙龍 的其他內容
我對於自己開發的API會習慣性寫一份swagger文件方便前端串接,但因為這些文件都是存在我個人的swagger帳號,且會受限於免費版限制,再加上剛好跟PM在討論如何維護我們的文件,於是我就開始著手將swagger自己部署到公司管理後台。 這樣做的好處: (1)後端都可以編輯 (2)文件隸屬於
我對於自己開發的API會習慣性寫一份swagger文件方便前端串接,但因為這些文件都是存在我個人的swagger帳號,且會受限於免費版限制,再加上剛好跟PM在討論如何維護我們的文件,於是我就開始著手將swagger自己部署到公司管理後台。 這樣做的好處: (1)後端都可以編輯 (2)文件隸屬於
你可能也想看
Google News 追蹤
Thumbnail
這個秋,Chill 嗨嗨!穿搭美美去賞楓,裝備款款去露營⋯⋯你的秋天怎麼過?秋日 To Do List 等你分享! 秋季全站徵文,我們準備了五個創作主題,參賽還有機會獲得「火烤兩用鍋」,一起來看看如何參加吧~
Thumbnail
11/20日NVDA即將公布最新一期的財報, 今天Sell Side的分析師, 開始調高目標價, 市場的股價也開始反應, 未來一週NVDA將重新回到美股市場的焦點, 今天我們要分析NVDA Sell Side怎麼看待這次NVDA的財報預測, 以及實際上Buy Side的倉位及操作, 從
Thumbnail
Hi 大家好,我是Ethan😊 相近大家都知道保濕是皮膚保養中最基本,也是最重要的一步。無論是在畫室裡長時間對著畫布,還是在旅途中面對各種氣候變化,保持皮膚的水分平衡對我來說至關重要。保濕化妝水不僅能迅速為皮膚補水,還能提升後續保養品的吸收效率。 曾經,我的保養程序簡單到只包括清潔和隨意上乳液
Thumbnail
space x - 爱的函数「情愿成为爱里的赌徒,我知道或许也会输。 」歌曲分享 https://www.youtube.com/watch?v=nyfxMzE5my8
Thumbnail
SpaceX的資深經理堤斯在網路直播中表示:「今天是可以載入工程史冊的一天。」 特斯拉執行長伊隆·馬斯克領導的SpaceX於周日(13日)在德州成功進行「星艦」(Starship)太空船的第五次試射,並首次使用巨型機械手臂成功抓住火箭推進器,將其順利回收到發射台。
Thumbnail
2014年,SpaceX私人助理Mary Beth Brown被解僱,這起事件引發了爭議。Brown與Elon Musk一同奮鬥12年,卻因要求加薪而失去工作。Musk要求她休兩周假期,以示公司無她可否運作。這起事件提醒職場人士要提升自己的不可替代性。
Thumbnail
常在用一些軟體轉移系統區到新的SSD後,在DiskGenius裡面會顯示ESP(損壞),但系統又能正常開機,網路上找到可以修復的方式來紀錄一下。 要準備的軟體是DiskGenius,這裡是5.5.1.1508 最新版; 以及Dism++10.1.1002.1B,兩者都建議別用太舊版本。 首先打
Thumbnail
要談論DBMS,除了SQL語法之外,我們還必須了解底層是怎麼處理資料儲存的,也就是DBMS架構的底層Disk Space Management: Disk Space Management 提供API來讀/寫資料到硬碟,資料會以Page為傳輸單位,為什麼會一次要等到這麼大才寫入硬碟或一次要讀這麼
Thumbnail
SpaceX 是提到太空產業,多數人會想到的玩家之一。不僅是它是馬斯克的公司,而他們重新想像火箭的未來,也實際打造了能夠重複使用的火箭,更讓火箭可以飛回來。 在這資本密集的太空產業中,SpaceX 有哪些創新、獨特的競爭優勢?目前 SpaceX 在太空產業中面臨哪些競爭者,以及他們有機會挑戰 Sp
Thumbnail
隨著串流媒體的興起,不少人都選擇轉向網路平台,來收聽自己喜愛的內容,然而那些隨時代封存的實體專輯,又有什麼機會,能再次被拿起欣賞呢?
Thumbnail
作者:陳瀚森 Marcus 世事如棋,人生如局。人生每一個決策就是一場博弈。唯有在牌桌上看清自己的籌碼,認清各種風險的樣態,衡量自己的資產和成本,才能讓自己的勇敢不是有勇無謀。
Thumbnail
作者:陳華夫 SpaceX公司發展了有史以來最大、最強,也是第一個完全可重複使用的SpaceX星艦飛船,高度為 119 米,起飛重量為 5,000公噸。是迄今最大能重複使用的運載火箭,SpaceX公司是全球航天發射行業的龍頭。
Thumbnail
這個秋,Chill 嗨嗨!穿搭美美去賞楓,裝備款款去露營⋯⋯你的秋天怎麼過?秋日 To Do List 等你分享! 秋季全站徵文,我們準備了五個創作主題,參賽還有機會獲得「火烤兩用鍋」,一起來看看如何參加吧~
Thumbnail
11/20日NVDA即將公布最新一期的財報, 今天Sell Side的分析師, 開始調高目標價, 市場的股價也開始反應, 未來一週NVDA將重新回到美股市場的焦點, 今天我們要分析NVDA Sell Side怎麼看待這次NVDA的財報預測, 以及實際上Buy Side的倉位及操作, 從
Thumbnail
Hi 大家好,我是Ethan😊 相近大家都知道保濕是皮膚保養中最基本,也是最重要的一步。無論是在畫室裡長時間對著畫布,還是在旅途中面對各種氣候變化,保持皮膚的水分平衡對我來說至關重要。保濕化妝水不僅能迅速為皮膚補水,還能提升後續保養品的吸收效率。 曾經,我的保養程序簡單到只包括清潔和隨意上乳液
Thumbnail
space x - 爱的函数「情愿成为爱里的赌徒,我知道或许也会输。 」歌曲分享 https://www.youtube.com/watch?v=nyfxMzE5my8
Thumbnail
SpaceX的資深經理堤斯在網路直播中表示:「今天是可以載入工程史冊的一天。」 特斯拉執行長伊隆·馬斯克領導的SpaceX於周日(13日)在德州成功進行「星艦」(Starship)太空船的第五次試射,並首次使用巨型機械手臂成功抓住火箭推進器,將其順利回收到發射台。
Thumbnail
2014年,SpaceX私人助理Mary Beth Brown被解僱,這起事件引發了爭議。Brown與Elon Musk一同奮鬥12年,卻因要求加薪而失去工作。Musk要求她休兩周假期,以示公司無她可否運作。這起事件提醒職場人士要提升自己的不可替代性。
Thumbnail
常在用一些軟體轉移系統區到新的SSD後,在DiskGenius裡面會顯示ESP(損壞),但系統又能正常開機,網路上找到可以修復的方式來紀錄一下。 要準備的軟體是DiskGenius,這裡是5.5.1.1508 最新版; 以及Dism++10.1.1002.1B,兩者都建議別用太舊版本。 首先打
Thumbnail
要談論DBMS,除了SQL語法之外,我們還必須了解底層是怎麼處理資料儲存的,也就是DBMS架構的底層Disk Space Management: Disk Space Management 提供API來讀/寫資料到硬碟,資料會以Page為傳輸單位,為什麼會一次要等到這麼大才寫入硬碟或一次要讀這麼
Thumbnail
SpaceX 是提到太空產業,多數人會想到的玩家之一。不僅是它是馬斯克的公司,而他們重新想像火箭的未來,也實際打造了能夠重複使用的火箭,更讓火箭可以飛回來。 在這資本密集的太空產業中,SpaceX 有哪些創新、獨特的競爭優勢?目前 SpaceX 在太空產業中面臨哪些競爭者,以及他們有機會挑戰 Sp
Thumbnail
隨著串流媒體的興起,不少人都選擇轉向網路平台,來收聽自己喜愛的內容,然而那些隨時代封存的實體專輯,又有什麼機會,能再次被拿起欣賞呢?
Thumbnail
作者:陳瀚森 Marcus 世事如棋,人生如局。人生每一個決策就是一場博弈。唯有在牌桌上看清自己的籌碼,認清各種風險的樣態,衡量自己的資產和成本,才能讓自己的勇敢不是有勇無謀。
Thumbnail
作者:陳華夫 SpaceX公司發展了有史以來最大、最強,也是第一個完全可重複使用的SpaceX星艦飛船,高度為 119 米,起飛重量為 5,000公噸。是迄今最大能重複使用的運載火箭,SpaceX公司是全球航天發射行業的龍頭。