本發(fā)明涉及計(jì)算機(jī)應(yīng)用技術(shù)領(lǐng)域,特別是涉及一種基于分布式存儲(chǔ)的文件刪除方法及裝置。
背景技術(shù):
隨著互聯(lián)網(wǎng)大數(shù)據(jù)時(shí)代的到來,諸如視頻監(jiān)控、廣電媒資等應(yīng)用場景占用的數(shù)據(jù)份額較大,大量文件多是通過分布式存儲(chǔ)系統(tǒng)存儲(chǔ),需要的硬件資源非常多。底層存儲(chǔ)上的文件有的具有一定的時(shí)效性,也就是說,超過一定時(shí)間之后,有些文件可以被刪除,以使相應(yīng)的底層存儲(chǔ)資源能夠被重復(fù)利用。
在分布式存儲(chǔ)系統(tǒng)中,如果要?jiǎng)h除一個(gè)文件,在上層文件系統(tǒng)層面該文件屬于同步刪除,而該文件在底層存儲(chǔ)上的映射對(duì)象需要異步刪除。如果文件較大,如超過1tb,則需將該文件切割,如切割成4mb的條帶大小,這樣1tb的文件約有262144個(gè)4mb文件分布在所有底層存儲(chǔ)上,需要底層存儲(chǔ)異步刪除這些分割后的文件。但是如果當(dāng)前底層存儲(chǔ)處于高壓力的繁忙狀態(tài),則在刪除這些映射對(duì)象時(shí),就可能會(huì)由于映射對(duì)象過多影響底層存儲(chǔ)的其他io操作,甚至可能超出底層存儲(chǔ)的處理能力的上限,造成無法響應(yīng)上層文件系統(tǒng)的任何io操作的情況。
因此,如何在分布式存儲(chǔ)系統(tǒng)中進(jìn)行文件刪除,避免影響底層存儲(chǔ)各業(yè)務(wù)的正常運(yùn)轉(zhuǎn),是目前本領(lǐng)域技術(shù)人員急需解決的技術(shù)問題。
技術(shù)實(shí)現(xiàn)要素:
本發(fā)明的目的是提供一種基于分布式存儲(chǔ)的文件刪除方法及裝置,以保證在分布式存儲(chǔ)系統(tǒng)中進(jìn)行文件刪除時(shí),底層存儲(chǔ)各業(yè)務(wù)能夠正常運(yùn)轉(zhuǎn)。
為解決上述技術(shù)問題,本發(fā)明提供如下技術(shù)方案:
一種基于分布式存儲(chǔ)的文件刪除方法,該方法包括:
針對(duì)待刪除的目標(biāo)文件,生成所述目標(biāo)文件的刪除請(qǐng)求集合;
獲得所述刪除請(qǐng)求集合中每個(gè)刪除請(qǐng)求對(duì)應(yīng)的對(duì)象存儲(chǔ)設(shè)備的剩余處理能力;
針對(duì)每個(gè)對(duì)象存儲(chǔ)設(shè)備,根據(jù)該對(duì)象存儲(chǔ)設(shè)備的剩余處理能力,確定是否向該對(duì)象存儲(chǔ)設(shè)備下發(fā)刪除請(qǐng)求;
如果是,則進(jìn)一步從所述刪除請(qǐng)求集合中確定待發(fā)送的刪除請(qǐng)求,并將確定的待發(fā)送的刪除請(qǐng)求下發(fā)給該對(duì)象存儲(chǔ)設(shè)備,以使該對(duì)象存儲(chǔ)設(shè)備基于接收到的刪除請(qǐng)求執(zhí)行相應(yīng)的刪除文件操作。
優(yōu)選的,所述從所述刪除請(qǐng)求集合中確定待發(fā)送的刪除請(qǐng)求,包括:
確定各對(duì)象存儲(chǔ)設(shè)備當(dāng)前未處理完成的刪除請(qǐng)求的第一總和是否達(dá)到預(yù)設(shè)的刪除數(shù)量第一上限;
如果否,則根據(jù)所述刪除數(shù)量第一上限與所述第一總和的差值,從所述刪除請(qǐng)求集合中確定待發(fā)送的刪除請(qǐng)求。
優(yōu)選的,所述針對(duì)待刪除的目標(biāo)文件,生成所述目標(biāo)文件的刪除請(qǐng)求集合,包括:
針對(duì)待刪除的目標(biāo)文件,確定所述目標(biāo)文件的大??;
如果所述目標(biāo)文件的大小大于預(yù)設(shè)閾值,則按照設(shè)定條帶大小對(duì)所述目標(biāo)文件進(jìn)行切割操作,獲得多個(gè)切割對(duì)象;
生成每個(gè)切割對(duì)象對(duì)應(yīng)的刪除請(qǐng)求。
優(yōu)選的,還包括:
在對(duì)所述目標(biāo)文件進(jìn)行切割過程中,如果生成的切割對(duì)象的刪除請(qǐng)求與當(dāng)前未下發(fā)的刪除請(qǐng)求的第二總和達(dá)到預(yù)設(shè)的刪除數(shù)量第二上限,則暫停切割操作。
優(yōu)選的,在確定不向該對(duì)象存儲(chǔ)設(shè)備發(fā)送刪除請(qǐng)求時(shí),還包括:
將所述刪除請(qǐng)求集合中該對(duì)象存儲(chǔ)設(shè)備對(duì)應(yīng)的刪除請(qǐng)求均延后處理。
一種基于分布式存儲(chǔ)的文件刪除裝置,該裝置包括:
刪除請(qǐng)求集合生成模塊,用于針對(duì)待刪除的目標(biāo)文件,生成所述目標(biāo)文件的刪除請(qǐng)求集合;
剩余處理能力獲得模塊,用于獲得所述刪除請(qǐng)求集合中每個(gè)刪除請(qǐng)求對(duì)應(yīng)的對(duì)象存儲(chǔ)設(shè)備的剩余處理能力;
刪除請(qǐng)求確定模塊,用于針對(duì)每個(gè)對(duì)象存儲(chǔ)設(shè)備,根據(jù)該對(duì)象存儲(chǔ)設(shè)備的剩余處理能力,確定是否向該對(duì)象存儲(chǔ)設(shè)備下發(fā)刪除請(qǐng)求,如果是,則觸發(fā)刪除請(qǐng)求下發(fā)模塊;
刪除請(qǐng)求下發(fā)模塊,用于從所述刪除請(qǐng)求集合中確定待發(fā)送的刪除請(qǐng)求,并將確定的待發(fā)送的刪除請(qǐng)求下發(fā)給該對(duì)象存儲(chǔ)設(shè)備,以使該對(duì)象存儲(chǔ)設(shè)備基于接收到的刪除請(qǐng)求執(zhí)行相應(yīng)的刪除文件操作。
優(yōu)選的,所述刪除請(qǐng)求下發(fā)模塊,具體用于:
確定各對(duì)象存儲(chǔ)設(shè)備當(dāng)前未處理完成的刪除請(qǐng)求的第一總和是否達(dá)到預(yù)設(shè)的刪除數(shù)量第一上限;
如果否,則根據(jù)所述刪除數(shù)量第一上限與所述第一總和的差值,從所述刪除請(qǐng)求集合中確定待發(fā)送的刪除請(qǐng)求。
優(yōu)選的,所述刪除請(qǐng)求集合生成模塊,具體用于:
針對(duì)待刪除的目標(biāo)文件,確定所述目標(biāo)文件的大?。?/p>
如果所述目標(biāo)文件的大小大于預(yù)設(shè)閾值,則按照設(shè)定條帶大小對(duì)所述目標(biāo)文件進(jìn)行切割操作,獲得多個(gè)切割對(duì)象;
生成每個(gè)切割對(duì)象對(duì)應(yīng)的刪除請(qǐng)求。
優(yōu)選的,還包括切割操作暫停模塊,用于:
在對(duì)所述目標(biāo)文件進(jìn)行切割過程中,如果生成的切割對(duì)象的刪除請(qǐng)求與當(dāng)前未下發(fā)的刪除請(qǐng)求的第二總和達(dá)到預(yù)設(shè)的刪除數(shù)量第二上限,則暫停切割操作。
優(yōu)選的,還包括刪除請(qǐng)求延后模塊,用于:
在確定不向該對(duì)象存儲(chǔ)設(shè)備發(fā)送刪除請(qǐng)求時(shí),將所述刪除請(qǐng)求集合中該對(duì)象存儲(chǔ)設(shè)備對(duì)應(yīng)的刪除請(qǐng)求均延后處理。
應(yīng)用本發(fā)明實(shí)施例所提供的技術(shù)方案,針對(duì)待刪除的目標(biāo)文件,生成目標(biāo)文件的刪除請(qǐng)求集合,獲得刪除請(qǐng)求集合中每個(gè)刪除請(qǐng)求對(duì)應(yīng)的對(duì)象存儲(chǔ)設(shè)備的剩余處理能力,針對(duì)每個(gè)對(duì)象存儲(chǔ)設(shè)備,根據(jù)該對(duì)象存儲(chǔ)設(shè)備的剩余處理能力,確定是否向該對(duì)象存儲(chǔ)設(shè)備下發(fā)刪除請(qǐng)求,如果是,則進(jìn)一步從刪除請(qǐng)求集合中確定待發(fā)送的刪除請(qǐng)求,并將確定的待發(fā)送的刪除請(qǐng)求下發(fā)給該對(duì)象存儲(chǔ)設(shè)備,以使該對(duì)象存儲(chǔ)設(shè)備基于接收到的刪除請(qǐng)求執(zhí)行相應(yīng)的刪除文件操作。
通過獲取對(duì)象存儲(chǔ)設(shè)備的剩余處理能力,根據(jù)對(duì)象存儲(chǔ)設(shè)備的剩余處理能力確定是否向?qū)ο蟠鎯?chǔ)設(shè)備發(fā)送刪除請(qǐng)求,及要發(fā)送的刪除請(qǐng)求,這樣在對(duì)象存儲(chǔ)設(shè)備壓力較大時(shí),可以相應(yīng)減少向其發(fā)送的刪除請(qǐng)求的數(shù)量,在對(duì)象存儲(chǔ)設(shè)備壓力較小時(shí),可以相應(yīng)增加向其發(fā)送的刪除請(qǐng)求的數(shù)量,使得在進(jìn)行文件刪除時(shí),特別是超大文件的批量刪除,能夠有效提高底層存儲(chǔ)的工作效率,同時(shí)可以避免由于文件過大或者底層存儲(chǔ)的工作壓力過大等因素,導(dǎo)致在刪除文件時(shí),其他業(yè)務(wù)無法正常運(yùn)轉(zhuǎn)的問題。
附圖說明
為了更清楚地說明本發(fā)明實(shí)施例或現(xiàn)有技術(shù)中的技術(shù)方案,下面將對(duì)實(shí)施例或現(xiàn)有技術(shù)描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本發(fā)明的一些實(shí)施例,對(duì)于本領(lǐng)域普通技術(shù)人員來講,在不付出創(chuàng)造性勞動(dòng)的前提下,還可以根據(jù)這些附圖獲得其他的附圖。
圖1為本發(fā)明中一種基于分布式存儲(chǔ)的文件刪除方法的實(shí)施流程圖;
圖2為本發(fā)明中一種基于分布式存儲(chǔ)的文件刪除裝置的結(jié)構(gòu)示意圖。
具體實(shí)施方式
本發(fā)明的核心是提供一種基于分布式存儲(chǔ)的文件刪除方法,以使得在進(jìn)行文件刪除時(shí),特別是超大文件的批量刪除,能夠有效提高底層存儲(chǔ)的工作效率,并且避免出現(xiàn)由于文件過大或者底層存儲(chǔ)的工作壓力過大等因素,導(dǎo)致在刪除文件時(shí),其他業(yè)務(wù)無法正常運(yùn)轉(zhuǎn)的問題。
為了使本技術(shù)領(lǐng)域的人員更好地理解本發(fā)明方案,下面結(jié)合附圖和具體實(shí)施方式對(duì)本發(fā)明作進(jìn)一步的詳細(xì)說明。顯然,所描述的實(shí)施例僅僅是本發(fā)明一部分實(shí)施例,而不是全部的實(shí)施例?;诒景l(fā)明中的實(shí)施例,本領(lǐng)域普通技術(shù)人員在沒有做出創(chuàng)造性勞動(dòng)前提下所獲得的所有其他實(shí)施例,都屬于本發(fā)明保護(hù)的范圍。
請(qǐng)參考圖1,為本發(fā)明中一種基于分布式存儲(chǔ)的文件刪除方法的實(shí)施流程圖。該方法可以包括以下步驟:
s101:針對(duì)待刪除的目標(biāo)文件,生成目標(biāo)文件的刪除請(qǐng)求集合。
在實(shí)際應(yīng)用中,用戶可以根據(jù)需要下發(fā)刪除指令。根據(jù)用戶的刪除指令,可以確定待刪除的目標(biāo)文件。目標(biāo)文件可以是多個(gè)文件,也可以是一個(gè)文件。在接收到用戶下發(fā)的刪除指令時(shí),在元數(shù)據(jù)層面可以將文件進(jìn)行同步刪除,以使用戶能夠得到正確的響應(yīng),之后再啟動(dòng)一個(gè)異步線程,進(jìn)行真正在底層對(duì)象存儲(chǔ)設(shè)備上的數(shù)據(jù)刪除操作。
在確定出待刪除的目標(biāo)文件之后,針對(duì)目標(biāo)文件,生成目標(biāo)文件的刪除請(qǐng)求集合。待刪除的目標(biāo)文件可以是存儲(chǔ)在一個(gè)對(duì)象存儲(chǔ)設(shè)備上的文件,也可以是存儲(chǔ)在多個(gè)不同的對(duì)象存儲(chǔ)設(shè)備上的文件。目標(biāo)文件如果是超過1tb的超大文件,在生成目標(biāo)文件的刪除請(qǐng)求時(shí),可以通過對(duì)目標(biāo)文件進(jìn)行切割,針對(duì)每一個(gè)切割后的文件生成一個(gè)相應(yīng)的刪除請(qǐng)求。當(dāng)然,如果目標(biāo)文件為多個(gè)文件,則可以針對(duì)每一個(gè)目標(biāo)文件,生成一個(gè)對(duì)應(yīng)的刪除請(qǐng)求。生成的目標(biāo)文件的刪除請(qǐng)求構(gòu)成了刪除請(qǐng)求集合。對(duì)于生成的目標(biāo)文件的刪除請(qǐng)求集合,可以形成一個(gè)刪除請(qǐng)求隊(duì)列。
在生成目標(biāo)文件的刪除請(qǐng)求集合之后,可以進(jìn)行步驟s102的操作。
s102:獲得刪除請(qǐng)求集合中每個(gè)刪除請(qǐng)求對(duì)應(yīng)的對(duì)象存儲(chǔ)設(shè)備的剩余處理能力。
在步驟s101生成目標(biāo)文件的刪除請(qǐng)求集合,刪除請(qǐng)求集合中可以包含一個(gè)或多個(gè)刪除請(qǐng)求。分別確定出獲得的刪除請(qǐng)求集合中的每一個(gè)刪除請(qǐng)求對(duì)應(yīng)的對(duì)象存儲(chǔ)設(shè)備,例如可以通過刪除請(qǐng)求的索引編號(hào),得到該刪除請(qǐng)求對(duì)應(yīng)的對(duì)象存儲(chǔ)設(shè)備。
確定出每個(gè)刪除請(qǐng)求對(duì)應(yīng)的對(duì)象存儲(chǔ)設(shè)備之后,可以進(jìn)一步獲取這些對(duì)象存儲(chǔ)設(shè)備的剩余處理能力??梢詥?dòng)一個(gè)或多個(gè)線程,用于獲取每個(gè)對(duì)象存儲(chǔ)設(shè)備的剩余處理能力。
在本發(fā)明實(shí)施例中,剩余處理能力可以根據(jù)對(duì)象存儲(chǔ)設(shè)備的處理能力上限和當(dāng)前狀態(tài)下該對(duì)象存儲(chǔ)設(shè)備的待處理的io請(qǐng)求數(shù)量來決定,io請(qǐng)求可以包括刪除請(qǐng)求、讀取請(qǐng)求、寫入請(qǐng)求等。例如某一個(gè)對(duì)象存儲(chǔ)設(shè)備的處理上限為100ops(秒操作次數(shù)),當(dāng)前該對(duì)象存儲(chǔ)設(shè)備待處理的io請(qǐng)求數(shù)量為40,認(rèn)為該對(duì)象存儲(chǔ)設(shè)備的剩余處理能力為60。
在獲得每個(gè)刪除請(qǐng)求對(duì)應(yīng)的對(duì)象存儲(chǔ)設(shè)備的剩余處理能力之后,可以進(jìn)行s103的操作。
s103:針對(duì)每個(gè)對(duì)象存儲(chǔ)設(shè)備,根據(jù)該對(duì)象存儲(chǔ)設(shè)備的剩余處理能力,確定是否向該對(duì)象存儲(chǔ)設(shè)備下發(fā)刪除請(qǐng)求。
針對(duì)每個(gè)對(duì)象存儲(chǔ)設(shè)備,獲得該對(duì)象存儲(chǔ)設(shè)備的剩余處理能力之后,可以根據(jù)該對(duì)象存儲(chǔ)設(shè)備的剩余處理能力,確定是否向該對(duì)象存儲(chǔ)設(shè)備下發(fā)刪除請(qǐng)求。例如,可以設(shè)定一個(gè)剩余處理能力閾值,如果該對(duì)象存儲(chǔ)設(shè)備的剩余處理能力高于該剩余處理能力閾值,則確定可以向該對(duì)象存儲(chǔ)設(shè)備下發(fā)刪除請(qǐng)求。如果對(duì)象存儲(chǔ)設(shè)備的剩余處理能力低于該剩余處理能力閾值,則表明該對(duì)象存儲(chǔ)設(shè)備的剩余處理能力較低,如果此時(shí)仍向該對(duì)象存儲(chǔ)設(shè)備下發(fā)刪除請(qǐng)求,可能會(huì)影響該對(duì)象存儲(chǔ)設(shè)備的其他業(yè)務(wù)的正常運(yùn)轉(zhuǎn)。因此這種情況下可以不向該對(duì)象存儲(chǔ)設(shè)備下發(fā)刪除請(qǐng)求。
該剩余處理能力閾值可以根據(jù)實(shí)際場合進(jìn)行設(shè)定和調(diào)整,例如,如果需要確保對(duì)象存儲(chǔ)設(shè)備在進(jìn)行其他的io請(qǐng)求處理時(shí)能夠正常工作,或者降低對(duì)象存儲(chǔ)設(shè)備的負(fù)載,以保證前段碼流不丟幀,則可以設(shè)定較高的剩余處理能力閾值。如果確定不向該對(duì)象存儲(chǔ)設(shè)備下發(fā)刪除請(qǐng)求,則可以將刪除請(qǐng)求進(jìn)行延后處理,或者不做處理,即不下發(fā)刪除請(qǐng)求,如圖1所示。
在確定向該對(duì)象存儲(chǔ)設(shè)備下發(fā)刪除請(qǐng)求時(shí),可以繼續(xù)進(jìn)行s104的操作。
s104:從刪除請(qǐng)求集合中確定待發(fā)送的刪除請(qǐng)求,并將確定的待發(fā)送的刪除請(qǐng)求下發(fā)給該對(duì)象存儲(chǔ)設(shè)備,以使該對(duì)象存儲(chǔ)設(shè)備基于接收到的刪除請(qǐng)求執(zhí)行相應(yīng)的刪除文件操作。
針對(duì)每個(gè)對(duì)象存儲(chǔ)設(shè)備而言,在確定要向該對(duì)象存儲(chǔ)設(shè)備下發(fā)刪除請(qǐng)求后,可以從刪除請(qǐng)求集合中確定待發(fā)送的刪除請(qǐng)求。具體的,可以是根據(jù)該對(duì)象存儲(chǔ)設(shè)備的剩余處理能力,按照剩余處理能力的一個(gè)預(yù)設(shè)的比例,確定出待發(fā)送的刪除請(qǐng)求。例如,某對(duì)象存儲(chǔ)設(shè)備當(dāng)前剩余處理能力為60,其高于設(shè)定的剩余處理能力閾值10,可以確定要向該對(duì)象存儲(chǔ)設(shè)備下發(fā)刪除請(qǐng)求,如果預(yù)設(shè)的比例為20%,則在該種情況下,從刪除請(qǐng)求集合中確定出的,對(duì)應(yīng)于該對(duì)象存儲(chǔ)設(shè)備的待發(fā)送的刪除請(qǐng)求數(shù)量即為12個(gè),按照該數(shù)量即可確定出待發(fā)送的刪除請(qǐng)求。
針對(duì)每個(gè)對(duì)象存儲(chǔ)設(shè)備,在確定出待發(fā)送的刪除請(qǐng)求后,可以將刪除請(qǐng)求下發(fā)送給該對(duì)象存儲(chǔ)設(shè)備。對(duì)象存儲(chǔ)設(shè)備接收到刪除請(qǐng)求后,可以刪除其接收到的刪除請(qǐng)求對(duì)應(yīng)的文件。
應(yīng)用本發(fā)明實(shí)施例所提供的方法,針對(duì)待刪除的目標(biāo)文件,生成目標(biāo)文件的刪除請(qǐng)求集合,獲得刪除請(qǐng)求集合中每個(gè)刪除請(qǐng)求對(duì)應(yīng)的對(duì)象存儲(chǔ)設(shè)備的剩余處理能力,針對(duì)每個(gè)對(duì)象存儲(chǔ)設(shè)備,根據(jù)該對(duì)象存儲(chǔ)設(shè)備的剩余處理能力,確定是否向該對(duì)象存儲(chǔ)設(shè)備下發(fā)刪除請(qǐng)求,如果是,則進(jìn)一步從刪除請(qǐng)求集合中確定待發(fā)送的刪除請(qǐng)求,并將確定的待發(fā)送的刪除請(qǐng)求下發(fā)給該對(duì)象存儲(chǔ)設(shè)備,以使該對(duì)象存儲(chǔ)設(shè)備基于接收到的刪除請(qǐng)求執(zhí)行相應(yīng)的刪除文件操作。
通過獲取對(duì)象存儲(chǔ)設(shè)備的剩余處理能力,根據(jù)對(duì)象存儲(chǔ)設(shè)備的剩余處理能力確定是否向?qū)ο蟠鎯?chǔ)設(shè)備發(fā)送刪除請(qǐng)求,及要發(fā)送的刪除請(qǐng)求,這樣在對(duì)象存儲(chǔ)設(shè)備壓力較大時(shí),可以相應(yīng)減少向其發(fā)送的刪除請(qǐng)求的數(shù)量,在對(duì)象存儲(chǔ)設(shè)備壓力較小時(shí),可以相應(yīng)增加向其發(fā)送的刪除請(qǐng)求的數(shù)量,使得在進(jìn)行文件刪除時(shí),特別是超大文件的批量刪除,能夠有效提高底層存儲(chǔ)的工作效率,同時(shí)可以避免由于文件過大或者底層存儲(chǔ)的工作壓力過大等因素,導(dǎo)致在刪除文件時(shí),其他業(yè)務(wù)無法正常運(yùn)轉(zhuǎn)的問題。
在本發(fā)明的一種具體實(shí)施方式中,步驟s104中的從刪除請(qǐng)求集合中確定待發(fā)送的刪除請(qǐng)求,可以包括以下步驟:
步驟一:確定各對(duì)象存儲(chǔ)設(shè)備當(dāng)前未處理完成的刪除請(qǐng)求的第一總和是否達(dá)到預(yù)設(shè)的刪除數(shù)量第一上限;
步驟二:如果否,則根據(jù)刪除數(shù)量第一上限與第一總和的差值,從刪除請(qǐng)求集合中確定待發(fā)送的刪除請(qǐng)求。
為了便于描述,將上述兩個(gè)步驟進(jìn)行合并說明。
為了確保對(duì)象存儲(chǔ)設(shè)備能夠處理突發(fā)的io請(qǐng)求,可以采用本發(fā)明的該種實(shí)施方式。確定出每個(gè)對(duì)象存儲(chǔ)設(shè)備當(dāng)前未處理完成的刪除請(qǐng)求的數(shù)量,并且計(jì)算所有對(duì)象存儲(chǔ)設(shè)備當(dāng)前未處理完成的刪除請(qǐng)求的數(shù)量和,可以得到第一總和,可以通過第一總和得出對(duì)象存儲(chǔ)設(shè)備的總體的剩余處理能力。第一總和越大,則對(duì)象存儲(chǔ)設(shè)備的總體的剩余處理能力越低。
預(yù)設(shè)一個(gè)刪除數(shù)量第一上限,確定第一總和是否達(dá)到預(yù)設(shè)的刪除數(shù)量第一上限,如果達(dá)到了,則說明對(duì)象存儲(chǔ)設(shè)備的總體的剩余處理能力過低,此時(shí)不適合下發(fā)刪除請(qǐng)求。如果第一總和低于預(yù)設(shè)的刪除數(shù)量第一上限,則說明對(duì)象存儲(chǔ)設(shè)備的總體的剩余處理能力可以滿足處理突發(fā)的io請(qǐng)求的條件,可以將刪除數(shù)量第一上限減去第一總和,得到差值。根據(jù)該差值,可以從刪除請(qǐng)求集合中確定出待發(fā)送的刪除請(qǐng)求,如從刪除請(qǐng)求集合中確定出數(shù)量等同于該差值的待發(fā)送的刪除請(qǐng)求。
在本發(fā)明的一種具體實(shí)施方式中,步驟s101具體包括以下步驟:
步驟一:針對(duì)待刪除的目標(biāo)文件,確定目標(biāo)文件的大??;
步驟二:如果目標(biāo)文件的大小大于預(yù)設(shè)閾值,則按照設(shè)定條帶大小對(duì)目標(biāo)文件進(jìn)行切割操作,獲得多個(gè)切割對(duì)象;
步驟三:生成每個(gè)切割對(duì)象對(duì)應(yīng)的刪除請(qǐng)求。
為了便于描述,將上述步驟進(jìn)行合并說明。
在確定待刪除的目標(biāo)文件后,可以先確定目標(biāo)文件的大小。將目標(biāo)文件的大小和預(yù)設(shè)閾值進(jìn)行對(duì)比。如果目標(biāo)文件的大小大于預(yù)設(shè)閾值,則目標(biāo)文件可能為大文件,可以按照設(shè)定條帶大小對(duì)目標(biāo)文件進(jìn)行切割操作,獲得多個(gè)切割對(duì)象。通??梢詫l帶大小設(shè)為4mb大小。對(duì)于每一個(gè)切割對(duì)象,可以生成與各個(gè)切割對(duì)象對(duì)應(yīng)的刪除請(qǐng)求??梢詫⑦@些生成的刪除請(qǐng)求,按照生成順序進(jìn)行排列,放入隊(duì)列中,得到一個(gè)刪除請(qǐng)求隊(duì)列。
在本發(fā)明的一種具體實(shí)施方式中,在對(duì)目標(biāo)文件進(jìn)行切割過程中,如果生成的切割對(duì)象的刪除請(qǐng)求與當(dāng)前未下發(fā)的刪除請(qǐng)求的第二總和達(dá)到預(yù)設(shè)的刪除數(shù)量第二上限,則暫停切割操作。
可以將生成的刪除請(qǐng)求的數(shù)量控制在一個(gè)數(shù)值之內(nèi),稱為刪除數(shù)量第二上限,在對(duì)目標(biāo)文件進(jìn)行切割的過程中,可以計(jì)算生成的切割對(duì)象的刪除請(qǐng)求與當(dāng)前未下發(fā)的刪除請(qǐng)求的第二總和,當(dāng)?shù)诙偤瓦_(dá)到預(yù)設(shè)的刪除數(shù)量第二上限時(shí),可以將切割操作暫停。
刪除數(shù)量第二上限可以根據(jù)實(shí)際場合進(jìn)行設(shè)定和調(diào)整,如預(yù)設(shè)為一萬個(gè)。在計(jì)算第二總和時(shí),也可以根據(jù)實(shí)際情況,按照預(yù)設(shè)的周期進(jìn)行第二總和的計(jì)算,也可以在收到對(duì)象存儲(chǔ)設(shè)備針對(duì)刪除請(qǐng)求做出的回執(zhí)時(shí),計(jì)算第二總和。當(dāng)對(duì)象存儲(chǔ)設(shè)備成功完成下發(fā)的刪除請(qǐng)求并正確發(fā)送回執(zhí)的時(shí)候,可以繼續(xù)向?qū)ο蟠鎯?chǔ)設(shè)備下發(fā)刪除請(qǐng)求,從而可以繼續(xù)對(duì)目標(biāo)文件進(jìn)行切割,直至目標(biāo)文件切割完畢或者第二總和再次達(dá)到預(yù)設(shè)的刪除數(shù)量第二上限。
需要指出的是,以上方案的選取,并不影響本發(fā)明的實(shí)施。
在本發(fā)明的一種具體實(shí)施方式中,在確定不向該對(duì)象存儲(chǔ)設(shè)備發(fā)送刪除請(qǐng)求時(shí),還可以包括:
將刪除請(qǐng)求集合中該對(duì)象存儲(chǔ)設(shè)備對(duì)應(yīng)的刪除請(qǐng)求均延后處理。
針對(duì)每個(gè)對(duì)象存儲(chǔ)設(shè)備,當(dāng)該對(duì)象存儲(chǔ)設(shè)備的剩余處理能力表明該對(duì)象存儲(chǔ)設(shè)備的壓力過高時(shí),可以將該對(duì)象存儲(chǔ)設(shè)備對(duì)應(yīng)的刪除請(qǐng)求均延后處理。具體的,可以檢測刪除請(qǐng)求隊(duì)列,提取出該對(duì)象存儲(chǔ)設(shè)備對(duì)應(yīng)的全部刪除請(qǐng)求,將這些刪除請(qǐng)求均進(jìn)行延后處理。例如可以將這些刪除請(qǐng)求移動(dòng)到刪除請(qǐng)求隊(duì)列的尾部。當(dāng)然,也可以在確定出該對(duì)象存儲(chǔ)設(shè)備的壓力過高時(shí),在刪除請(qǐng)求隊(duì)列順序下發(fā)刪除請(qǐng)求的過程中,出現(xiàn)該對(duì)象存儲(chǔ)設(shè)備對(duì)應(yīng)的刪除請(qǐng)求時(shí),將該刪除請(qǐng)求移動(dòng)到隊(duì)列尾。這樣,可以避免對(duì)象存儲(chǔ)設(shè)備的壓力過大影響其他業(yè)務(wù)的正常運(yùn)轉(zhuǎn)。
相應(yīng)于上面的方法實(shí)施例,本發(fā)明實(shí)施例還提供了一種基于分布式存儲(chǔ)的文件刪除裝置,下文描述的一種基于分布式存儲(chǔ)的文件刪除裝置與上文描述的一種基于分布式存儲(chǔ)的文件刪除方法可相互對(duì)應(yīng)參照。
參見圖2所示,為本發(fā)明中一種基于分布式存儲(chǔ)的文件刪除裝置的結(jié)構(gòu)示意圖。該裝置包括:
刪除請(qǐng)求集合生成模塊201,用于針對(duì)待刪除的目標(biāo)文件,生成目標(biāo)文件的刪除請(qǐng)求集合;
剩余處理能力獲得模塊202,用于獲得刪除請(qǐng)求集合中每個(gè)刪除請(qǐng)求對(duì)應(yīng)的對(duì)象存儲(chǔ)設(shè)備的剩余處理能力;
刪除請(qǐng)求確定模塊203,用于針對(duì)每個(gè)對(duì)象存儲(chǔ)設(shè)備,根據(jù)該對(duì)象存儲(chǔ)設(shè)備的剩余處理能力,確定是否向該對(duì)象存儲(chǔ)設(shè)備下發(fā)刪除請(qǐng)求,如果是,則觸發(fā)刪除請(qǐng)求下發(fā)模塊204;
刪除請(qǐng)求下發(fā)模塊204,用于從刪除請(qǐng)求集合中確定待發(fā)送的刪除請(qǐng)求,并將確定的待發(fā)送的刪除請(qǐng)求下發(fā)給該對(duì)象存儲(chǔ)設(shè)備,以使該對(duì)象存儲(chǔ)設(shè)備基于接收到的刪除請(qǐng)求執(zhí)行相應(yīng)的刪除文件操作。
應(yīng)用本發(fā)明實(shí)施例所提供的裝置,針對(duì)待刪除的目標(biāo)文件,生成目標(biāo)文件的刪除請(qǐng)求集合,獲得刪除請(qǐng)求集合中每個(gè)刪除請(qǐng)求對(duì)應(yīng)的對(duì)象存儲(chǔ)設(shè)備的剩余處理能力,針對(duì)每個(gè)對(duì)象存儲(chǔ)設(shè)備,根據(jù)該對(duì)象存儲(chǔ)設(shè)備的剩余處理能力,確定是否向該對(duì)象存儲(chǔ)設(shè)備下發(fā)刪除請(qǐng)求,如果是,則進(jìn)一步從刪除請(qǐng)求集合中確定待發(fā)送的刪除請(qǐng)求,并將確定的待發(fā)送的刪除請(qǐng)求下發(fā)給該對(duì)象存儲(chǔ)設(shè)備,以使該對(duì)象存儲(chǔ)設(shè)備基于接收到的刪除請(qǐng)求執(zhí)行相應(yīng)的刪除文件操作。
通過獲取對(duì)象存儲(chǔ)設(shè)備的剩余處理能力,根據(jù)對(duì)象存儲(chǔ)設(shè)備的剩余處理能力確定是否向?qū)ο蟠鎯?chǔ)設(shè)備發(fā)送刪除請(qǐng)求,及要發(fā)送的刪除請(qǐng)求,這樣在對(duì)象存儲(chǔ)設(shè)備壓力較大時(shí),可以相應(yīng)減少向其發(fā)送的刪除請(qǐng)求的數(shù)量,在對(duì)象存儲(chǔ)設(shè)備壓力較小時(shí),可以相應(yīng)增加向其發(fā)送的刪除請(qǐng)求的數(shù)量,使得在進(jìn)行文件刪除時(shí),特別是超大文件的批量刪除,能夠有效提高底層存儲(chǔ)的工作效率,同時(shí)可以避免由于文件過大或者底層存儲(chǔ)的工作壓力過大等因素,導(dǎo)致在刪除文件時(shí),其他業(yè)務(wù)無法正常運(yùn)轉(zhuǎn)的問題。
在本發(fā)明的一種具體實(shí)施方式中,刪除請(qǐng)求下發(fā)模塊204,具體用于:
確定各對(duì)象存儲(chǔ)設(shè)備當(dāng)前未處理完成的刪除請(qǐng)求的第一總和是否達(dá)到預(yù)設(shè)的刪除數(shù)量第一上限;
如果否,則根據(jù)刪除數(shù)量第一上限與第一總和的差值,從刪除請(qǐng)求集合中確定待發(fā)送的刪除請(qǐng)求。
在本發(fā)明的一種具體實(shí)施方式中,刪除請(qǐng)求集合生成模塊201,具體用于:
針對(duì)待刪除的目標(biāo)文件,確定目標(biāo)文件的大??;
如果目標(biāo)文件的大小大于預(yù)設(shè)閾值,則按照設(shè)定條帶大小對(duì)目標(biāo)文件進(jìn)行切割操作,獲得多個(gè)切割對(duì)象;
生成每個(gè)切割對(duì)象對(duì)應(yīng)的刪除請(qǐng)求。
在本發(fā)明的一種具體實(shí)施方式中,還包括切割操作暫停模塊,用于:
在對(duì)目標(biāo)文件進(jìn)行切割過程中,如果生成的切割對(duì)象的刪除請(qǐng)求與當(dāng)前未下發(fā)的刪除請(qǐng)求的第二總和達(dá)到預(yù)設(shè)的刪除數(shù)量第二上限,則暫停切割操作。
在本發(fā)明的一種具體實(shí)施方式中,還包括刪除請(qǐng)求延后模塊,用于:
在確定不向該對(duì)象存儲(chǔ)設(shè)備發(fā)送刪除請(qǐng)求時(shí),將刪除請(qǐng)求集合中該對(duì)象存儲(chǔ)設(shè)備對(duì)應(yīng)的刪除請(qǐng)求均延后處理。
本說明書中各個(gè)實(shí)施例采用遞進(jìn)的方式描述,每個(gè)實(shí)施例重點(diǎn)說明的都是與其它實(shí)施例的不同之處,各個(gè)實(shí)施例之間相同或相似部分互相參見即可。對(duì)于實(shí)施例公開的裝置而言,由于其與實(shí)施例公開的方法相對(duì)應(yīng),所以描述的比較簡單,相關(guān)之處參見方法部分說明即可。
專業(yè)人員還可以進(jìn)一步意識(shí)到,結(jié)合本文中所公開的實(shí)施例描述的各示例的單元及算法步驟,能夠以電子硬件、計(jì)算機(jī)軟件或者二者的結(jié)合來實(shí)現(xiàn),為了清楚地說明硬件和軟件的可互換性,在上述說明中已經(jīng)按照功能一般性地描述了各示例的組成及步驟。這些功能究竟以硬件還是軟件方式來執(zhí)行,取決于技術(shù)方案的特定應(yīng)用和設(shè)計(jì)約束條件。專業(yè)技術(shù)人員可以對(duì)每個(gè)特定的應(yīng)用來使用不同方法來實(shí)現(xiàn)所描述的功能,但是這種實(shí)現(xiàn)不應(yīng)認(rèn)為超出本發(fā)明的范圍。
結(jié)合本文中所公開的實(shí)施例描述的方法或算法的步驟可以直接用硬件、處理器執(zhí)行的軟件模塊,或者二者的結(jié)合來實(shí)施。軟件模塊可以置于隨機(jī)存儲(chǔ)器(ram)、內(nèi)存、只讀存儲(chǔ)器(rom)、電可編程rom、電可擦除可編程rom、寄存器、硬盤、可移動(dòng)磁盤、cd-rom、或技術(shù)領(lǐng)域內(nèi)所公知的任意其它形式的存儲(chǔ)介質(zhì)中。
本文中應(yīng)用了具體個(gè)例對(duì)本發(fā)明的原理及實(shí)施方式進(jìn)行了闡述,以上實(shí)施例的說明只是用于幫助理解本發(fā)明的技術(shù)方案及其核心思想。應(yīng)當(dāng)指出,對(duì)于本技術(shù)領(lǐng)域的普通技術(shù)人員來說,在不脫離本發(fā)明原理的前提下,還可以對(duì)本發(fā)明進(jìn)行若干改進(jìn)和修飾,這些改進(jìn)和修飾也落入本發(fā)明權(quán)利要求的保護(hù)范圍內(nèi)。