[發(fā)明專利]應(yīng)用于Bcache的回收方法及裝置在審
| 申請?zhí)枺?/td> | 202010925765.1 | 申請日: | 2020-09-04 |
| 公開(公告)號: | CN112115073A | 公開(公告)日: | 2020-12-22 |
| 發(fā)明(設(shè)計)人: | 陳亮;劉國輝 | 申請(專利權(quán))人: | 北京易捷思達(dá)科技發(fā)展有限公司 |
| 主分類號: | G06F12/02 | 分類號: | G06F12/02;G06F9/50 |
| 代理公司: | 北京卓唐知識產(chǎn)權(quán)代理有限公司 11541 | 代理人: | 卜榮麗 |
| 地址: | 100089 北京市海淀區(qū)西*** | 國省代碼: | 北京;11 |
| 權(quán)利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關(guān)鍵詞: | 應(yīng)用于 bcache 回收 方法 裝置 | ||
本申請公開了一種應(yīng)用于Bcache的回收方法及裝置,本申請的方法包括獲取非空閑的桶bucket,所述非空閑的桶bucket是包含臟數(shù)據(jù)和/或過期數(shù)據(jù)的緩存空間;將非空閑的bucket進行數(shù)據(jù)整合至空閑的bucket中,將非空閑的bucket的空間釋放;將釋放空間后的非空閑的bucket標(biāo)記為空閑的bucket,以增加空閑的bucket的數(shù)量。本申請是為了解決現(xiàn)有應(yīng)用于Bcache的垃圾回收機制影響緩存效果的問題。
技術(shù)領(lǐng)域
本申請涉及計算機數(shù)據(jù)處理技術(shù)領(lǐng)域,具體而言,涉及一種應(yīng)用于Bcache的回收方法及裝置。
背景技術(shù)
Bcache是一個Linux內(nèi)核塊設(shè)備的cache實現(xiàn)。它允許一個或多個高速存儲設(shè)備(caching盤)被用來當(dāng)做相對廉價的低速大容量設(shè)備(backing盤)的緩沖層。這樣對于用戶來說既可以得到低速HDD(機械硬盤)的大容量,同時因為訪問透過SSD(固態(tài)硬盤)緩沖,可以得到近似于SSD的訪問速度,并且整個訪問過程對于用戶來說是透明的,和一般訪問塊設(shè)備是一樣的使用方式。
Bcache設(shè)計過程中充分考慮SSD的特性,緩存設(shè)備會按照桶(bucket)大小劃分成很多bucket,bucket的大小是可配置的,通常是設(shè)置成與緩存SSD設(shè)備的擦除大小一致。這些bucket也就構(gòu)成了緩存空間。Bcache根據(jù)配置可以以不同的策略來使用bucket,包括LRU(最近最少使用策略),F(xiàn)IFO(先進先出策略),和Random(隨機選擇策略)。Bcache通過btree(多路搜索樹)來做LBA(邏輯區(qū)域地址)到caching設(shè)備數(shù)據(jù)位置的索引,即通過btree中的key來做LBA的index,pointer來指向bucket中數(shù)據(jù)的位置。
Bcache所提供的緩沖不僅是讀數(shù)據(jù)的時候會介入,對于寫操作它也可以通過打開writeback特性來提供緩沖。寫操作落到SSD上的數(shù)據(jù)在被回寫到backing設(shè)備之前會被稱做臟數(shù)據(jù),回寫功能會在后臺將這些數(shù)據(jù)陸續(xù)回刷到backing設(shè)備上。在緩存不斷使用過程中bucket會持續(xù)被分配占用,因此Bcache需要有bucket的回收機制,即Bcache的垃圾回收機制Garbage Collection機制,簡稱GC。GC會在幾個時機被喚醒,然后將沒有臟數(shù)據(jù)和元數(shù)據(jù)的bucket標(biāo)記為可以回收,進而再被回收放到空閑列表中。
發(fā)明人實施GC時發(fā)現(xiàn),只要有少量的臟數(shù)據(jù)就沒法回收,或者有大量的過期數(shù)據(jù)也無法回收,造成桶空間的利用率低,無法及時的將緩存空間釋放給用戶,影響緩沖效果,尤其是對于寫操作緩存要求高的場景下,影響更為明顯。
發(fā)明內(nèi)容
本申請的主要目的在于提供一種應(yīng)用于Bcache的回收方法及裝置,以解決現(xiàn)有應(yīng)用于Bcache的垃圾回收機制,影響緩存效果的問題。
為了實現(xiàn)上述目的,根據(jù)本申請的第一方面,提供了一種應(yīng)用于Bcache的回收方法。
根據(jù)本申請的應(yīng)用于Bcache的回收方法包括:
獲取非空閑的桶bucket,所述非空閑的桶bucket是包含臟數(shù)據(jù)和/或過期數(shù)據(jù)的緩存空間;
將非空閑的bucket進行數(shù)據(jù)整合至空閑的bucket中,將非空閑的bucket的空間釋放;
將釋放空間后的非空閑的bucket標(biāo)記為空閑的bucket,以增加空閑的bucket的數(shù)量。
可選的,所述將非空閑的bucket進行數(shù)據(jù)整合至空閑的bucket中包括:
將非空閑的bucket中的過期數(shù)據(jù)丟棄;
按照一個空閑的bucket占滿后再占用下一個空閑的bucket的規(guī)則,將非空閑的bucket中剩余的數(shù)據(jù)依次轉(zhuǎn)移到空閑的bucket中。
可選的,所述將非空閑的bucket進行數(shù)據(jù)整合至空閑的bucket中包括:
該專利技術(shù)資料僅供研究查看技術(shù)是否侵權(quán)等信息,商用須獲得專利權(quán)人授權(quán)。該專利全部權(quán)利屬于北京易捷思達(dá)科技發(fā)展有限公司,未經(jīng)北京易捷思達(dá)科技發(fā)展有限公司許可,擅自商用是侵權(quán)行為。如果您想購買此專利、獲得商業(yè)授權(quán)和技術(shù)合作,請聯(lián)系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/202010925765.1/2.html,轉(zhuǎn)載請聲明來源鉆瓜專利網(wǎng)。





