資料庫學習筆記:第九章 儲存資料:磁碟和檔案

來源:互聯網
上載者:User

標籤:

第九章

資料以磁碟塊為單位儲存在磁碟上。塊分佈於一張或多張碟片的同心環形磁軌上。磁軌可以在碟片的單面或雙面上錄製。

同一直徑的所有磁軌的集合稱為柱面。

磁碟塊的大小在磁碟初始化時可以被設定成扇區大小的倍數。

每一個記錄的表面都有一個磁碟頭陣列。讀寫一塊時,磁頭必須定位在塊頭位置。

不能並行讀寫的主要原因是很難保證所有磁頭被精確定位在相應的磁軌上。

磁碟控制卡是磁碟機與電腦的介面。

當資料被寫到扇區時,需要計算校正和並儲存在扇區上,當扇區上的資料被獨處時,需要再次校正和。

尋道時間是用於移動磁頭到達所需塊所在的磁軌的時間,旋轉延遲是所需塊旋轉到磁頭下的等待時間,它的平均時間是旋轉半圈需要的時間,它通常小於尋道時間。傳輸時間是當磁頭定位後實際讀或寫磁碟塊的時間,,即磁碟旋轉經過資料區塊的時間。

RPM =revolutions per minute 每分鐘多少轉

磁碟和主存之間資料轉送的單位是塊,如果只需要塊上的某一項,也需要傳輸整個塊。

磁碟陣列是把幾個磁碟組織在一起的一種形式,以提高效能和改善儲存系統的可靠性。

冗餘用於改善可靠性,即可靠性是通過增加冗餘資訊而不是通過儲存資料的簡單拷貝來改善的。

資料劃分用於提高效能,它把資料分布在多個磁碟上。

實現資料劃分和冗餘相結合的磁碟陣列稱為獨立磁碟容錯陣列,簡稱RAID

在資料劃分中,資料被分成相等大小的段,並分布到多個磁碟上。段的大小被稱為劃分單位。資料區段通常使用迴圈演算法分布,如果磁碟陣列有D個磁碟,那麼資料區段i被寫在i mod D磁碟上。

對於劃分單位為1位元位的磁碟陣列來說,每個單位時間裡陣列能處理請求的數量以及每個單個請求的平均回應時間與單個磁碟相似。

多數磁碟陣列都儲存校正資訊,在校正模式中,額外一個校正磁碟用於存放可以恢複陣列中任意一個磁碟故障的校正資訊。

在RAID系統中,磁碟陣列被劃分為不同的可靠組,可靠組由一組資料盤和校正盤組成。

磁碟空間管理支援作為資料單元的頁的概念,並且提供分配和回收頁及讀/寫頁的命令:

磁碟空間管理器隱藏了底層硬體(和作業系統)的希捷,並允許高層軟體把資料堪稱是頁的集合。

跟蹤磁碟利用情況的一個方法是維護一個空閑塊的列表,,當塊被回收時,把它們放進空閑列表,以備將來使用。第二個方法是維護一個位元影像,其中的每一位對應一個磁碟塊。

資料庫磁碟空間管理器可以建立在OS檔案之上。

 

用於確定哪些頁被替換掉的策略稱為替換策略replacement policy。

緩衝區管理器是負責在必要時把頁面從磁碟取到主存的軟體層,它通過把緩衝區劃分為頁集來管理可獲得的主存,這些頁集通常稱為緩衝池。緩衝池中的主存頁稱為幀,即存放頁的槽。

 

除了緩衝池本身,緩衝區管理器還維護一些薄記資訊和描述幀的兩個變數: pin_count和dirty。pin_count記錄存放在某個幀中的當前頁已經被請求但還未釋放的次數,即該頁的目前使用者數。布爾變數ditry表示頁從磁碟讀入緩衝池後是否已經被修改。

開始時,每個幀的pin_count為0,dirty為假,當頁被請求時,緩衝區做如下工作:

(1)檢查緩衝池是否包含被請求的頁,如果緩衝池中有該頁,則將該頁的pin_count值增加,如果緩衝池中沒有該頁,緩衝區管理器將按如下步驟把缺頁讀入緩衝池中:

(a)     根據替換策略選擇替換幀,並增加它的pin_count。

(b)     如果替換幀的dirty為真,把該幀存放的頁寫回磁碟。

(c)     把請求的頁讀入替換幀。

(2)把替換幀的地址返回給申請者。

緩衝區替換策略:

最近最少使用原則LRU(least recently used),它通過在緩衝區中管理一個指向pin-count為0的幀的指標隊列來實現。當一個幀成為替換候選(pin-count為0)時,它被排入佇列尾,替換時總是選擇隊列頭的幀。

時鐘:LRU的變體,使用current變數以環形順序選擇替換幀,為了近似LRU行為,每一個幀也有一個相關的referenced位,它在頁的pin-count變為0時開始啟動。

替換時選擇current指向的幀,如果幀沒有選擇被替換,current將增加,而考慮下一個幀。如果current指向的幀的pin-count大於0,則它不能成為替換候選索引鍵,current增加計數。如果current指向的幀的referenced位已啟動,時鐘演算法將關閉它並且增加current,這種方法使得一個最近引用頁將不可能被替代。如果current幀的pin-count為0,並且 它的referenced位關閉,則其中的頁將被替換。

9.5記錄檔案

頁的鏈表:一種方法是把堆檔案維護為頁的雙向鏈表。DBMS通過一個存於磁碟已知位置由<堆檔案名稱, 首頁地址>對構成的表來記錄檔案第一頁的位置。檔案的第一頁稱為首頁。

 

缺點:當記錄是變長記錄時,檔案中的所有頁事實上都將存在於空閑空間鏈表上,因為每一頁都可能至少有一些空閑位元組。

頁目錄(page directory):構建頁鏈表的另一種方法是

目錄本身是一組頁的集合,一個目錄頁可以有多個目錄項,每一個目錄項都指向堆檔案的一頁。

一個堆檔案允許我們去遍曆所有的記錄:1.通過具體的rid,  2 通過順序地瀏覽所有的記錄

 

頁格式:定長記錄  變長記錄

資料庫學習筆記:第九章 儲存資料:磁碟和檔案

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.