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

一種文件刪除方法及系統(tǒng)與流程

文檔序號:11199292閱讀:390來源:國知局
一種文件刪除方法及系統(tǒng)與流程

本發(fā)明涉及分布式存儲系統(tǒng)技術(shù)領(lǐng)域,更具體地說,涉及一種文件刪除方法及系統(tǒng)。



背景技術(shù):

隨著互聯(lián)網(wǎng)時(shí)代的到來,微博、微信、網(wǎng)購等面向普通互聯(lián)網(wǎng)用戶的網(wǎng)站正在蓬勃興起,互聯(lián)網(wǎng)界的巨頭公司向數(shù)以億計(jì)的用戶提供著基于互聯(lián)網(wǎng)的各種服務(wù)。遍布世界各地的互聯(lián)網(wǎng)用戶每天都在網(wǎng)上發(fā)布信息,他們產(chǎn)生的這些數(shù)據(jù)是個(gè)人計(jì)算機(jī)的數(shù)據(jù)量的數(shù)倍。

為了隨時(shí)應(yīng)對激增的用戶請求,越來越多的公司采用分布式存儲系統(tǒng)。分布式存儲系統(tǒng)具有高可靠性、高可用性和高擴(kuò)展性,可以避免由于單個(gè)節(jié)點(diǎn)失效而使整個(gè)系統(tǒng)崩潰的危險(xiǎn)。傳統(tǒng)方案中,當(dāng)多個(gè)客戶端同時(shí)訪問分布式文件系統(tǒng),文件系統(tǒng)會記錄每一個(gè)文件的索引節(jié)點(diǎn)的計(jì)數(shù),當(dāng)索引節(jié)點(diǎn)引用計(jì)數(shù)為0時(shí),回收線程會把該文件刪除。但是如果編寫客戶端程序的開發(fā)人員因?yàn)槟承┰蛲浟酸尫乓茫瑢?dǎo)致后端的文件永遠(yuǎn)無法刪除。因此,如何有效的對分布式存儲系統(tǒng)中的文件進(jìn)行刪除是一項(xiàng)亟待解決的問題。



技術(shù)實(shí)現(xiàn)要素:

有鑒于此,本發(fā)明的目的在于提供一種文件刪除方法及系統(tǒng),能夠有效的對分布式存儲系統(tǒng)中的文件進(jìn)行刪除,能夠有效解決系統(tǒng)空間不釋放的問題。

為實(shí)現(xiàn)上述目的,本發(fā)明提供如下技術(shù)方案:

一種文件刪除方法,應(yīng)用于分布式存儲系統(tǒng),所述方法包括:

將所述分布式存儲系統(tǒng)作為存儲系統(tǒng)的后端,客戶端調(diào)用所述分布式存儲系統(tǒng)的接口讀寫文件;

所述分布式存儲系統(tǒng)分配索引節(jié)點(diǎn)指針至所述客戶端;

基于所述索引節(jié)點(diǎn)指針刪除所述分布式存儲系統(tǒng)中的文件。

優(yōu)選地,所述索引節(jié)點(diǎn)指針為智能指針。

優(yōu)選地,所述基于所述索引節(jié)點(diǎn)指針刪除所述分布式存儲系統(tǒng)中的文件具體為:

智能指針類將一個(gè)計(jì)數(shù)器與類指向的對象相關(guān)聯(lián),引用計(jì)數(shù)跟蹤該類共享同一指針的對象;

創(chuàng)建類的新對象時(shí),初始化指針并將引用計(jì)數(shù)置為1,當(dāng)對象作為另一對象的副本而創(chuàng)建時(shí),拷貝構(gòu)造函數(shù)拷貝指針并增加與之相應(yīng)的引用計(jì)數(shù);

對一個(gè)對象進(jìn)行賦值是,賦值操作符減少左操作數(shù)所指對象的引用計(jì)數(shù),并增加右操作數(shù)所指對象的引用計(jì)數(shù),當(dāng)引用計(jì)數(shù)減至0時(shí),刪除對象;

在調(diào)用析構(gòu)函數(shù)時(shí),構(gòu)造函數(shù)減少引用計(jì)數(shù),當(dāng)引用計(jì)數(shù)減至0時(shí),刪除基礎(chǔ)對象。

一種文件刪除系統(tǒng),應(yīng)用于分布式存儲系統(tǒng),所述系統(tǒng)包括:

調(diào)用模塊,用于將所述分布式存儲系統(tǒng)作為存儲系統(tǒng)的后端,客戶端調(diào)用所述分布式存儲系統(tǒng)的接口讀寫文件;

分配模塊,用于所述分布式存儲系統(tǒng)分配索引節(jié)點(diǎn)指針至所述客戶端;

刪除模塊,用于基于所述索引節(jié)點(diǎn)指針刪除所述分布式存儲系統(tǒng)中的文件。

優(yōu)選地,所述索引節(jié)點(diǎn)指針為智能指針。

優(yōu)選地,所述刪除模塊具體用于:

智能指針類將一個(gè)計(jì)數(shù)器與類指向的對象相關(guān)聯(lián),引用計(jì)數(shù)跟蹤該類共享同一指針的對象;

創(chuàng)建類的新對象時(shí),初始化指針并將引用計(jì)數(shù)置為1,當(dāng)對象作為另一對象的副本而創(chuàng)建時(shí),拷貝構(gòu)造函數(shù)拷貝指針并增加與之相應(yīng)的引用計(jì)數(shù);

對一個(gè)對象進(jìn)行賦值是,賦值操作符減少左操作數(shù)所指對象的引用計(jì)數(shù),并增加右操作數(shù)所指對象的引用計(jì)數(shù),當(dāng)引用計(jì)數(shù)減至0時(shí),刪除對象;

在調(diào)用析構(gòu)函數(shù)時(shí),構(gòu)造函數(shù)減少引用計(jì)數(shù),當(dāng)引用計(jì)數(shù)減至0時(shí),刪除基礎(chǔ)對象。

由上述技術(shù)方案可知,本發(fā)明提供了一種文件刪除方法,當(dāng)需要對分布式存儲系統(tǒng)中的文件進(jìn)行刪除時(shí),首先將分布式存儲系統(tǒng)作為存儲系統(tǒng)的后端,客戶端調(diào)用分布式存儲系統(tǒng)的接口讀寫文件,然后分布式存儲系統(tǒng)分配索引節(jié)點(diǎn)指針至客戶端,然后基于索引節(jié)點(diǎn)指針刪除分布式存儲系統(tǒng)中的文件,能夠有效的對分布式存儲系統(tǒng)中的文件進(jìn)行刪除,能夠有效解決系統(tǒng)空間不釋放的問題。

附圖說明

為了更清楚地說明本發(fā)明實(shí)施例或現(xiàn)有技術(shù)中的技術(shù)方案,下面將對實(shí)施例或現(xiàn)有技術(shù)描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本發(fā)明的一些實(shí)施例,對于本領(lǐng)域普通技術(shù)人員來講,在不付出創(chuàng)造性勞動的前提下,還可以根據(jù)這些附圖獲得其它的附圖。

圖1為本發(fā)明公開的一種文件刪除方法實(shí)施例1的方法流程圖;

圖2為本發(fā)明公開的一種文件刪除方法實(shí)施例2的方法流程圖;

圖3為本發(fā)明公開的一種文件刪除系統(tǒng)實(shí)施例1的結(jié)構(gòu)示意圖;

圖4為本發(fā)明公開的一種文件刪除系統(tǒng)實(shí)施例2的結(jié)構(gòu)示意圖。

具體實(shí)施方式

下面將結(jié)合本發(fā)明實(shí)施例中的附圖,對本發(fā)明實(shí)施例中的技術(shù)方案進(jìn)行清楚、完整地描述,顯然,所描述的實(shí)施例僅僅是本發(fā)明一部分實(shí)施例,而不是全部的實(shí)施例。基于本發(fā)明中的實(shí)施例,本領(lǐng)域普通技術(shù)人員在沒有做出創(chuàng)造性勞動前提下所獲得的所有其它實(shí)施例,都屬于本發(fā)明保護(hù)的范圍。

為了更加特定地強(qiáng)調(diào)實(shí)施的獨(dú)立性,本說明書涉及許多模塊或單元。舉例而言,模塊或單元可由硬件電路實(shí)現(xiàn),該硬件電路包括特制vlsi電路或門陣列,比如邏輯芯片、晶體管,或其它組件。模塊或單元也可在可編程的硬設(shè)備中實(shí)現(xiàn),比如場效可編程門陣列、可編程陣列邏輯、可編程邏輯設(shè)備等等。

模塊或單元也可在藉由各種形式的處理器所執(zhí)行的軟件中實(shí)現(xiàn)。比如說,一可執(zhí)行碼模塊可包括一個(gè)或多個(gè)實(shí)體的或邏輯的計(jì)算機(jī)指令區(qū)塊,該區(qū)塊可能形成為,比如說,對象、程序或函數(shù)。然而,鑒別模塊或單元的可執(zhí)行部分不需要物理上放置在一起,但可由存于不同位置的不同指令所組成,當(dāng)邏輯上組合在一起時(shí),形成模塊或單元且達(dá)到該模塊或單元所要求的目的。

實(shí)際上,可執(zhí)行碼模塊或單元可以是一單一指令或多個(gè)指令,甚至可以分布在位于不同的程序的數(shù)個(gè)不同的碼區(qū)段,并且橫跨數(shù)個(gè)存儲設(shè)備。同樣地,操作數(shù)據(jù)可被辨識及顯示于此模塊或單元中,并且可以以任何合適的形式實(shí)施且在任何合適的數(shù)據(jù)結(jié)構(gòu)形式內(nèi)組織。操作數(shù)據(jù)可以集合成單一數(shù)據(jù)集,或可分布在具有不同的存儲設(shè)備的不同的位置,且至少部分地只以電子信號方式存在于一系統(tǒng)或網(wǎng)絡(luò)。

本說明書所提及的“實(shí)施例”或類似用語表示與實(shí)施例有關(guān)的特性、結(jié)構(gòu)或特征,包括在本發(fā)明的至少一實(shí)施例中。因此,本說明書所出現(xiàn)的用語“在一實(shí)施例中”、“在實(shí)施例中”以及類似用語可能但不必然都指向相同實(shí)施例。

再者,本發(fā)明所述特性、結(jié)構(gòu)或特征可以以任何方式結(jié)合在一個(gè)或多個(gè)實(shí)施例中。以下說明將提供許多特定的細(xì)節(jié),比如編程序、軟件模塊、用戶選擇、網(wǎng)絡(luò)交易、數(shù)據(jù)庫查詢、數(shù)據(jù)庫結(jié)構(gòu)、硬件模塊、硬件電路、硬件芯片等例子,以提供對本發(fā)明實(shí)施例的了解。然而相關(guān)領(lǐng)域的普通技術(shù)人員將看出本發(fā)明,即使沒有利用其中一個(gè)或多個(gè)特定細(xì)節(jié),或利用其它方法、組件、材料等亦可實(shí)施。另一方面,為避免混淆本發(fā)明,公知的結(jié)構(gòu)、材料或操作并沒有詳細(xì)描述。

如圖1所示,為本發(fā)明公開的一種文件刪除方法實(shí)施例1的流程圖,該方法應(yīng)用于分布式存儲系統(tǒng),本方法包括以下步驟:

s101、將分布式存儲系統(tǒng)作為存儲系統(tǒng)的后端,客戶端調(diào)用分布式存儲系統(tǒng)的接口讀寫文件;

當(dāng)需要對分布式存儲系統(tǒng)中的文件進(jìn)行刪除時(shí),首先將分布式存儲系統(tǒng)作為存儲系統(tǒng)的后端,然后客戶端調(diào)用分布式存儲系統(tǒng)的接口讀寫文件。

s102、分布式存儲系統(tǒng)分配索引節(jié)點(diǎn)指針至客戶端;

然后分布式存儲系統(tǒng)給客戶端分配inode指針。

s103、基于索引節(jié)點(diǎn)指針刪除分布式存儲系統(tǒng)中的文件。

然后根據(jù)分配的inode指針對分布式存儲系統(tǒng)中的文件進(jìn)行刪除處理,其中,分配的inode指針為智能指針。智能指針是存儲指向動態(tài)分配對象指針的類,用于生存期控制,能夠確保自動正確的銷毀動態(tài)分配的對象,防止內(nèi)存泄露,它的一種通用實(shí)現(xiàn)技術(shù)是使用引用計(jì)數(shù)。

綜上所述,在上述實(shí)施例中,當(dāng)需要對分布式存儲系統(tǒng)中的文件進(jìn)行刪除時(shí),首先將分布式存儲系統(tǒng)作為存儲系統(tǒng)的后端,客戶端調(diào)用分布式存儲系統(tǒng)的接口讀寫文件,然后分布式存儲系統(tǒng)分配索引節(jié)點(diǎn)指針至客戶端,然后基于索引節(jié)點(diǎn)指針刪除分布式存儲系統(tǒng)中的文件,能夠有效的對分布式存儲系統(tǒng)中的文件進(jìn)行刪除,能夠有效解決系統(tǒng)空間不釋放的問題。

如圖2所示,為本發(fā)明公開的一種文件刪除方法實(shí)施例2的流程圖,該方法應(yīng)用于分布式存儲系統(tǒng),本方法包括以下步驟:

s201、將分布式存儲系統(tǒng)作為存儲系統(tǒng)的后端,客戶端調(diào)用分布式存儲系統(tǒng)的接口讀寫文件;

當(dāng)需要對分布式存儲系統(tǒng)中的文件進(jìn)行刪除時(shí),首先將分布式存儲系統(tǒng)作為存儲系統(tǒng)的后端,然后客戶端調(diào)用分布式存儲系統(tǒng)的接口讀寫文件。

s202、分布式存儲系統(tǒng)分配索引節(jié)點(diǎn)指針至客戶端;

然后分布式存儲系統(tǒng)給客戶端分配inode指針。

s203、智能指針類將一個(gè)計(jì)數(shù)器與類指向的對象相關(guān)聯(lián),引用計(jì)數(shù)跟蹤該類共享同一指針的對象;

創(chuàng)建類的新對象時(shí),初始化指針并將引用計(jì)數(shù)置為1,當(dāng)對象作為另一對象的副本而創(chuàng)建時(shí),拷貝構(gòu)造函數(shù)拷貝指針并增加與之相應(yīng)的引用計(jì)數(shù);

對一個(gè)對象進(jìn)行賦值是,賦值操作符減少左操作數(shù)所指對象的引用計(jì)數(shù),并增加右操作數(shù)所指對象的引用計(jì)數(shù),當(dāng)引用計(jì)數(shù)減至0時(shí),刪除對象;

在調(diào)用析構(gòu)函數(shù)時(shí),構(gòu)造函數(shù)減少引用計(jì)數(shù),當(dāng)引用計(jì)數(shù)減至0時(shí),刪除基礎(chǔ)對象。

智能指針類將一個(gè)計(jì)數(shù)器與類指向的對象相關(guān)聯(lián),引用計(jì)數(shù)跟蹤該類有多少個(gè)對象共享同一指針。每次創(chuàng)建類的新對象時(shí),初始化指針并將引用計(jì)數(shù)置為1;當(dāng)對象作為另一對象的副本而創(chuàng)建時(shí),拷貝構(gòu)造函數(shù)拷貝指針并增加與之相應(yīng)的引用計(jì)數(shù);對一個(gè)對象進(jìn)行賦值時(shí),賦值操作符減少左操作數(shù)所指對象的引用計(jì)數(shù),如果引用計(jì)數(shù)為減至0,則刪除對象,并增加右操作數(shù)所指對象的引用計(jì)數(shù);調(diào)用析構(gòu)函數(shù)時(shí),構(gòu)造函數(shù)減少引用計(jì)數(shù),如果引用計(jì)數(shù)減至0,則刪除基礎(chǔ)對象。

文件系統(tǒng)后端先通過智能指針分配一個(gè)全局的inode,當(dāng)客戶端訪問文件系統(tǒng)時(shí),該客戶端獲取該智能指針的引用,即引用計(jì)數(shù)自動加1。當(dāng)客戶端自動釋放或者與文件系統(tǒng)的鏈接斷開時(shí),inode的引用自動減1。

通過定義一個(gè)全局空間來保存所以inode的狀態(tài)。例如,采用以下的方式:

shared_ptr<inode>factory(targ){

returnmake_shared<inode>(arg);

}

factory是文件系統(tǒng)為所有客戶端分配inode的函數(shù),所有的客戶端都可以共享。

voiduse_inode(targ){

shared_ptr<inode>i=factory(arg);

}

use_inode是文件系統(tǒng)為某個(gè)客戶端分配inode的函數(shù),客戶端之間是獨(dú)立的,即arg包括客戶端端信息,比如ip、socket等。

綜上所述,本發(fā)明提供的一種文件刪除方法,基于智能指針,可以有效解決空間不釋放的問題。

如圖3所示,為本發(fā)明公開的一種文件刪除系統(tǒng)實(shí)施例1的結(jié)構(gòu)示意圖,該系統(tǒng)應(yīng)用于分布式存儲系統(tǒng),本系統(tǒng)包括:

調(diào)用模塊301,用于將分布式存儲系統(tǒng)作為存儲系統(tǒng)的后端,客戶端調(diào)用分布式存儲系統(tǒng)的接口讀寫文件;

當(dāng)需要對分布式存儲系統(tǒng)中的文件進(jìn)行刪除時(shí),首先將分布式存儲系統(tǒng)作為存儲系統(tǒng)的后端,然后客戶端調(diào)用分布式存儲系統(tǒng)的接口讀寫文件。

分配模塊302,用于分布式存儲系統(tǒng)分配索引節(jié)點(diǎn)指針至客戶端;

然后分布式存儲系統(tǒng)給客戶端分配inode指針。

刪除模塊303,用于基于索引節(jié)點(diǎn)指針刪除分布式存儲系統(tǒng)中的文件。

然后根據(jù)分配的inode指針對分布式存儲系統(tǒng)中的文件進(jìn)行刪除處理,其中,分配的inode指針為智能指針。智能指針是存儲指向動態(tài)分配對象指針的類,用于生存期控制,能夠確保自動正確的銷毀動態(tài)分配的對象,防止內(nèi)存泄露,它的一種通用實(shí)現(xiàn)技術(shù)是使用引用計(jì)數(shù)。

綜上所述,在上述實(shí)施例中,當(dāng)需要對分布式存儲系統(tǒng)中的文件進(jìn)行刪除時(shí),首先將分布式存儲系統(tǒng)作為存儲系統(tǒng)的后端,客戶端調(diào)用分布式存儲系統(tǒng)的接口讀寫文件,然后分布式存儲系統(tǒng)分配索引節(jié)點(diǎn)指針至客戶端,然后基于索引節(jié)點(diǎn)指針刪除分布式存儲系統(tǒng)中的文件,能夠有效的對分布式存儲系統(tǒng)中的文件進(jìn)行刪除,能夠有效解決系統(tǒng)空間不釋放的問題。

如圖4所示,為本發(fā)明公開的一種文件刪除系統(tǒng)實(shí)施例2的結(jié)構(gòu)示意圖,該系統(tǒng)應(yīng)用于分布式存儲系統(tǒng),本系統(tǒng)包括:

調(diào)用模塊401,用于將分布式存儲系統(tǒng)作為存儲系統(tǒng)的后端,客戶端調(diào)用分布式存儲系統(tǒng)的接口讀寫文件;

當(dāng)需要對分布式存儲系統(tǒng)中的文件進(jìn)行刪除時(shí),首先將分布式存儲系統(tǒng)作為存儲系統(tǒng)的后端,然后客戶端調(diào)用分布式存儲系統(tǒng)的接口讀寫文件。

分配模塊402,用于分布式存儲系統(tǒng)分配索引節(jié)點(diǎn)指針至客戶端;

然后分布式存儲系統(tǒng)給客戶端分配inode指針。

刪除模塊403,用于智能指針類將一個(gè)計(jì)數(shù)器與類指向的對象相關(guān)聯(lián),引用計(jì)數(shù)跟蹤該類共享同一指針的對象;

創(chuàng)建類的新對象時(shí),初始化指針并將引用計(jì)數(shù)置為1,當(dāng)對象作為另一對象的副本而創(chuàng)建時(shí),拷貝構(gòu)造函數(shù)拷貝指針并增加與之相應(yīng)的引用計(jì)數(shù);

對一個(gè)對象進(jìn)行賦值是,賦值操作符減少左操作數(shù)所指對象的引用計(jì)數(shù),并增加右操作數(shù)所指對象的引用計(jì)數(shù),當(dāng)引用計(jì)數(shù)減至0時(shí),刪除對象;

在調(diào)用析構(gòu)函數(shù)時(shí),構(gòu)造函數(shù)減少引用計(jì)數(shù),當(dāng)引用計(jì)數(shù)減至0時(shí),刪除基礎(chǔ)對象。

智能指針類將一個(gè)計(jì)數(shù)器與類指向的對象相關(guān)聯(lián),引用計(jì)數(shù)跟蹤該類有多少個(gè)對象共享同一指針。每次創(chuàng)建類的新對象時(shí),初始化指針并將引用計(jì)數(shù)置為1;當(dāng)對象作為另一對象的副本而創(chuàng)建時(shí),拷貝構(gòu)造函數(shù)拷貝指針并增加與之相應(yīng)的引用計(jì)數(shù);對一個(gè)對象進(jìn)行賦值時(shí),賦值操作符減少左操作數(shù)所指對象的引用計(jì)數(shù),如果引用計(jì)數(shù)為減至0,則刪除對象,并增加右操作數(shù)所指對象的引用計(jì)數(shù);調(diào)用析構(gòu)函數(shù)時(shí),構(gòu)造函數(shù)減少引用計(jì)數(shù),如果引用計(jì)數(shù)減至0,則刪除基礎(chǔ)對象。

文件系統(tǒng)后端先通過智能指針分配一個(gè)全局的inode,當(dāng)客戶端訪問文件系統(tǒng)時(shí),該客戶端獲取該智能指針的引用,即引用計(jì)數(shù)自動加1。當(dāng)客戶端自動釋放或者與文件系統(tǒng)的鏈接斷開時(shí),inode的引用自動減1。

通過定義一個(gè)全局空間來保存所以inode的狀態(tài)。例如,采用以下的方式:

shared_ptr<inode>factory(targ){

returnmake_shared<inode>(arg);

}

factory是文件系統(tǒng)為所有客戶端分配inode的函數(shù),所有的客戶端都可以共享。

voiduse_inode(targ){

shared_ptr<inode>i=factory(arg);

}

use_inode是文件系統(tǒng)為某個(gè)客戶端分配inode的函數(shù),客戶端之間是獨(dú)立的,即arg包括客戶端端信息,比如ip、socket等。

綜上所述,本發(fā)明提供的一種文件刪除系統(tǒng),基于智能指針,可以有效解決空間不釋放的問題。

本說明書中各個(gè)實(shí)施例采用遞進(jìn)的方式描述,每個(gè)實(shí)施例重點(diǎn)說明的都是與其它實(shí)施例的不同之處,各個(gè)實(shí)施例之間相同相似部分互相參見即可。

對所公開的實(shí)施例的上述說明,使本領(lǐng)域?qū)I(yè)技術(shù)人員能夠?qū)崿F(xiàn)或使用本發(fā)明。對這些實(shí)施例的多種修改對本領(lǐng)域的專業(yè)技術(shù)人員來說將是顯而易見的,本文中所定義的一般原理可以在不脫離本發(fā)明的精神或范圍的情況下,在其它實(shí)施例中實(shí)現(xiàn)。因此,本發(fā)明將不會被限制于本文所示的這些實(shí)施例,而是要符合與本文所公開的原理和新穎特點(diǎn)相一致的最寬的范圍。

當(dāng)前第1頁1 2 
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點(diǎn)贊!
1
主站蜘蛛池模板: 德保县| 宝坻区| 咸阳市| 屏东市| 平阳县| 禄劝| 菏泽市| 阳江市| 庆阳市| 西乌珠穆沁旗| 长沙市| 神木县| 涟源市| 黄浦区| 辰溪县| 沙湾县| 奉新县| 定陶县| 沐川县| 忻州市| 莲花县| 沁阳市| 天峨县| 蓝山县| 宽甸| 互助| 灌云县| 寿阳县| 刚察县| 龙江县| 游戏| 二连浩特市| 乐清市| 太原市| 卫辉市| 沐川县| 玉山县| 泗水县| 高唐县| 门头沟区| 六盘水市|