[發(fā)明專利]一種上層文件系統(tǒng)對(duì)空洞文件快速讀取的方法及系統(tǒng)在審
| 申請(qǐng)?zhí)枺?/td> | 201110228276.1 | 申請(qǐng)日: | 2011-08-10 |
| 公開(公告)號(hào): | CN102298619A | 公開(公告)日: | 2011-12-28 |
| 發(fā)明(設(shè)計(jì))人: | 朱鵬;王瑜;嚴(yán)耀華 | 申請(qǐng)(專利權(quán))人: | 中興通訊股份有限公司 |
| 主分類號(hào): | G06F17/30 | 分類號(hào): | G06F17/30 |
| 代理公司: | 北京元本知識(shí)產(chǎn)權(quán)代理事務(wù)所 11308 | 代理人: | 秦力軍 |
| 地址: | 518057 廣東省深圳市南山*** | 國省代碼: | 廣東;44 |
| 權(quán)利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關(guān)鍵詞: | 一種 上層 文件系統(tǒng) 空洞 文件 快速 讀取 方法 系統(tǒng) | ||
技術(shù)領(lǐng)域
本發(fā)明涉及計(jì)算機(jī)系統(tǒng)的文件系統(tǒng),特別涉及一種上層文件系統(tǒng)基于posix(Portable?Operating?System?Interface?of?Unix,可移植操作系統(tǒng)接口)接口對(duì)空洞文件加速讀取的方法及系統(tǒng)。
背景技術(shù)
文件系統(tǒng)是一種用來存儲(chǔ)和組織計(jì)算機(jī)文件、目錄及其包含的數(shù)據(jù)的方法,它使文件、目錄以及數(shù)據(jù)的查找和訪問得到簡化。
隨著多媒體產(chǎn)業(yè)的迅猛發(fā)展,出于成本、可靠性等多方面的考慮,越來越多的廠商選擇在產(chǎn)品中部署自研的分布式上層存儲(chǔ)系統(tǒng),分布式文件系統(tǒng)也因此得到了快速的發(fā)展。
在普通應(yīng)用中,無法使用上層分布式文件系統(tǒng)專有函數(shù)接口,尤其像普通程序中將一個(gè)文件或者其它對(duì)象映射進(jìn)內(nèi)存的mmap等操作,無法簡單的在上層系統(tǒng)中實(shí)現(xiàn),幾乎所有的上層分布式文件系統(tǒng)選用了開源的Fuse(Filesystem?in?Userspace,用戶空間文件系統(tǒng))組件,完成從專用接口到通用接口的轉(zhuǎn)變,但是Fuse組件只是一個(gè)底層文件系統(tǒng)的框架,在許多應(yīng)用中存在一定性能上的損失,尤其讀取空洞文件時(shí),性能損失更為嚴(yán)重。
空洞文件是包含空洞(其中無任何內(nèi)容)的文件。在文件操作中,文件位移量可以大于文件的當(dāng)前長度,在這種情況下,對(duì)該文件的下一次寫將延長該文件,這就是所謂的在文件里創(chuàng)造“空洞(hole)”。
讀取文件時(shí),mmap函數(shù)將所要讀取的文件映射進(jìn)內(nèi)存。在linux中,內(nèi)存的保護(hù)是以頁為基本單位的,即使被映射文件只有一個(gè)字節(jié)大小,內(nèi)核也會(huì)為映射分配一個(gè)頁面大小的內(nèi)存。文件一旦被映射后,調(diào)用mmap()的進(jìn)程對(duì)mmap()返回地址進(jìn)行訪問時(shí),由內(nèi)核處理該訪問。如果內(nèi)核發(fā)現(xiàn)返回地址所指向的頁沒有被操作系統(tǒng)讀取過,則向Fuse組件發(fā)出讀取頁請(qǐng)求。Fuse組件接收到讀取頁請(qǐng)求后,不論所讀取的頁是否是空洞,都向上層文件系統(tǒng)發(fā)送讀取請(qǐng)求。上層文件系統(tǒng)收到讀取請(qǐng)求后,讀取相關(guān)頁并返回給Fuse組件,F(xiàn)use組件再將其返回給調(diào)用mmap()的進(jìn)程。
由上述分析可見,在現(xiàn)有技術(shù)中,F(xiàn)use組件收到讀取頁請(qǐng)求后,不管所讀取的頁是否是空洞,都向上層文件系統(tǒng)發(fā)送讀取請(qǐng)求,上層文件系統(tǒng)收到讀取請(qǐng)求進(jìn)行相應(yīng)的讀取后再將讀取的相關(guān)頁返回給Fuse組件。因此,讀取空洞文件時(shí),性能損失較為嚴(yán)重。同時(shí),當(dāng)遇到大量的文件空洞時(shí),F(xiàn)use帶來的系統(tǒng)內(nèi)存復(fù)制的壓力和進(jìn)程切換的壓力,會(huì)極大地拖累系統(tǒng)讀取的速度。
發(fā)明內(nèi)容
本發(fā)明的目的在于提供一種上層文件系統(tǒng)對(duì)空洞文件快速讀取的方法及系統(tǒng),能更好地解決Fuse讀取空洞文件時(shí)性能損失嚴(yán)重導(dǎo)致系統(tǒng)內(nèi)存復(fù)制和進(jìn)程切換時(shí)壓力過大的問題。
根據(jù)本發(fā)明的一個(gè)方面,提供了一種上層文件系統(tǒng)對(duì)空洞文件快速讀取的方法,所述方法包括以下步驟:
A、在Fuse內(nèi)核組件上外掛空洞文件處理系統(tǒng);
B、所述空洞文件處理系統(tǒng)通過對(duì)上層文件系統(tǒng)的文件進(jìn)行空洞判別,查找文件的空洞頁,給所述空洞頁添加空洞標(biāo)識(shí);
C、在讀取文件過程中,對(duì)于帶有空洞標(biāo)識(shí)的空洞頁,所述空洞文件處理系統(tǒng)中止上層文件系統(tǒng)對(duì)其讀取。
其中,所述步驟B包括:
B1、應(yīng)用程序創(chuàng)建新文件;
B2、Fuse內(nèi)核組件判斷所創(chuàng)建的新文件是否是空洞文件,如果是空洞文件,則向所述空洞文件處理系統(tǒng)發(fā)送添加空洞標(biāo)識(shí)的請(qǐng)求;
B3、所述空洞文件處理系統(tǒng)接收到所述添加空洞標(biāo)識(shí)的請(qǐng)求后,查找所述文件的空洞頁,并給所述空洞頁添加空洞標(biāo)識(shí)。
其中,所述步驟B還包括:
B4、應(yīng)用程序向Fuse內(nèi)核組件發(fā)送查詢文件屬性的請(qǐng)求;
B5、Fuse內(nèi)核組件接收到所述查詢文件屬性的請(qǐng)求后,判斷所述文件是否是空洞文件,如果是空洞文件,則向所述空洞文件處理系統(tǒng)發(fā)送更新空洞標(biāo)識(shí)的的請(qǐng)求;
B6、所述空洞文件處理系統(tǒng)接收到所述更新空洞標(biāo)識(shí)的請(qǐng)求后,判斷所述空洞文件是否需要更新空洞標(biāo)識(shí),如果需要,則更新所述空洞頁的空洞標(biāo)識(shí)。
其中,所述步驟B6包括:
B61、所述空洞文件處理系統(tǒng)接收到所述更新空洞標(biāo)識(shí)的請(qǐng)求后,查詢所述空洞文件對(duì)應(yīng)的空洞信息的版本號(hào),并將所述版本號(hào)發(fā)送給上層文件系統(tǒng);
B62、上層文件系統(tǒng)比較所接收到的版本號(hào)和上層文件系統(tǒng)中所述空洞文件的空洞信息對(duì)應(yīng)的版本號(hào),如果所接收到的版本號(hào)小于上層文件系統(tǒng)中所述空洞文件的空洞信息對(duì)應(yīng)的版本號(hào),則上層文件系統(tǒng)將增量的空洞頁屬性發(fā)送給所述空洞文件處理系統(tǒng);
B63、所述空洞文件處理系統(tǒng)根據(jù)所述增量的空洞頁屬性更新所述空洞標(biāo)識(shí)。
該專利技術(shù)資料僅供研究查看技術(shù)是否侵權(quán)等信息,商用須獲得專利權(quán)人授權(quán)。該專利全部權(quán)利屬于中興通訊股份有限公司,未經(jīng)中興通訊股份有限公司許可,擅自商用是侵權(quán)行為。如果您想購買此專利、獲得商業(yè)授權(quán)和技術(shù)合作,請(qǐng)聯(lián)系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201110228276.1/2.html,轉(zhuǎn)載請(qǐng)聲明來源鉆瓜專利網(wǎng)。
- 同類專利
- 專利分類
G06F 電數(shù)字?jǐn)?shù)據(jù)處理
G06F17-00 特別適用于特定功能的數(shù)字計(jì)算設(shè)備或數(shù)據(jù)處理設(shè)備或數(shù)據(jù)處理方法
G06F17-10 .復(fù)雜數(shù)學(xué)運(yùn)算的
G06F17-20 .處理自然語言數(shù)據(jù)的
G06F17-30 .信息檢索;及其數(shù)據(jù)庫結(jié)構(gòu)
G06F17-40 .數(shù)據(jù)的獲取和記錄
G06F17-50 .計(jì)算機(jī)輔助設(shè)計(jì)





