本發(fā)明涉及數(shù)據(jù)處理領域,尤其涉及一種分布式文件讀寫權限設置方法。
背景技術:
隨著計算機技術的快速發(fā)展,各種形式的信息數(shù)據(jù)量越來越大,根據(jù)行業(yè)情況不同,對數(shù)據(jù)的讀寫方式存在差異,針對同一個文件,同一時刻可以有一個或者多個客戶端進行讀寫。多個客戶端同時對MDS進行數(shù)據(jù)處理時,容易導致系統(tǒng)訪問量過大,致使系統(tǒng)癱瘓,影響系統(tǒng)正常運行。
技術實現(xiàn)要素:
為了克服上述現(xiàn)有技術中的不足,本發(fā)明提供一種分布式文件讀寫權限設置方法,方法包括:
獲取當前等待使用文件的客戶端數(shù)量;
當單一客戶端使用當前文件時, MDS授權給所述客戶端寫緩存權限和讀緩存權限;
客戶端得到文件使用權限后,將本次使用文件的權限發(fā)送給MDS,MDS收到所述客戶端的文件使用權限后,對該客戶端使用文件的讀寫權限進行標記及統(tǒng)計;
當至少兩個客戶端使用當前文件時, MDS授權給每個客戶端直寫權限和直讀權限;
每個客戶端獲取文件使用權限后,將本次使用文件的權限發(fā)送給MDS,MDS收到所述客戶端的文件使用權限后,對該客戶端使用文件的讀寫權限進行標記及統(tǒng)計。
優(yōu)選地,當單一客戶端的寫緩存權限失效后,客戶端將在緩存寫入的文件存儲到客戶端的存儲設備;
客戶端的讀緩存權限失效后,將本地緩存數(shù)據(jù)作失效處理。
優(yōu)選地,在單一客戶端具有寫緩存權限和讀緩存權限時,所述客戶端將臟數(shù)據(jù)存儲到客戶端的存儲設備;
當其他客戶端也請求對所述文件進行讀寫時,MDS將單一客戶端的寫緩存權限和讀緩存權限收回,所述客戶端將臟數(shù)據(jù)存儲到客戶端的存儲設備,作廢緩存數(shù)據(jù);
MDS授權給每個客戶端直寫權限和直讀權限。
優(yōu)選地,被訪問的文件關閉句柄后,MDS收回所有訪問該文件的權限。
優(yōu)選地,當單一客戶端具有讀寫緩存權限時,其他客戶端請求對所述文件進行讀寫,MDS將單一客戶端寫入的文件數(shù)據(jù)更新至元數(shù)據(jù),MDS對單一客戶端寫入的臟數(shù)據(jù)不做刷新。
優(yōu)選地,步驟:當單一客戶端使用當前文件時, MDS授權給所述客戶端寫緩存權限和讀緩存權限還包括:
單一客戶端對當前文件使用寫緩存權限,進行寫數(shù)據(jù)時,將寫入數(shù)據(jù)先緩存在第一緩存中;
第一緩存數(shù)據(jù)處理模塊根據(jù)預設的壓縮量將第一緩存中多個數(shù)據(jù)進行組合壓縮,形成壓縮數(shù)據(jù)塊;
第一緩存數(shù)據(jù)處理模塊針對壓縮數(shù)據(jù)塊中的每個數(shù)據(jù)對應生成一元數(shù)據(jù),元數(shù)據(jù)記錄壓縮前后的每個數(shù)據(jù)處于第一緩存中的位置;
將壓縮數(shù)據(jù)塊以及與壓縮數(shù)據(jù)塊相對應的元數(shù)據(jù)下發(fā)給第二緩存;
第二緩存保存壓縮數(shù)據(jù)塊和元數(shù)據(jù);
當單一客戶端的寫緩存權限被收回,或者單一客戶端讀寫操作完成時,第二緩存將保存的壓縮數(shù)據(jù)塊和元數(shù)據(jù)保存到客戶端的存儲設備。
優(yōu)選地,預設的壓縮量的獲取方式包括:第一緩存數(shù)據(jù)處理模塊在第一緩存隨機抽取N個數(shù)據(jù),N為非零的自然數(shù),對抽取的數(shù)據(jù)進行組合壓縮,組合壓縮后計算出N個數(shù)據(jù)的平均MD5值,將該值作為預設壓縮量。
從以上技術方案可以看出,本發(fā)明具有以下優(yōu)點:
通過對文件讀寫權限控制,可以保證單一客戶端操作的情況下通過讀寫緩存提高文件讀寫效率,多客戶端操作的情況下通過數(shù)據(jù)直寫方式保證數(shù)據(jù)一致性。
附圖說明
為了更清楚地說明本發(fā)明的技術方案,下面將對描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本發(fā)明的一些實施例,對于本領域普通技術人員來講,在不付出創(chuàng)造性勞動的前提下,還可以根據(jù)這些附圖獲得其他的附圖。
圖1為分布式文件讀寫權限設置方法的整體流程圖。
具體實施方式
為使得本發(fā)明的發(fā)明目的、特征、優(yōu)點能夠更加的明顯和易懂,下面將運用具體的實施例及附圖,對本發(fā)明保護的技術方案進行清楚、完整地描述,顯然,下面所描述的實施例僅僅是本發(fā)明一部分實施例,而非全部的實施例?;诒緦@械膶嵤├?,本領域普通技術人員在沒有做出創(chuàng)造性勞動前提下所獲得的所有其它實施例,都屬于本專利保護的范圍。
本實施例提供一種分布式文件讀寫權限設置方法,如圖1所示,方法包括:
S1:獲取當前等待使用文件的客戶端數(shù)量;
S2:當單一客戶端使用當前文件時, MDS授權給所述客戶端寫緩存權限和讀緩存權限;
S3:客戶端得到文件使用權限后,將本次使用文件的權限發(fā)送給MDS,MDS收到所述客戶端的文件使用權限后,對該客戶端使用文件的讀寫權限進行標記及統(tǒng)計;
S4:當至少兩個客戶端使用當前文件時, MDS授權給每個客戶端直寫權限和直讀權限;
S5:每個客戶端獲取文件使用權限后,將本次使用文件的權限發(fā)送給MDS,MDS收到所述客戶端的文件使用權限后,對該客戶端使用文件的讀寫權限進行標記及統(tǒng)計。
通過四種讀寫權限控制,可以保證單一客戶端操作的情況下通過讀寫緩存提高文件讀寫效率,多客戶端操作的情況下通過數(shù)據(jù)直寫方式保證數(shù)據(jù)一致性。
本實施例中,當單一客戶端的寫緩存權限失效后,客戶端將在緩存寫入的文件存儲到客戶端的存儲設備;
客戶端的讀緩存權限失效后,將本地緩存數(shù)據(jù)作失效處理。
具體的,客戶端打開文件,將讀寫標記傳遞到MDS,MDS統(tǒng)計所有客戶端的讀寫請求,單一客戶端授權讀寫緩存權限,多客戶端授權直讀直寫權限。讀寫緩存權限回收后,本地緩存作廢處理。
本實施例中,在單一客戶端具有寫緩存權限和讀緩存權限時,所述客戶端將臟數(shù)據(jù)存儲到客戶端的存儲設備;
當其他客戶端也請求對所述文件進行讀寫時,MDS將單一客戶端的寫緩存權限和讀緩存權限收回,所述客戶端將臟數(shù)據(jù)存儲到客戶端的存儲設備,作廢緩存數(shù)據(jù);
MDS授權給每個客戶端直寫權限和直讀權限。
本實施例中,被訪問的文件關閉句柄后,MDS收回所有訪問該文件的權限。
本實施例中,當單一客戶端具有讀寫緩存權限時,其他客戶端請求對所述文件進行讀寫,MDS將單一客戶端寫入的文件數(shù)據(jù)更新至元數(shù)據(jù),MDS對單一客戶端寫入的臟數(shù)據(jù)不做刷新。
本實施例中,步驟:當單一客戶端使用當前文件時, MDS授權給所述客戶端寫緩存權限和讀緩存權限還包括:客戶端將緩存空間劃分為兩層,包括:第一緩存,第二緩存;
單一客戶端對當前文件使用寫緩存權限,進行寫數(shù)據(jù)時,將寫入數(shù)據(jù)先緩存在第一緩存中;
第一緩存數(shù)據(jù)處理模塊根據(jù)預設的壓縮量將第一緩存中多個數(shù)據(jù)進行組合壓縮,形成壓縮數(shù)據(jù)塊;
第一緩存數(shù)據(jù)處理模塊針對壓縮數(shù)據(jù)塊中的每個數(shù)據(jù)對應生成一元數(shù)據(jù),元數(shù)據(jù)記錄壓縮前后的每個數(shù)據(jù)處于第一緩存中的位置;
將壓縮數(shù)據(jù)塊以及與壓縮數(shù)據(jù)塊相對應的元數(shù)據(jù)下發(fā)給第二緩存;
第二緩存保存壓縮數(shù)據(jù)塊和元數(shù)據(jù);
當單一客戶端的寫緩存權限被收回,或者單一客戶端讀寫操作完成時,第二緩存將保存的壓縮數(shù)據(jù)塊和元數(shù)據(jù)保存到客戶端的存儲設備。
預設的壓縮量的獲取方式包括:第一緩存數(shù)據(jù)處理模塊在第一緩存隨機抽取N個數(shù)據(jù),N為非零的自然數(shù),對抽取的數(shù)據(jù)進行組合壓縮,組合壓縮后計算出N個數(shù)據(jù)的平均MD5值,將該值作為預設壓縮量。
這樣,單一客戶端寫入對緩存的數(shù)據(jù)進行實時壓縮,可以事先預設數(shù)據(jù)的壓縮量,保證壓縮效果。并且在數(shù)據(jù)儲存至存儲設備之前先對寫入數(shù)據(jù)進行了壓縮,節(jié)約了存儲設備空間。
對所公開的實施例的上述說明,使本領域?qū)I(yè)技術人員能夠?qū)崿F(xiàn)或使用本發(fā)明。對這些實施例的多種修改對本領域的專業(yè)技術人員來說將是顯而易見的,本文中所定義的一般原理可以在不脫離本發(fā)明的精神或范圍的情況下,在其它實施例中實現(xiàn)。因此,本發(fā)明將不會被限制于本文所示的這些實施例,而是要符合與本文所公開的原理和新穎特點相一致的最寬的范圍。