這期內(nèi)容當(dāng)中小編將會(huì)給大家?guī)碛嘘P(guān)SQLite Database System Design and Implemention Pager Module的概述是什么,文章內(nèi)容豐富且以專業(yè)的角度為大家分析和敘述,閱讀完這篇文章希望大家可以有所收獲。
成都創(chuàng)新互聯(lián)是一家專注于成都網(wǎng)站建設(shè)、網(wǎng)站設(shè)計(jì)與策劃設(shè)計(jì),磁縣網(wǎng)站建設(shè)哪家好?成都創(chuàng)新互聯(lián)做網(wǎng)站,專注于網(wǎng)站建設(shè)十年,網(wǎng)設(shè)計(jì)領(lǐng)域的專業(yè)建站公司;建站業(yè)務(wù)涵蓋:磁縣等地區(qū)。磁縣做網(wǎng)站價(jià)格咨詢:028-86922220
通過閱讀本節(jié),你應(yīng)當(dāng)能夠解釋解釋以下問題:
1.page cache是什么?為什么需要它?誰在使用它?
2.一般的緩存管理技術(shù)
3.SQLite采用的事務(wù)處理過程以及回滾過程
本章討論了pager模塊,該模塊在原生的字節(jié)文件上實(shí)現(xiàn)了抽象的數(shù)據(jù)庫(kù)頁文件系統(tǒng),扮演著 固定大小的數(shù)據(jù)頁面的管理者,定義了從數(shù)據(jù)庫(kù)文件中獲取
這些頁面的接口。它通過提供對(duì)數(shù)據(jù)文件的內(nèi)存層面上的緩存來幫助Tree模塊加速獲取數(shù)據(jù)庫(kù)頁面,也就是說它管理著頁面緩存。它還是事務(wù)管理器,該事務(wù)實(shí)現(xiàn)了ACID特性通過并發(fā)訪問控制和失敗回滾的處理。
它使并發(fā)控制和回滾操作對(duì)Tree和其他更高的模塊完全透明。它仍舊扮演者鎖和日志管理者的角色。事實(shí)上,pager模塊實(shí)現(xiàn)了一般數(shù)據(jù)庫(kù)管理系統(tǒng)中的持久性。
除了內(nèi)存數(shù)據(jù)庫(kù)之外,數(shù)據(jù)庫(kù)都位于外部存儲(chǔ)器比如磁盤,用原始的文件存儲(chǔ)著。
SQLite不能高效的獲取以及控制數(shù)據(jù)在磁盤上。
當(dāng)SQLite需要數(shù)據(jù)的時(shí)候,它從數(shù)據(jù)庫(kù)文件中將其讀取到主存中,在內(nèi)存中控制該數(shù)據(jù),并且在有需要的時(shí)候,將該數(shù)據(jù)寫回到數(shù)據(jù)庫(kù)文件中。
一般來說,數(shù)據(jù)庫(kù)文件的總的大小比可用的內(nèi)存大小大得多。由于有限大小的的主存,僅僅一部分內(nèi)存預(yù)留給數(shù)據(jù)庫(kù)文件,這個(gè)比例對(duì)整個(gè)數(shù)據(jù)庫(kù)文件來講,很小,并且這個(gè)預(yù)留的內(nèi)存空間通常叫做數(shù)據(jù)庫(kù)緩存或者數(shù)據(jù)緩沖區(qū);在SQLite的術(shù)語中,它被稱作page cache.這個(gè)緩存位于應(yīng)用處理的地址空間,不是位于操作系統(tǒng)的空間。操作系統(tǒng)擁有自己的數(shù)據(jù)緩存。
在SQLite當(dāng)中page緩存管理器被叫做pager。
該模塊面向的是下層的以字節(jié)為單位的普通的原生文件,并且轉(zhuǎn)換他們成為可以隨機(jī)訪問的高層面上的以page為單位的文件,這些page都是固定大小的對(duì)象,都是從原生的文件系統(tǒng)中讀出。
不同層次的文件可以有不同page大小。
pager為讀取這些數(shù)據(jù)庫(kù)文件定義了獨(dú)立于文件系統(tǒng)的可以方便使用的接口。
tree模塊直接位于pager模塊的上層,從始至終都在使用pager模塊提供的接口訪問數(shù)據(jù)庫(kù),從不直接訪問任何數(shù)據(jù)庫(kù)文件或者日志文件。tree模塊面對(duì)的數(shù)據(jù)庫(kù)文件就像一個(gè)統(tǒng)一大小的page組成的邏輯數(shù)組一樣,并且訪問這些page通過他們的下標(biāo)。
SQLite中美國(guó)也你打開的數(shù)據(jù)庫(kù)文件也可以說是數(shù)據(jù)庫(kù)鏈接都維護(hù)著一個(gè)獨(dú)立的page緩存。
當(dāng)一個(gè)應(yīng)用程序打開一個(gè)數(shù)據(jù)庫(kù)文件的時(shí)候,pager模塊就會(huì)為這個(gè)文件創(chuàng)建并且初始化一個(gè)新的page緩存
如果該程序打開相同的數(shù)據(jù)庫(kù)文件兩次或者更多的次數(shù),在默認(rèn)的處理模式中,pager創(chuàng)建并且初始化同樣多的獨(dú)立的page 緩存為這個(gè)數(shù)據(jù)庫(kù)文件。
SQLite支持一個(gè)高級(jí)特性,該特性支持所有打開同一個(gè)數(shù)據(jù)庫(kù)的鏈接共享同樣的page 緩存,該文件可能被相同的或者不同的數(shù)據(jù)庫(kù)鏈接打開了多次。
在內(nèi)存型數(shù)據(jù)庫(kù)中,沒有任何數(shù)據(jù)指向外部存儲(chǔ)區(qū),但是,他們也是同樣的通過pager來處理和保存數(shù)據(jù)。因此,tree 模塊使用同樣的接口來獲取不同類型的數(shù)據(jù)庫(kù)。
pager 是SQLite中層次最低的模塊。它是唯一的通過原生的操作系統(tǒng)提供的IO 接口訪問原生數(shù)據(jù)文件和日志文件的模塊。
他直接讀取和寫數(shù)據(jù)庫(kù)文件以及日志文件。
他不理解數(shù)據(jù)是如何在數(shù)據(jù)庫(kù)中組織存放的。他也不與數(shù)據(jù)庫(kù)中的內(nèi)容進(jìn)行交互,不會(huì)自己對(duì)數(shù)據(jù)內(nèi)容進(jìn)行修改。
他僅僅保證無論什么信息在數(shù)據(jù)庫(kù)文件中存儲(chǔ)著,都能重復(fù)的獲取不用任何轉(zhuǎn)換。
在某種意義上,pager是一個(gè)被動(dòng)的實(shí)體。
雖然它可能會(huì)修改數(shù)據(jù)庫(kù)文件的一些頭信息,比如文件的變化次數(shù)。
他將對(duì)數(shù)據(jù)庫(kù)文件的操作工作從一般的隨機(jī)訪問的字節(jié)形式的文件系統(tǒng),抽象成一個(gè)隨機(jī)訪問的頁面系統(tǒng)。
他定義了一套易于使用,獨(dú)立于文件系統(tǒng)接口的可以隨機(jī)訪問數(shù)據(jù)庫(kù)文件頁面的接口。
對(duì)每個(gè)數(shù)據(jù)庫(kù)文件來說,在數(shù)據(jù)庫(kù)文件與內(nèi)存之間移動(dòng)page是pager作為緩存管理器的基礎(chǔ)功能。
這個(gè)頁面移動(dòng)是透明的對(duì)于tree和更高層面的模塊。
pager是一個(gè)原生文件系統(tǒng)和高層次模塊之間的媒介。
他的主要目的就是使數(shù)據(jù)庫(kù)頁面在內(nèi)存中是可以尋址的,從而使這些模塊能直接訪問內(nèi)存中的頁面內(nèi)容。
他還定位了寫頁面回?cái)?shù)據(jù)庫(kù)文件的位置。
他創(chuàng)造了一個(gè)抽象的概念,數(shù)據(jù)庫(kù)文件是以數(shù)組形式的頁面存放于內(nèi)存中的,tree和pager兩個(gè)模塊通過定義良好的頁面訪問協(xié)議一起工作。
除了緩存管理工作,pager還承擔(dān)了很多其他很多的一個(gè)典型數(shù)據(jù)庫(kù)管理系統(tǒng)應(yīng)該具有的功能。
他提供了典型的事務(wù)處理系統(tǒng)的核心服務(wù):事務(wù)管理,數(shù)據(jù)管理,日志管理和鎖管理
作為一個(gè)事務(wù)管理器,他實(shí)現(xiàn)了事務(wù)的ACID特性通過管理并發(fā)空調(diào)制和回滾操作。
他并且負(fù)責(zé)了原子性的提交和事務(wù)回滾。
作為一個(gè)數(shù)據(jù)管理器,他定位讀和寫數(shù)據(jù)庫(kù)文件通過內(nèi)存中的緩存頁面,并且負(fù)責(zé)文件空間管理工作。
作為一個(gè)日志管理器,他實(shí)現(xiàn)了往日志文件中寫日志記錄。
作為一個(gè)鎖管理器,他保證了事務(wù)在獲取一個(gè)數(shù)據(jù)庫(kù)頁面之前,已經(jīng)擁有了數(shù)據(jù)庫(kù)文件上的合適的鎖。
在本質(zhì)上說,pager模塊實(shí)現(xiàn)了存儲(chǔ)的持久性和事務(wù)的原子性。
上述就是小編為大家分享的SQLite Database System Design and Implemention Pager Module的概述是什么了,如果剛好有類似的疑惑,不妨參照上述分析進(jìn)行理解。如果想知道更多相關(guān)知識(shí),歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道。
網(wǎng)頁名稱:SQLiteDatabaseSystemDesignandImplementionPagerModule的概述是什么
當(dāng)前鏈接:http://jinyejixie.com/article2/pggooc.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供企業(yè)建站、網(wǎng)站收錄、微信小程序、靜態(tài)網(wǎng)站、定制網(wǎng)站、Google
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)