一種分布式文件系統文件讀寫處理方法與流程
2023-06-18 18:43:51

本發明涉及分布式文件領域,尤其涉及一種分布式文件系統文件讀寫處理方法。
背景技術:
隨著計算機技術的快速發展,各種形式的信息數據量越來越大,根據行業情況不同,對數據的讀寫方式差異很大,在現有的文件讀寫權限控制下,如果多個客戶端同時對一個文件進行讀寫,則只能採用直寫和直讀的方法,數據處理效率低下。
技術實現要素:
為了克服上述現有技術中的不足,本發明提供一種分布式文件系統文件讀寫處理方法,方法包括:
多個客戶端對文件進行寫入前,每個客戶端分別向MDS申請對文件的寫權限,並且每個客戶端標示申請修改寫權限或追加寫權限;
MDS接收所有客戶端發送的讀寫權限申請,並對每個客戶端申請的修改寫權限或追加寫權限給予授權;
MDS實時統計所有客戶端的讀寫權限。
優選地,當某一文件被多個客戶端同時使用,且只有一個客戶端對所述文件進行追加寫時,MDS授權該客戶端寫緩存權限,同時授權其他的客戶端讀緩存權限。
優選地,當客戶端向MDS申請由追加寫權限變更為修改寫權限時,MDS通知該客戶端釋放追加寫緩存權限,同時將緩存數據儲存到後端存儲設備。
優選地,當客戶端向MDS申請由修改寫權限變更為追加寫權限時,MDS通知該客戶端釋放修改寫緩存權限,同時將緩存數據儲存到後端存儲設備。
優選地,當客戶端獲得追加寫權限後,進行追加寫數據時,先將寫入數據緩存在第一緩存中;
第一緩存數據壓縮模塊根據預設的壓縮量將第一緩存中多個數據進行組合壓縮,形成壓縮數據塊;
第一緩存數據壓縮模塊針對壓縮數據塊中的每個數據對應生成一元數據,元數據記錄壓縮前後的每個數據處於第一緩存中的位置;
將壓縮數據塊以及與壓縮數據塊相對應的元數據下發給第二緩存;
第二緩存保存壓縮數據塊和元數據;
當客戶端的追加寫權限被收回,或者客戶端的追加寫操作完成時,第二緩存將保存的壓縮數據塊和元數據保存到客戶端的存儲設備。
優選地,預設的壓縮量的獲取方式包括:第一緩存數據處理模塊在第一緩存隨機抽取N個數據,N為非零的自然數,對抽取的數據進行組合壓縮,組合壓縮後計算出N個數據的平均MD5值,將該值作為預設壓縮量。
優選地,客戶端申請到修改寫權限或追加寫權限後,客戶端在客戶端配額數據結構中設置預留緩存空位;預留緩存空位獲取MDS分配的分配緩存空間;
MDS將總儲存配額拆分為以固定大小為基本單位的單位存儲空間,MDS統一分配和使用單位存儲空間;
當客戶端獲取到修改寫權限或追加寫權限,且向MDS申請單位存儲空間時,MDS根據客戶端的申請分配單位存儲空間;
客戶端得到單位存儲空間後,將MDS分配的單位存儲空間計入用戶配額數據結構中的預留緩存空位上。
優選地,客戶端修改寫或追加寫操作時,將修改寫或追加寫的數據儲存至預留緩存空位的單位存儲空間內,當預授權空間內的單位存儲空間容量不足時,向MDS發出申請,申請分配單位存儲空間;
MDS根據所述客戶端的申請再分配一單位存儲空間;
客戶端得到單位存儲空間後,將MDS分配的單位存儲空間計入用戶配額數據結構中的預留緩存空位內,並與在先分配的單位存儲空間統一使用。
從以上技術方案可以看出,本發明具有以下優點:
多個客戶端對文件進行寫入前,每個客戶端分別向MDS申請對文件的寫權限,並且每個客戶端標示申請修改寫權限或追加寫權限,MDS授權客戶端直讀和直寫權限;客戶端將追加寫或者修改寫方式異步發送給MDS;MDS統計客戶端讀寫方式,重新給客戶端授權寫緩存或者讀緩存。將文件寫權限拆分成粒度更小的追加寫和修改寫,針對只有追加寫的情況授權給客戶端寫緩存權限,提高數據處理效率。
附圖說明
為了更清楚地說明本發明的技術方案,下面將對描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本發明的一些實施例,對於本領域普通技術人員來講,在不付出創造性勞動的前提下,還可以根據這些附圖獲得其他的附圖。
圖1為分布式文件系統文件讀寫處理方法的流程圖;
圖2為分布式文件系統文件讀寫處理方法實施例示意圖。
具體實施方式
為使得本發明的發明目的、特徵、優點能夠更加的明顯和易懂,下面將運用具體的實施例及附圖,對本發明保護的技術方案進行清楚、完整地描述,顯然,下面所描述的實施例僅僅是本發明一部分實施例,而非全部的實施例。基於本專利中的實施例,本領域普通技術人員在沒有做出創造性勞動前提下所獲得的所有其它實施例,都屬於本專利保護的範圍。
本實施例提供一種分布式文件系統文件讀寫處理方法,如圖1、圖2所示,方法包括:
S1:多個客戶端對文件進行寫入前,每個客戶端分別向MDS申請對文件的寫權限,並且每個客戶端標示申請修改寫權限或追加寫權限;
S2:MDS接收所有客戶端發送的讀寫權限申請,並對每個客戶端申請的修改寫權限或追加寫權限給予授權;
S3:MDS實時統計所有客戶端的讀寫權限。
具體的,客戶端打開文件,MDS授權所有客戶端直讀和直寫權限;客戶端將追加寫或者修改寫方式異步發送給MDS;MDS統計客戶端讀寫方式,重新給客戶端授權寫緩存或者讀緩存。
本實施例中,當某一文件被多個客戶端同時使用,且只有一個客戶端對所述文件進行追加寫時,MDS授權該客戶端寫緩存權限,同時授權其他的客戶端讀緩存權限。
本實施例中,當客戶端向MDS申請由追加寫權限變更為修改寫權限時,MDS通知該客戶端釋放追加寫緩存權限,同時將緩存數據儲存到後端存儲設備。
本實施例中,當客戶端向MDS申請由修改寫權限變更為追加寫權限時,MDS通知該客戶端釋放修改寫緩存權限,同時將緩存數據儲存到後端存儲設備。
本實施例中,當客戶端獲得追加寫權限後,進行追加寫數據時,先將寫入數據緩存在第一緩存中;
第一緩存數據壓縮模塊根據預設的壓縮量將第一緩存中多個數據進行組合壓縮,形成壓縮數據塊;
第一緩存數據壓縮模塊針對壓縮數據塊中的每個數據對應生成一元數據,元數據記錄壓縮前後的每個數據處於第一緩存中的位置;
將壓縮數據塊以及與壓縮數據塊相對應的元數據下發給第二緩存;
第二緩存保存壓縮數據塊和元數據;
當客戶端的追加寫權限被收回,或者客戶端的追加寫操作完成時,第二緩存將保存的壓縮數據塊和元數據保存到客戶端的存儲設備。
預設的壓縮量的獲取方式包括:第一緩存數據處理模塊在第一緩存隨機抽取N個數據,N為非零的自然數,對抽取的數據進行組合壓縮,組合壓縮後計算出N個數據的平均MD5值,將該值作為預設壓縮量。
這樣,客戶端追加寫對緩存的數據進行實時壓縮,可以事先預設數據的壓縮量,保證壓縮效果。並且在數據儲存至存儲設備之前先對寫入數據進行了壓縮,節約了存儲設備空間。
本實施例中,客戶端申請到修改寫權限或追加寫權限後,客戶端在客戶端配額數據結構中設置預留緩存空位;預留緩存空位獲取MDS分配的分配緩存空間;
MDS將總儲存配額拆分為以固定大小為基本單位的單位存儲空間,MDS統一分配和使用單位存儲空間;
當客戶端獲取到修改寫權限或追加寫權限,且向MDS申請單位存儲空間時,MDS根據客戶端的申請分配單位存儲空間;
客戶端得到單位存儲空間後,將MDS分配的單位存儲空間計入用戶配額數據結構中的預留緩存空位上。
其中,客戶端修改寫或追加寫操作時,將修改寫或追加寫的數據儲存至預留緩存空位的單位存儲空間內,當預授權空間內的單位存儲空間容量不足時,向MDS發出申請,申請分配單位存儲空間;
MDS根據所述客戶端的申請再分配一單位存儲空間;
客戶端得到單位存儲空間後,將MDS分配的單位存儲空間計入用戶配額數據結構中的預留緩存空位內,並與在先分配的單位存儲空間統一使用。
在客戶端與MDS同步目錄配額信息,有效地避免了多客戶端同時修改寫或追加寫配額超額的狀況。
對所公開的實施例的上述說明,使本領域專業技術人員能夠實現或使用本發明。對這些實施例的多種修改對本領域的專業技術人員來說將是顯而易見的,本文中所定義的一般原理可以在不脫離本發明的精神或範圍的情況下,在其它實施例中實現。因此,本發明將不會被限制於本文所示的這些實施例,而是要符合與本文所公開的原理和新穎特點相一致的最寬的範圍。