[發(fā)明專利]基于用戶空間文件系統(tǒng)FUSE的文件預(yù)讀方法及裝置、電子設(shè)備在審
| 申請(qǐng)?zhí)枺?/td> | 202010962042.9 | 申請(qǐng)日: | 2020-09-14 |
| 公開(公告)號(hào): | CN112181916A | 公開(公告)日: | 2021-01-05 |
| 發(fā)明(設(shè)計(jì))人: | 惠孟戰(zhàn);張旭明;王豪邁;胥昕 | 申請(qǐng)(專利權(quán))人: | 星辰天合(北京)數(shù)據(jù)科技有限公司 |
| 主分類號(hào): | G06F16/172 | 分類號(hào): | G06F16/172;G06F3/06 |
| 代理公司: | 北京康信知識(shí)產(chǎn)權(quán)代理有限責(zé)任公司 11240 | 代理人: | 周春枚 |
| 地址: | 100097 北京市海淀區(qū)藍(lán)*** | 國省代碼: | 北京;11 |
| 權(quán)利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關(guān)鍵詞: | 基于 用戶 空間 文件系統(tǒng) fuse 文件 方法 裝置 電子設(shè)備 | ||
本發(fā)明公開了一種基于用戶空間文件系統(tǒng)FUSE的文件預(yù)讀方法及裝置、電子設(shè)備。FUSE至少包括:內(nèi)核態(tài)和用戶態(tài),用戶態(tài)上預(yù)先掛載用戶態(tài)文件系統(tǒng),在用戶態(tài)上預(yù)先設(shè)置目標(biāo)緩存區(qū),其中,該文件預(yù)讀方法包括:接收文件讀取請(qǐng)求;響應(yīng)文件讀取請(qǐng)求,從用戶態(tài)文件系統(tǒng)中讀取目標(biāo)文件中第一子文件;根據(jù)第一子文件的文件信息和預(yù)讀參數(shù),計(jì)算在第一子文件之后的其它預(yù)讀子文件的預(yù)讀文件信息;基于預(yù)讀文件信息,將其它預(yù)讀子文件緩存至目標(biāo)緩存區(qū)。本發(fā)明解決了相關(guān)技術(shù)中用戶空間文件系統(tǒng)采用VFS層預(yù)讀機(jī)制,存在內(nèi)核頁面設(shè)置較小,無法完成大文件預(yù)讀工作的技術(shù)問題。
技術(shù)領(lǐng)域
本發(fā)明涉及文件處理技術(shù)領(lǐng)域,具體而言,涉及一種基于用戶空間文件系統(tǒng)FUSE的文件預(yù)讀方法及裝置、電子設(shè)備。
背景技術(shù)
相關(guān)技術(shù)中,在用戶空間實(shí)現(xiàn)文件系統(tǒng)能夠大幅提高生產(chǎn)率,簡化了為操作系統(tǒng)提供新的文件系統(tǒng)的工作量,特別適用于各種虛擬文件系統(tǒng)和網(wǎng)絡(luò)文件系統(tǒng)。基于網(wǎng)絡(luò)的用戶文件系統(tǒng)因?yàn)閿?shù)據(jù)會(huì)通過網(wǎng)絡(luò)傳輸,所以通常會(huì)在性能方面出現(xiàn)瓶頸。比如讀一個(gè)大文件,如果每一個(gè)讀請(qǐng)求都通過內(nèi)核態(tài)到達(dá)用戶態(tài),再通過網(wǎng)絡(luò)傳輸,那么每個(gè)IO開銷很大,必然會(huì)導(dǎo)致應(yīng)用程序性能低下。為解決此問題,當(dāng)前采用的方案,借用了內(nèi)核VFS層的通用預(yù)讀機(jī)制,圖1是現(xiàn)有技術(shù)中一種可選的在內(nèi)核層實(shí)現(xiàn)預(yù)讀機(jī)制的示意圖,如圖1所示,在用戶空間文件系統(tǒng)(Filesystem in Userspace,簡稱FUSE)分為內(nèi)核態(tài)和用戶態(tài),內(nèi)核態(tài)與內(nèi)核中VFS(Virtual File System,虛擬文件系統(tǒng))層對(duì)接,用戶態(tài)基本邏輯處理庫與用戶態(tài)文件系統(tǒng)對(duì)接,用戶利用客戶端上安裝的應(yīng)用程序讀取用戶態(tài)文件系統(tǒng)中的文件時(shí),VFS層預(yù)讀機(jī)制會(huì)自動(dòng)檢測(cè)當(dāng)前IO和上一次的IO是不是順序IO,如果是順序IO,就會(huì)提前發(fā)起預(yù)讀,例如,若是應(yīng)用程序發(fā)出連續(xù)的4K塊大小讀取,VFS層通過連續(xù)檢測(cè)是不是順序讀取,如果是,就會(huì)擴(kuò)大從fuse內(nèi)核態(tài)讀取的塊大小,比如擴(kuò)大到128K讀,這樣后續(xù)應(yīng)用程序讀4K,就會(huì)從VFS層的緩存里面直接讀取上去了,有效的提升了應(yīng)用程序的性能,這樣后續(xù)讀取IO就會(huì)命中VFS層的緩存,而不必再向FUSE模塊請(qǐng)求讀取了。
VFS層的預(yù)讀機(jī)制是一個(gè)通用的預(yù)讀框架,它能解決一般的性能瓶頸。但是與FUSE配合時(shí),其在如下幾個(gè)方面存在著缺陷:
第一個(gè)缺陷,VFS層預(yù)讀是以內(nèi)核頁面為基礎(chǔ),內(nèi)核頁面通常設(shè)置為4K,且很難更改,因?yàn)楦倪@個(gè)值對(duì)內(nèi)核所有內(nèi)存組件都會(huì)產(chǎn)生影響,一般不推薦更改,而這個(gè)值對(duì)于一般網(wǎng)絡(luò)文件系統(tǒng),是偏小的。例如,應(yīng)用程序發(fā)出的大塊讀(比如4M大小),在頁面緩存處會(huì)拆成1024個(gè)頁面,進(jìn)行匹配檢索對(duì)應(yīng)頁面是否位于頁面緩存中,在所有頁面就緒后,再按照4K的頁面粒度進(jìn)行拷貝,拷貝1024次到應(yīng)用程序A,這樣會(huì)大大增大系統(tǒng)開銷。
第二個(gè)缺陷,VFS層的預(yù)讀調(diào)用是在當(dāng)前線程上下文中發(fā)出的,比如一個(gè)dd(linux下面的一個(gè)文件讀取工具)單線程讀,預(yù)讀會(huì)在當(dāng)前單線程讀中發(fā)起,缺乏并發(fā)預(yù)讀機(jī)制,預(yù)讀效果較差。
第三個(gè)缺陷,VFS層的預(yù)讀機(jī)制工作于內(nèi)核態(tài),并且是一個(gè)公共模塊,這樣對(duì)于更多的預(yù)讀特性,比如增加小文件預(yù)讀,都是很難擴(kuò)展的。
針對(duì)上述的問題,目前尚未提出有效的解決方案。
發(fā)明內(nèi)容
本發(fā)明實(shí)施例提供了一種基于用戶空間文件系統(tǒng)FUSE的文件預(yù)讀方法及裝置、電子設(shè)備,以至少解決相關(guān)技術(shù)中用戶空間文件系統(tǒng)采用VFS層預(yù)讀機(jī)制,存在內(nèi)核頁面設(shè)置較小,無法完成大文件預(yù)讀工作的技術(shù)問題。
根據(jù)本發(fā)明實(shí)施例的一個(gè)方面,提供了一種基于用戶空間文件系統(tǒng)FUSE的文件預(yù)讀方法,F(xiàn)USE至少包括:內(nèi)核態(tài)和用戶態(tài),所述用戶態(tài)上預(yù)先掛載用戶態(tài)文件系統(tǒng),在所述用戶態(tài)上預(yù)先設(shè)置目標(biāo)緩存區(qū),所述文件預(yù)讀方法包括:接收文件讀取請(qǐng)求;響應(yīng)所述文件讀取請(qǐng)求,從所述用戶態(tài)文件系統(tǒng)中讀取目標(biāo)文件中第一子文件;根據(jù)所述第一子文件的文件信息和預(yù)讀參數(shù),計(jì)算在所述第一子文件之后的其它預(yù)讀子文件的預(yù)讀文件信息;基于所述預(yù)讀文件信息,將所述其它預(yù)讀子文件緩存至所述目標(biāo)緩存區(qū)。
該專利技術(shù)資料僅供研究查看技術(shù)是否侵權(quán)等信息,商用須獲得專利權(quán)人授權(quán)。該專利全部權(quán)利屬于星辰天合(北京)數(shù)據(jù)科技有限公司,未經(jīng)星辰天合(北京)數(shù)據(jù)科技有限公司許可,擅自商用是侵權(quán)行為。如果您想購買此專利、獲得商業(yè)授權(quán)和技術(shù)合作,請(qǐng)聯(lián)系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/202010962042.9/2.html,轉(zhuǎn)載請(qǐng)聲明來源鉆瓜專利網(wǎng)。





