麻豆精品无码国产在线播放,国产亚洲精品成人AA片新蒲金,国模无码大尺度一区二区三区,神马免费午夜福利剧场

一種針對數據庫文件的文件系統優化方法和裝置制造方法

文檔序號:6621486閱讀:151來源:國知局
一種針對數據庫文件的文件系統優化方法和裝置制造方法
【專利摘要】本發明提供了一種針對數據庫文件的文件系統優化方法和裝置,該方法包括:接收文件寫入命令;判斷文件寫入命令中的待寫入文件是否是數據庫文件;當待寫入文件是數據庫文件時,如果需要為待寫入文件分配新的存儲空間,則在所述文件系統關聯的存儲介質中查找能夠存儲待寫入文件內容的連續存儲空間塊,將查找到的連續存儲空間分配給待寫入文件,并將待寫入文件內容存儲到查找到的連續存儲空間塊中。本發明可以提高數據庫文件的處理效率。
【專利說明】一種針對數據庫文件的文件系統優化方法和裝置

【技術領域】
[0001] 本發明涉及文件系統【技術領域】,特別涉及一種針對數據庫文件的文件系統優化方 法和裝置。

【背景技術】
[0002] 文件系統對存儲介質空間進行組織和分配,負責文件存儲并提供文件的保護和檢 索功能。具體而言,文件系統可為用戶提供文件的建立、存入、讀出、修改、控制等功能。
[0003] 現有文件系統提供應用層統一的文件接口和處理方法,對所有用戶文件采用相同 管理方式,并不在底層根據特定文件的存取特點進行特殊處理。這也使得現有文件系統不 能滿足對處理效率要求較高的文件的處理需求,例如數據庫文件。


【發明內容】

[0004] 有鑒于此,本發明的目的在于提供一種針對數據庫文件的文件系統優化方法和裝 置,能夠提高數據庫文件的處理效率。
[0005] 為了達到上述目的,本發明提供了如下技術方案:
[0006] -種針對數據庫文件的文件系統優化方法,包括:
[0007] 接收文件寫入命令;
[0008] 判斷文件寫入命令中的待寫入文件是否是數據庫文件;
[0009] 當待寫入文件是數據庫文件時,如果需要為待寫入文件分配新的存儲空間,則在 所述文件系統關聯的存儲介質中查找能夠存儲待寫入文件內容的連續存儲空間塊,將查找 到的連續存儲空間分配給待寫入文件,并將待寫入文件內容存儲到查找到的連續存儲空間 塊中。
[0010] 一種針對數據庫文件的文件系統優化裝置,該裝置包括:接收單元、判斷單元、處 理單元;
[0011] 所述接收單元,用于接收文件寫入命令;
[0012] 所述判斷單元,用于判斷接收單元接收到的文件寫入命令中的待寫入文件是否是 數據庫文件;
[0013] 所述處理單元,用于接收單元接收到的文件寫入命令中的待寫入文件是數據庫文 件時,如果需要為待寫入文件分配新的存儲空間,則在所述文件系統關聯的存儲介質中查 找能夠存儲待寫入文件內容的連續存儲空間塊,將查找到的連續存儲空間分配給待寫入文 件,并將待寫入文件內容存儲到查找到的連續存儲空間塊中。
[0014] 由上面的技術方案可知,本發明中,通過為數據庫文件分配連續存儲空間,使得數 據庫文件的寫入效率提高,另外還通過對數據庫文件進行預讀,使得數據庫文件的讀出效 率提商。因此,本發明可以提商數據庫文件的處理效率。

【專利附圖】

【附圖說明】
[0015] 圖1是本發明實施例針對數據庫文件寫入的文件系統優化方法流程圖;
[0016] 圖2是本發明實施例針對數據庫文件讀出的文件系統優化方法流程圖;
[0017] 圖3是本發明實施例針對數據庫文件的文件系統優化裝置的結構示意圖。

【具體實施方式】
[0018] 為了使本發明的目的、技術方案及優點更加清楚明白,下面結合附圖并據實施例, 對本發明的技術方案進行詳細說明。
[0019] 本發明的主要思想是:盡量將數據庫文件存儲在連續存儲空間塊中,以便于提高 數據庫文件的讀寫效率。
[0020] 參見圖1,圖1是本發明實施例針對數據庫文件寫入的文件系統優化方法流程圖, 如圖1所示,該方法主要包括以下步驟:
[0021] 步驟101、接收文件寫入命令。
[0022] 文件寫入命令中包含待寫入文件信息(例如待寫入文件的文件名),以及待寫入 文件內容。
[0023] 步驟102、判斷文件寫入命令中的待寫入文件是否是數據庫文件,如果是,則執行 步驟103、否則,執行步驟106。
[0024] 步驟103、如果需要為待寫入文件分配新的存儲空間,則在所述文件系統關聯的存 儲介質中查找能夠存儲待寫入文件內容的連續存儲空間塊,如果查找到,則執行步驟104, 否則,執行步驟105。
[0025] 在實際應用中,文件寫入命令包括文件添加命令和文件更新命令兩種。
[0026] 當文件寫入命令為文件添加命令時,文件寫入命令中的待寫入文件內容是新增文 件內容,需要為待寫入文件分配新的存儲空間,以便存儲新增文件內容。
[0027] 當文件寫入命令為文件更新命令時,需要根據文件系統支持的文件更新方式確定 是否需要為待寫入文件分配新的存儲空間。文件系統支持的文件更新方式有兩種:覆蓋方 式和非覆蓋方式,其中,覆蓋方式是指直接用更新后的文件內容覆蓋更新前的文件內容;非 覆蓋方式是指為更新后的文件內容重新分配存儲空間進行更新后的文件內容的存儲,同時 將更新前的文件內容無效掉。因此,當文件寫入命令為文件更新命令且文件系統支持的文 件更新方式為非覆蓋方式時,需要為待寫入文件分配新的存儲空間。
[0028] 步驟104、將查找到的連續存儲空間分配給待寫入文件,并將待寫入文件內容存儲 到查找到的連續存儲空間塊中。
[0029] 步驟105、在所述文件系統關聯的存儲介質中是查找N個連續存儲空間塊,將查找 到的N個連續存儲空間塊分配給待寫入文件,并將待寫入文件內容存儲到查找到的N個連 續存儲空間塊中。
[0030] 這里,N為大于1的自然數,且N個連續存儲空間塊的總存儲空間大于待寫入文件 內容所需占用的存儲空間。
[0031] 步驟106、按照所述文件系統的現有方法處理文件寫入命令。
[0032] 參見圖2,圖2是本發明實施例針對數據庫文件讀出的文件系統優化方法流程圖, 如圖2所示,該方法主要包括以下步驟:
[0033] 步驟201、接收文件讀出命令。
[0034] 文件讀出命令中包含待讀出文件信息(例如待讀出文件的文件名),以及待讀出 文件內容相關信息(例如,待讀出文件內容在待讀出文件中的起始位置和長度,或者用于 查找到待讀出文件內容的查詢信息)。
[0035] 步驟202、判斷文件讀出命令中的待讀出文件是否是數據庫文件,如果是,則執行 步驟203、否則,執行步驟209 ;
[0036] 步驟203、判斷待讀出文件內容是否已經被預讀到緩存頁,如果是,執行步驟204, 否則,執行步驟205。
[0037] 步驟204、從緩存頁中讀取待讀出文件內容。
[0038] 步驟205、確定待讀出文件內容在所述文件系統關聯的存儲介質中的存儲位置,從 所述存儲位置起讀取待讀出文件內容。
[0039] 步驟206、判斷緊鄰待讀出文件內容所在存儲空間塊的一個或多個連續存儲空間 塊中是否存儲了待讀出文件后續內容,如果是,則執行步驟207,否則,執行步驟208。
[0040] 步驟207、將緊鄰待讀出文件內容所在存儲空間塊,且存儲了待讀出文件后續文件 內容的不超過預設個數的存儲空間塊中的文件內容預讀到緩存頁。
[0041] 本步驟中,將緊鄰待讀出文件內容所在存儲空間塊,且存儲了待讀出文件后續文 件內容的不超過預設個數的連續存儲空間塊中的文件內容預讀到緩存頁的方法為:將緊鄰 待讀出文件內容所在存儲空間塊,且存儲了待讀出文件后續文件內容的連續存儲空間塊個 數超過預設個數記為M,如果Μ大于預設個數,則將緊鄰待讀出文件內容所在存儲空間塊, 且存儲了待讀出文件后續文件內容的預設個數的連續存儲空間塊中的文件內容預讀到緩 存頁,否則,將該Μ個連續存儲空間塊中的文件內容預讀到緩存頁。
[0042] 步驟208、不執行預讀操作。
[0043] 步驟209、按照所述文件系統的現有方法處理文件讀出命令。
[0044] 本發明實施例中,當數據庫文件占用的連續存儲空間塊的個數較多時,為了提高 數據庫文件的讀寫效率,可以對數據庫文件的存儲空間進行碎片整理。這里,一個連續存 儲空間塊中,包括至少一個存儲空間塊(通常一個存儲空間塊的大小通常為4096bytes), 一個連續存儲空間塊所占用總存儲空間大小由其包含的存儲空間塊的個數確定,例如, 一個連續存儲空間塊包含了 10存儲空間塊,則該連續存儲空間塊占用的總存儲空間為 40960bytes。
[0045] 為此,可以通過對數據庫文件占用的連續存儲空間塊的個數進行統計,并根據數 據庫文件占用的連續空間塊的個數和數據庫文件占用的存儲空間大小計算數據庫文件的 存儲空間不連續率,當數據庫文件的存儲空間不連續率達到某個預設閾值時,確定需要對 該數據庫的存儲空間進行碎片整理。
[0046] 其中,根據數據庫文件占用的連續存儲空間塊的個數和數據庫文件占用的存儲空 間大小計算數據庫文件的存儲空間不連續率的方法為:將數據庫文件占用的連續存儲空間 塊的個數與數據庫文件占用的存儲空間大小的商作為該數據庫文件的存儲空間不連續率。 例如,數據庫文件存儲占用的20個連續存儲空間塊,數據庫文件大小為100M,則可將20與 100的商0. 2作為該數據文件的存儲空間不連續率。
[0047] 為了統計數據庫文件占用的連續存儲空間塊的個數,可以在對數據庫文件執行寫 入操作時,對數據庫文件占用的連續存儲空間塊的個數進行統計。例如在上述步驟104中, 當將待寫入文件內容存儲到查找到的連續存儲空間塊中時,如果該連續存儲空間塊與待寫 入文件已分配到的其它連續存儲空間塊不相鄰,則可以對待寫入文件當前占用的連續存儲 空間塊的個數進行統計,以及在上述步驟105中,當將待寫入文件內容存儲到查找到的N個 連續存儲空間塊中時,也可以針對其中的每個連續存儲空間塊,如果該連續存儲空間與待 寫入文件已分配到的其它連續空間塊不相鄰,則可以對待寫入文件當前占用的連續存儲空 間塊的個數進行統計。
[0048] 另外,也可以由用戶指定數據庫文件的存儲空間的碎片整理時間,這種情況下,可 以提供用戶接口由用戶選定時間點對文件系統發起對指定的數據庫文件進行碎片整理的 請求。具體地,可以由用戶發送數據庫文件整理命令,其中攜帶待整理的數據庫文件信息 (例如數據庫文件名)以及整理數據庫文件的時間點;當接收用戶的數據庫文件整理命令 時,文件系統可以按照數據庫文件整理命令指定的時間點,對數據庫文件整理命令指定的 待整理數據庫文件的存儲空間進行碎片整理。
[0049] 在實際實現中,對數據庫文件的存儲空間進行碎片整理的方法有很多種,基本原 理是:通過搬移各存儲空間塊的內容,將該數據庫的文件內容集中存放到總存儲空間較大 的一個或多個連續存儲空間塊中。例如,在文件系統的存儲介質中查找總存儲空間最大的 若干個連續存儲空間,將該數據庫文件拷貝到所述若干個連續存儲空間塊中。又如,將位于 存儲該數據庫文件的多個連續存儲空間塊之間的連續存儲空間塊中存儲的數據搬移到其 它連續存儲空間塊,然后基于搬移后騰出的存儲空間,對存儲該數據庫文件的多個連續存 儲空間塊中的文件內容進行搬移,使該數據庫文件集中存放到連續存儲空間塊中。
[0050] 在實際應用中,數據庫文件名以及數據庫文件內容與普通文件存在一些差別,例 如SQLite數據庫文件由應用程序命名,通常命名為*. db(*表示通配符,可以是任意字符 串)。另外,SQLite數據庫文件會有一些特定的內部信息存放于文件剛開始的幾個字節,以 SQLite3 (SQLite版本3)為例,數據庫文件剛開始的幾個字節一般會包含"SQLite format 3"字樣。
[0051] 根據各類數據庫文件的命名規律,可以總結出并預先設置每類數據庫文件對應的 一條或多條用于表征文件是數據庫文件的文件名特征信息(例如一條文件名特征信息為: "*.db"),以及每類數據文件對應的一條或多條用于表征文件是數據庫文件的文件內容特 征信息(例如一條文件內容特征信息為:"SQLite format 3")。
[0052] 當接收到文件寫入命令或文件讀出命令時,可以用待寫入文件或待讀出文件的 文件名與預先設置的每條文件名特征信息匹配,如果能成功匹配其中一條文件名特征信 息,則可以確定待寫入文件或待讀出文件是數據庫文件。例如,待寫入文件的文件名為 company, db,則該文件名與"*· db"匹配,于是可以判定待寫入文件company, db為數據庫文 件。
[0053] 當接收到文件寫入命令或文件讀出命令時,還可以用待寫入文件或待讀出文件的 文件內容與預先設置的每條文件內容特征信息匹配,如果能成功匹配其中一條文件內容特 征信息,則可以確定待寫入文件或待讀出文件是數據庫文件。例如,待寫入文件的開始幾個 字節內容為"SQLite format 3",則待寫入文件的文件內容與"SQLite format 3"匹配,于 是可以判定待寫入文件為數據庫文件。
[0054] 如果待寫入文件或待讀出文件的文件名與預先設置的各文件名特征信息均不匹 配,且文件內容與預先設置的各文件內容特征信息也均不匹配,則可以確定待寫入文件或 待讀出文件不是數據庫文件。
[0055] 以上對本發明實施例針對數據庫文件的文件系統優化方法進行了詳細說明,本發 明還提供了一種針對數據庫文件的文件系統優化裝置,下面結合圖3進行說明。
[0056] 參見圖3,圖3是本發明實施例針對數據庫文件的文件系統優化裝置的結構示意 圖,如圖3所示,該裝置包括:接收單元301、判斷單元302、處理單元303 ;其中,
[0057] 接收單元301,用于接收文件寫入命令;
[0058] 判斷單元302,用于判斷接收單元301接收到的文件寫入命令中的待寫入文件是 否是數據庫文件;
[0059] 處理單元303,用于接收單元301接收到的文件寫入命令中的待寫入文件是數據 庫文件時,如果需要為待寫入文件分配新的存儲空間,則在所述文件系統關聯的存儲介質 中查找能夠存儲待寫入文件內容的連續存儲空間塊,將查找到的連續存儲空間分配給待寫 入文件,并將待寫入文件內容存儲到查找到的連續存儲空間塊中。
[0060] 圖3所示裝置中,
[0061] 所述處理單元303,進一步用于如果未在所述文件系統關聯的存儲介質中查找到 能夠存儲待寫入文件內容的連續存儲空間塊,則在所述文件系統關聯的存儲介質中是查找 N個連續存儲空間塊,將查找到的N個連續存儲空間分配給待寫入文件,并將待寫入文件內 容存儲到查找到的N個連續存儲空間塊中;
[0062] 其中,N為大于1的自然數,且N個連續存儲空間塊的總存儲空間大于待寫入文件 內容所需占用的存儲空間。
[0063] 圖3所示裝置中,
[0064] 所述文件寫入命令包括用于添加新的文件內容的文件添加命令和用于更新已有 文件內容的文件更新命令;
[0065] 所述處理單元303判斷需要為文件寫入命令中的待寫入文件分配新的存儲空間 時,用于:當文件寫入命令為文件添加命令時,或者,當文件寫入命令為文件更新命令且所 述文件系統支持的文件更新方式為非覆蓋方式時,確定需要為文件寫入命令中的待寫入文 件分配新的存儲空間,否則,不需要為文件寫入命令中的待寫入文件分配新的存儲空間; [0066] 其中,所述文件更新方式包括覆蓋方式和非覆蓋方式,其中覆蓋方式是指直接用 更新后的文件內容覆蓋更新前的文件內容;非覆蓋方式是指為更新后的文件內容重新分配 存儲空間進行存儲,同時將更新前的文件內容無效掉。
[0067] 圖3所示裝置中,
[0068] 所述接收單元301,進一步用于接收文件讀出命令;
[0069] 所述判斷單元302,進一步用于判斷接收單元301接收到的文件讀出命令中的待 讀出文件是否是數據庫文件;
[0070] 所述處理單元303,進一步用于當接收單元301接收到的文件讀出命令中的待讀 出文件是數據庫文件時,判斷待讀出文件內容是否已經被預讀到緩存頁,如果是,則從緩存 頁中讀取待讀出文件內容,否則,確定待讀出文件內容在所述文件系統關聯的存儲介質中 的存儲位置,從所述存儲位置起讀取待讀出文件內容,并將緊鄰待讀出文件內容所在存儲 空間塊,且存儲了待讀出文件后續文件內容的不超過預設個數的存儲空間塊中的文件內容 預讀到緩存頁。
[0071] 圖3所示裝置中,
[0072] 所述處理單元303將緊鄰待讀出文件內容所在存儲空間塊,且存儲了待讀出文件 后續文件內容的不超過預設個數的連續存儲空間塊中的文件內容預讀到緩存頁之前,進一 步用于:判斷緊鄰待讀出文件內容所在存儲空間塊的一個或多個連續存儲空間塊中是否存 儲了待讀出文件后續內容,如果是,則將緊鄰待讀出文件內容所在存儲空間塊,且存儲了待 讀出文件后續文件內容的不超過預設個數的連續存儲空間塊中的文件內容預讀到緩存頁, 否則,不執行預讀操作;
[0073] 所述處理單元將緊鄰待讀出文件內容所在存儲空間塊,且存儲了待讀出文件后續 文件內容的不超過預設個數的連續存儲空間塊中的文件內容預讀到緩存頁時,用于:將緊 鄰待讀出文件內容所在存儲空間塊,且存儲了待讀出文件后續文件內容的連續存儲空間塊 個數超過預設個數記為M,如果Μ大于預設個數,則將緊鄰待讀出文件內容所在存儲空間 塊,且存儲了待讀出文件后續文件內容的預設個數的連續存儲空間塊中的文件內容預讀到 緩存頁,否則,將該Μ個連續存儲空間塊中的文件內容預讀到緩存頁。
[0074] 圖3所示裝置中,還包括統計單元304、整理單元305 ;
[0075] 所述統計單元,用于處理單元303將待寫入文件內容存儲到查找到的連續存儲空 間塊中,或者,將待寫入文件內容存儲到查找到的Ν個連續存儲空間塊中時,統計待寫入文 件當前占用的連續存儲空間塊的個數;
[0076] 所述整理單元,用于根據統計單元統計的各數據庫文件當前占用的連續存儲空間 塊的個數和該數據庫文件的當前文件大小計算該數據庫文件的存儲空間分配不連續率,如 果該數據庫文件的存儲空間不連續率超過預設閾值,則對該數據庫文件的存儲空間進行碎 片整理。
[0077] 圖3所示裝置中,還包括整理單元305 ;
[0078] 所述接收單元301,用于接收用戶的數據庫文件整理命令;
[0079] 所述整理單元,用于接收單元301接收到用戶端數據庫文件整理命令時,按照數 據庫文件整理命令指定的時間點,對數據庫文件整理命令指定的待整理數據庫文件的存儲 空間進行碎片整理。
[0080] 圖3所示裝置中,還包括配置單元306 ;
[0081] 所述配置單元,用于預先設置每類數據庫文件對應的用于表征文件為數據庫文件 的至少一條文件名特征信息和至少一條文件內容特征信息;
[0082] 所述判斷單元302判斷文件是否為數據庫文件時,用于:如果文件的文件名符合 配置單元預先設置的任一文件名特征信息,或者,文件的文件內容符合配置單元預先設置 的任一文件內容特征信息,則確定文件是數據庫文件,否則,確定文件不是數據庫文件。 [〇〇83] 以上所述僅為本發明的較佳實施例而已,并不用以限制本發明,凡在本發明的精 神和原則之內,所做的任何修改、等同替換、改進等,均應包含在本發明保護的范圍之內。
【權利要求】
1. 一種針對數據庫文件的文件系統優化方法;其特征在于,該方法包括: 接收文件寫入命令; 判斷文件寫入命令中的待寫入文件是否是數據庫文件; 當待寫入文件是數據庫文件時,如果需要為待寫入文件分配新的存儲空間,則在所述 文件系統關聯的存儲介質中查找能夠存儲待寫入文件內容的連續存儲空間塊,將查找到的 連續存儲空間分配給待寫入文件,并將待寫入文件內容存儲到查找到的連續存儲空間塊 中。
2. 根據權利要求1所述的方法,其特征在于,該方法進一步包括: 如果未在所述文件系統關聯的存儲介質中查找到能夠存儲待寫入文件內容的連續存 儲空間塊,則在所述文件系統關聯的存儲介質中是查找N個連續存儲空間塊,將查找到的N 個連續存儲空間分配給待寫入文件,并將待寫入文件內容存儲到查找到的N個連續存儲空 間塊中; 其中,N為大于1的自然數,且N個連續存儲空間塊的總存儲空間大于待寫入文件內容 所需占用的存儲空間。
3. 根據權利要求1所述的方法,其特征在于, 所述文件寫入命令包括用于添加新的文件內容的文件添加命令和用于更新已有文件 內容的文件更新命令; 判斷需要為文件寫入命令中的待寫入文件分配新的存儲空間的方法為:當文件寫入命 令為文件添加命令時,或者,當文件寫入命令為文件更新命令且所述文件系統支持的文件 更新方式為非覆蓋方式時,確定需要為文件寫入命令中的待寫入文件分配新的存儲空間, 否則,不需要為文件寫入命令中的待寫入文件分配新的存儲空間; 其中,所述文件更新方式包括覆蓋方式和非覆蓋方式,其中覆蓋方式是指直接用更新 后的文件內容覆蓋更新前的文件內容;非覆蓋方式是指為更新后的文件內容重新分配存儲 空間進行存儲,同時將更新前的文件內容無效掉。
4. 根據權利要求2所述的方法,其特征在于, 接收文件讀出命令; 判斷文件讀出命令中的待讀出文件是否是數據庫文件; 當待讀出文件是數據庫文件時,確定待讀出文件內容是否已經被預讀到緩存頁,如果 是,則從緩存頁中讀取待讀出文件內容,否則,確定待讀出文件內容在所述文件系統關聯的 存儲介質中的存儲位置,從所述存儲位置起讀取待讀出文件內容,并將緊鄰待讀出文件內 容所在存儲空間塊,且存儲了待讀出文件后續文件內容的不超過預設個數的存儲空間塊中 的文件內容預讀到緩存頁。
5. 根據權利要求4所述的方法,其特征在于,該方法進一步包括: 將緊鄰待讀出文件內容所在存儲空間塊,且存儲了待讀出文件后續文件內容的不超過 預設個數的連續存儲空間塊中的文件內容預讀到緩存頁之前,進一步包括:判斷緊鄰待讀 出文件內容所在存儲空間塊的一個或多個連續存儲空間塊中是否存儲了待讀出文件后續 內容,如果是,則將緊鄰待讀出文件內容所在存儲空間塊,且存儲了待讀出文件后續文件內 容的不超過預設個數的連續存儲空間塊中的文件內容預讀到緩存頁,否則,不執行預讀操 作; 將緊鄰待讀出文件內容所在存儲空間塊,且存儲了待讀出文件后續文件內容的不超過 預設個數的連續存儲空間塊中的文件內容預讀到緩存頁的方法為:將緊鄰待讀出文件內容 所在存儲空間塊,且存儲了待讀出文件后續文件內容的連續存儲空間塊個數超過預設個數 記為M,如果Μ大于預設個數,則將緊鄰待讀出文件內容所在存儲空間塊,且存儲了待讀出 文件后續文件內容的預設個數的連續存儲空間塊中的文件內容預讀到緩存頁,否則,將該Μ 個連續存儲空間塊中的文件內容預讀到緩存頁。
6. 根據權利要求2、3、4、或5所述的方法,其特征在于, 將待寫入文件內容存儲到查找到的連續存儲空間塊中,或者,將待寫入文件內容存儲 到查找到的Ν個連續存儲空間塊中時,進一步統計待寫入文件當前占用的連續存儲空間塊 的個數; 該方法進一步包括: 根據各數據庫文件當前占用的連續存儲空間塊的個數和該數據庫文件的當前文件大 小計算該數據庫文件的存儲空間分配不連續率,該數據庫文件的存儲空間不連續率超過預 設閾值,則對該數據庫文件的存儲空間進行碎片整理。
7. 根據權利要求2、3、4、或5所述的方法,其特征在于,該方法進一步包括: 接收用戶的數據庫文件整理命令,按照數據庫文件整理命令指定的時間點,對數據庫 文件整理命令指定的待整理數據庫文件的存儲空間進行碎片整理。
8. 根據權利要求1、2、3、4、或5所述的方法,其特征在于, 每類數據庫文件對應的用于表征文件為數據庫文件的至少一條文件名特征信息和至 少一條文件內容特征信息; 判斷文件是否為數據庫文件的方法為:如果文件的文件名符合預先設置的任一文件名 特征信息,或者,文件的文件內容符合預先設置的任一文件內容特征信息,則確定文件是數 據庫文件,否則,確定文件不是數據庫文件。
9. 一種針對數據庫文件的文件系統優化裝置,其特征在于,該裝置包括:接收單元、判 斷單元、處理單元; 所述接收單元,用于接收文件寫入命令; 所述判斷單元,用于判斷接收單元接收到的文件寫入命令中的待寫入文件是否是數據 庫文件; 所述處理單元,用于接收單元接收到的文件寫入命令中的待寫入文件是數據庫文件 時,如果需要為待寫入文件分配新的存儲空間,則在所述文件系統關聯的存儲介質中查找 能夠存儲待寫入文件內容的連續存儲空間塊,將查找到的連續存儲空間分配給待寫入文 件,并將待寫入文件內容存儲到查找到的連續存儲空間塊中。
10. 根據權利要求9所述的裝置,其特征在于, 所述處理單元,進一步用于如果未在所述文件系統關聯的存儲介質中查找到能夠存儲 待寫入文件內容的連續存儲空間塊,則在所述文件系統關聯的存儲介質中是查找Ν個連續 存儲空間塊,將查找到的Ν個連續存儲空間分配給待寫入文件,并將待寫入文件內容存儲 到查找到的Ν個連續存儲空間塊中; 其中,Ν為大于1的自然數,且Ν個連續存儲空間塊的總存儲空間大于待寫入文件內容 所需占用的存儲空間。
11. 根據權利要求9所述的裝置,其特征在于, 所述文件寫入命令包括用于添加新的文件內容的文件添加命令和用于更新已有文件 內容的文件更新命令; 所述處理單元判斷需要為文件寫入命令中的待寫入文件分配新的存儲空間時,用于: 當文件寫入命令為文件添加命令時,或者,當文件寫入命令為文件更新命令且所述文件系 統支持的文件更新方式為非覆蓋方式時,確定需要為文件寫入命令中的待寫入文件分配新 的存儲空間,否則,不需要為文件寫入命令中的待寫入文件分配新的存儲空間; 其中,所述文件更新方式包括覆蓋方式和非覆蓋方式,其中覆蓋方式是指直接用更新 后的文件內容覆蓋更新前的文件內容;非覆蓋方式是指為更新后的文件內容重新分配存儲 空間進行存儲,同時將更新前的文件內容無效掉。
12. 根據權利要求10所述的裝置,其特征在于, 所述接收單元,進一步用于接收文件讀出命令; 所述判斷單元,進一步用于判斷接收單元接收到的文件讀出命令中的待讀出文件是否 是數據庫文件; 所述處理單元,進一步用于當接收單元接收到的文件讀出命令中的待讀出文件是數據 庫文件時,判斷待讀出文件內容是否已經被預讀到緩存頁,如果是,則從緩存頁中讀取待讀 出文件內容,否則,確定待讀出文件內容在所述文件系統關聯的存儲介質中的存儲位置,從 所述存儲位置起讀取待讀出文件內容,并將緊鄰待讀出文件內容所在存儲空間塊,且存儲 了待讀出文件后續文件內容的不超過預設個數的存儲空間塊中的文件內容預讀到緩存頁。
13. 根據權利要求12所述的裝置,其特征在于, 所述處理單元將緊鄰待讀出文件內容所在存儲空間塊,且存儲了待讀出文件后續文件 內容的不超過預設個數的連續存儲空間塊中的文件內容預讀到緩存頁之前,進一步用于: 判斷緊鄰待讀出文件內容所在存儲空間塊的一個或多個連續存儲空間塊中是否存儲了待 讀出文件后續內容,如果是,則將緊鄰待讀出文件內容所在存儲空間塊,且存儲了待讀出文 件后續文件內容的不超過預設個數的連續存儲空間塊中的文件內容預讀到緩存頁,否則, 不執行預讀操作; 將緊鄰待讀出文件內容所在存儲空間塊,且存儲了待讀出文件后續文件內容的不超過 預設個數的連續存儲空間塊中的文件內容預讀到緩存頁的方法為:將緊鄰待讀出文件內容 所在存儲空間塊,且存儲了待讀出文件后續文件內容的連續存儲空間塊個數超過預設個數 記為M,如果Μ大于預設個數,則將緊鄰待讀出文件內容所在存儲空間塊,且存儲了待讀出 文件后續文件內容的預設個數的連續存儲空間塊中的文件內容預讀到緩存頁,否則,將該Μ 個連續存儲空間塊中的文件內容預讀到緩存頁。
14. 根據權利要求10、11、12、或13所述的裝置,其特征在于,該裝置還包括統計單元、 整理單元; 所述統計單元,用于處理單元將待寫入文件內容存儲到查找到的連續存儲空間塊中, 或者,將待寫入文件內容存儲到查找到的Ν個連續存儲空間塊中時,統計待寫入文件當前 占用的連續存儲空間塊的個數; 所述整理單元,用于根據統計單元統計的各數據庫文件當前占用的連續存儲空間塊的 個數和該數據庫文件的當前文件大小計算該數據庫文件的存儲空間分配不連續率,如果該 數據庫文件的存儲空間不連續率超過預設閾值,則對該數據庫文件的存儲空間進行碎片整 理。
15. 根據權利要求10、11、12、或13所述的裝置,其特征在于,該裝置還包括整理單元; 所述接收單元,用于接收用戶的數據庫文件整理命令; 所述整理單元,用于接收單元接收到用戶端數據庫文件整理命令時,按照數據庫文件 整理命令指定的時間點,對數據庫文件整理命令指定的待整理數據庫文件的存儲空間進行 碎片整理。
16. 根據權利要求9、10、11、12、或13所述的裝置,其特征在于,該裝置還包括配置單 元; 所述配置單元,用于預先設置每類數據庫文件對應的用于表征文件為數據庫文件的至 少一條文件名特征信息和至少一條文件內容特征信息; 所述判斷單元判斷文件是否為數據庫文件時,用于:如果文件的文件名符合配置單元 預先設置的任一文件名特征信息,或者,文件的文件內容符合配置單元預先設置的任一文 件內容特征信息,則確定文件是數據庫文件,否則,確定文件不是數據庫文件。
【文檔編號】G06F12/02GK104102735SQ201410362572
【公開日】2014年10月15日 申請日期:2014年7月28日 優先權日:2014年7月28日
【發明者】譚姝, 李遠友, 理素霞, 俞超, 宋鋒, 曹健, 梅崇華, 鐘淵, 楊宏, 高婧婷, 葛世飛, 李凡 申請人:三星電子(中國)研發中心, 三星電子株式會社
網友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1
主站蜘蛛池模板: 婺源县| 霍林郭勒市| 龙州县| 梁河县| 华安县| 吉隆县| 阳春市| 安西县| 布拖县| 谢通门县| 成武县| 金寨县| 锡林浩特市| 湖口县| 含山县| 邵阳县| 新野县| 阳江市| 马公市| 垫江县| 云安县| 大石桥市| 桐城市| 商河县| 西充县| 鄂托克前旗| 长乐市| 汉源县| 武隆县| 温宿县| 乌什县| 嘉峪关市| 中超| 天柱县| 扎兰屯市| 攀枝花市| 淅川县| 普定县| 衡东县| 新丰县| 蒙阴县|