一種文件存儲(chǔ)與管理方法
【專利摘要】本發(fā)明屬于計(jì)算機(jī)【技術(shù)領(lǐng)域】,特別涉及分布式文件存儲(chǔ)系統(tǒng)。文件存儲(chǔ)與管理方法,包括:A.建立用戶對象容器;為每一文件建立存儲(chǔ)塊,同一文件只建立一個(gè)存儲(chǔ)塊;B.用戶使用某文件時(shí),查詢其用戶對象容器;C.判斷文件是否已建立存儲(chǔ)塊,如已建立,則轉(zhuǎn)D步驟;如尚未建立,則建立該文件存儲(chǔ)塊,將其引用計(jì)數(shù)置為0;D.查詢文件存儲(chǔ)塊,檢查其引用計(jì)數(shù),如其為0,則將該文件內(nèi)容寫入,將其引用計(jì)數(shù)+1,轉(zhuǎn)E步驟;如其引用計(jì)數(shù)≥1,則進(jìn)一步判斷用戶的操作類型,進(jìn)行不同操作:E、檢查文件存儲(chǔ)塊引用計(jì)數(shù),如果≥1,則結(jié)束;否則刪除該文件存儲(chǔ)塊后結(jié)束。利用本發(fā)明可以有效提高分布式文件存儲(chǔ)系統(tǒng)中存儲(chǔ)空間的使用效率,提高檢索速度。
【專利說明】一種文件存儲(chǔ)與管理方法
【技術(shù)領(lǐng)域】
[0001] 本發(fā)明屬于計(jì)算機(jī)【技術(shù)領(lǐng)域】,特別涉及分布式文件存儲(chǔ)系統(tǒng)。
【背景技術(shù)】
[0002] 在分布式文件存儲(chǔ)系統(tǒng)中,常用的方法是將每個(gè)用戶的每個(gè)文件存儲(chǔ)在某一個(gè)位 置,使用此文件時(shí),檢索其所在位置,獲取文件數(shù)據(jù)。隨著用戶數(shù)量以及用戶文件數(shù)量的大 量增加,會(huì)對服務(wù)器的存儲(chǔ)能力與檢索效率造成較大壓力。
【發(fā)明內(nèi)容】
[0003] 本發(fā)明的目的是:提供一種節(jié)省存儲(chǔ)空間、加快檢索效率的文件存儲(chǔ)與管理方法。
[0004] 本發(fā)明的技術(shù)方案是:一種文件存儲(chǔ)與管理方法,包括以下步驟:
[0005] A、在服務(wù)器上為每一用戶建立用戶對象容器,其中記錄該用戶的唯一標(biāo)識、該用 戶使用過的文件列表、每個(gè)文件的存儲(chǔ)塊唯一標(biāo)識及存儲(chǔ)位置;為每一文件建立存儲(chǔ)塊,其 中記錄該文件內(nèi)容、引用計(jì)數(shù),不同用戶所使用的同一文件只建立一個(gè)存儲(chǔ)塊;
[0006] B、用戶使用某個(gè)文件時(shí),根據(jù)用戶唯一標(biāo)識查詢其用戶對象容器;如該用戶對象 容器尚未建立,則建立該用戶對象容器;
[0007] C、判斷用戶所使用的文件是否已建立存儲(chǔ)塊,如已建立,則轉(zhuǎn)D步驟;如尚未建 立,則根據(jù)該文件內(nèi)容生成該文件存儲(chǔ)塊唯一標(biāo)識,建立該文件存儲(chǔ)塊,將其引用計(jì)數(shù)置為 〇 ;
[0008] D、根據(jù)該文件存儲(chǔ)塊唯一標(biāo)識查詢文件存儲(chǔ)塊,檢查其引用計(jì)數(shù),如其為0,則將 該文件內(nèi)容寫入該文件存儲(chǔ)塊,將其引用計(jì)數(shù)+1,轉(zhuǎn)E步驟;如其引用計(jì)數(shù)> 1,則進(jìn)一步判 斷用戶的操作類型:
[0009] 如果是創(chuàng)建、打開、傳輸、接收操作之一,則執(zhí)行操作后,將引用計(jì)數(shù)+1,轉(zhuǎn)E步驟;
[0010] 如果是重命名操作,則執(zhí)行操作后,修改該用戶對象容器中的文件列表,轉(zhuǎn)E步 驟;
[0011] 如果是刪除操作,則刪除該用戶對象容器中該文件的存儲(chǔ)塊唯一標(biāo)識,將引用計(jì) 數(shù)-1,轉(zhuǎn)E步驟;
[0012] 如果是拷貝操作,則在該用戶對象容器中添加該文件的存儲(chǔ)塊唯一標(biāo)識,將引用 計(jì)數(shù)+1,轉(zhuǎn)E步驟;
[0013] 如果是修改操作,則根據(jù)修改后文件內(nèi)容生成修改后文件存儲(chǔ)塊唯一標(biāo)識,建立 修改后文件存儲(chǔ)塊,將其引用計(jì)數(shù)置為0,寫入修改后文件,將其引用計(jì)數(shù)+1,在該用戶對 象容器中添加修改后文件存儲(chǔ)塊唯一標(biāo)識,轉(zhuǎn)E步驟;
[0014] E、檢查該文件存儲(chǔ)塊引用計(jì)數(shù),如果> 1,則結(jié)束;否則刪除該文件存儲(chǔ)塊后結(jié) 束。
[0015] 利用本發(fā)明可以有效提高分布式文件存儲(chǔ)系統(tǒng)中存儲(chǔ)空間的使用效率,提高檢索 速度。
【專利附圖】
【附圖說明】
[0016] 附圖1為本發(fā)明中流程示意圖。
【具體實(shí)施方式】
[0017] 參見附圖1,一種文件存儲(chǔ)與管理方法,包括以下步驟:
[0018] A、在服務(wù)器上為每一用戶建立用戶對象容器,其中記錄該用戶的唯一標(biāo)識、該用 戶使用過的文件列表、每個(gè)文件的存儲(chǔ)塊唯一標(biāo)識及存儲(chǔ)位置;為每一文件建立存儲(chǔ)塊,其 中記錄該文件內(nèi)容、引用計(jì)數(shù),不同用戶所使用的同一文件只建立一個(gè)存儲(chǔ)塊;
[0019] B、用戶使用某個(gè)文件時(shí),根據(jù)用戶唯一標(biāo)識查詢其用戶對象容器;如該用戶對象 容器尚未建立,則建立該用戶對象容器;
[0020] C、判斷用戶所使用的文件是否已建立存儲(chǔ)塊,如已建立,則轉(zhuǎn)D步驟;如尚未建 立,則根據(jù)該文件內(nèi)容生成該文件存儲(chǔ)塊唯一標(biāo)識,建立該文件存儲(chǔ)塊,將其引用計(jì)數(shù)置為 〇 ;
[0021] D、根據(jù)該文件存儲(chǔ)塊唯一標(biāo)識查詢文件存儲(chǔ)塊,檢查其引用計(jì)數(shù),如其為0,則將 該文件內(nèi)容寫入該文件存儲(chǔ)塊,將其引用計(jì)數(shù)+1,轉(zhuǎn)E步驟;如其引用計(jì)數(shù)> 1,則進(jìn)一步判 斷用戶的操作類型:
[0022] 如果是創(chuàng)建、打開、傳輸、接收操作之一,則執(zhí)行操作后,將引用計(jì)數(shù)+1,轉(zhuǎn)E步驟;
[0023] 如果是重命名操作,則執(zhí)行操作后,修改該用戶對象容器中的文件列表,轉(zhuǎn)E步 驟;
[0024] 如果是刪除操作,則刪除該用戶對象容器中該文件的存儲(chǔ)塊唯一標(biāo)識,將引用計(jì) 數(shù)-1,轉(zhuǎn)E步驟;
[0025] 如果是拷貝操作,則在該用戶對象容器中添加該文件的存儲(chǔ)塊唯一標(biāo)識,將引用 計(jì)數(shù)+1,轉(zhuǎn)E步驟;
[0026] 如果是修改操作,則根據(jù)修改后文件內(nèi)容生成修改后文件存儲(chǔ)塊唯一標(biāo)識,建立 修改后文件存儲(chǔ)塊,將其引用計(jì)數(shù)置為〇,寫入修改后文件,將其引用計(jì)數(shù)+1,在該用戶對 象容器中添加修改后文件存儲(chǔ)塊唯一標(biāo)識,轉(zhuǎn)E步驟;
[0027] E、檢查該文件存儲(chǔ)塊引用計(jì)數(shù),如果> 1,則結(jié)束;否則刪除該文件存儲(chǔ)塊后結(jié) 束。
【權(quán)利要求】
1. 一種文件存儲(chǔ)與管理方法,包括以下步驟: A、 在服務(wù)器上為每一用戶建立用戶對象容器,其中記錄該用戶的唯一標(biāo)識、該用戶使 用過的文件列表、每個(gè)文件的存儲(chǔ)塊唯一標(biāo)識及存儲(chǔ)位置;為每一文件建立存儲(chǔ)塊,其中記 錄該文件內(nèi)容、引用計(jì)數(shù),不同用戶所使用的同一文件只建立一個(gè)存儲(chǔ)塊; B、 用戶使用某個(gè)文件時(shí),根據(jù)用戶唯一標(biāo)識查詢其用戶對象容器;如該用戶對象容器 尚未建立,則建立該用戶對象容器; C、 判斷用戶所使用的文件是否已建立存儲(chǔ)塊,如已建立,則轉(zhuǎn)D步驟;如尚未建立,則 根據(jù)該文件內(nèi)容生成該文件存儲(chǔ)塊唯一標(biāo)識,建立該文件存儲(chǔ)塊,將其引用計(jì)數(shù)置為〇 ; D、 根據(jù)該文件存儲(chǔ)塊唯一標(biāo)識查詢文件存儲(chǔ)塊,檢查其引用計(jì)數(shù),如其為0,則將該文 件內(nèi)容寫入該文件存儲(chǔ)塊,將其引用計(jì)數(shù)+1,轉(zhuǎn)E步驟;如其引用計(jì)數(shù)> 1,則進(jìn)一步判斷用 戶的操作類型: 如果是創(chuàng)建、打開、傳輸、接收操作之一,則執(zhí)行操作后,將引用計(jì)數(shù)+1,轉(zhuǎn)E步驟; 如果是重命名操作,則執(zhí)行操作后,修改該用戶對象容器中的文件列表,轉(zhuǎn)E步驟; 如果是刪除操作,則刪除該用戶對象容器中該文件的存儲(chǔ)塊唯一標(biāo)識,將引用計(jì)數(shù)-1, 轉(zhuǎn)E步驟; 如果是拷貝操作,則在該用戶對象容器中添加該文件的存儲(chǔ)塊唯一標(biāo)識,將引用計(jì)數(shù) +1,轉(zhuǎn)E步驟; 如果是修改操作,則根據(jù)修改后文件內(nèi)容生成修改后文件存儲(chǔ)塊唯一標(biāo)識,建立修改 后文件存儲(chǔ)塊,將其引用計(jì)數(shù)置為〇,寫入修改后文件,將其引用計(jì)數(shù)+1,在該用戶對象容 器中添加修改后文件存儲(chǔ)塊唯一標(biāo)識,轉(zhuǎn)E步驟; E、 檢查該文件存儲(chǔ)塊引用計(jì)數(shù),如果> 1,則結(jié)束;否則刪除該文件存儲(chǔ)塊后結(jié)束。
【文檔編號】G06F17/30GK104123385SQ201410383857
【公開日】2014年10月29日 申請日期:2014年8月7日 優(yōu)先權(quán)日:2014年8月7日
【發(fā)明者】肖龍旭, 張凱, 丁凱, 陳炫, 岳翔 申請人:肖龍旭, 北京凱銳立德科技有限公司