本發明涉及分布式系統文件讀取技術領域,特別是涉及一種用于分布式系統的元數據讀取方法及其裝置。
背景技術:
在分布式文件系統中,用戶進程和存儲介質往往分布在不同的節點,由于當用戶打開文件時,需要首先獲取文件的元數據,若當前元數據并未存在于本地節點(即本地服務器)中,則需要跨網絡去元數據服務器上獲取元數據,增加了文件讀取延時。
并且,用戶有時候會需要連續對大量的文件進行讀取操作,這時候若每個文件讀取時均跨網絡取獲取元數據的話,讀取元數據的時間在全部文件讀取過程中會占用較大的比例,從而降低了文件讀取的速度。
因此,如何提供一種文件讀取性能好的用于分布式系統的元數據讀取方法及其裝置是本領域技術人員目前需要解決的問題。
技術實現要素:
本發明的目的是提供一種用于分布式系統的元數據讀取方法及其裝置,能夠提高元數據在本地節點的緩存率,盡可能避免在連續讀取大量文件時跨網讀取元數據的次數,節省文件讀取時間,提高文件讀取性能。
為解決上述技術問題,本發明提供了一種用于分布式系統的元數據讀取方法,包括:
當打開文件時,判斷當前本地節點內是否緩存有所述文件的元數據,若是,按照所述文件的元數據進行文件讀取操作;
否則,通過網絡從元數據節點內讀取所述文件的元數據并緩存至所述本地節點內,按照所述文件的元數據進行文件讀取操作;
并選擇是否開啟元數據預讀操作,若是,按照預設規則從所述元數據節點中所述文件的元數據所在的目錄下讀取預設個數的元數據,并緩存至所述本地節點內。
優選地,所述按照預設規則從所述元數據節點中所述文件的元數據所在的目錄下讀取預設個數的元數據之前還包括:
從預設的多個規則內選擇一個作為當前預讀時所述預設規則。
優選地,所述預設規則具體為:
按照文件名稱的順序依次讀取。
優選地,所述預設規則具體為:
按照文件時間的順序依次讀取。
優選地,所述預設規則具體為:
按照文件大小的順序依次讀取。
優選地,所述預設個數為10~20個。
為解決上述技術問題,本發明還提供了一種用于分布式系統的元數據讀取裝置,包括:
緩存確定模塊,用于當打開文件時,判斷當前本地節點內是否緩存有所述文件的元數據,若是,觸發文件讀取模塊;否則,觸發第一元數據讀取模塊以及預讀開啟模塊;
所述第一元數據讀取模塊,用于通過網絡從元數據節點內讀取所述文件的元數據并緩存至所述本地節點內,觸發所述文件讀取模塊;
所述預讀開啟模塊,用于供用戶選擇是否開啟元數據預讀操作,若操作開啟,觸發第二元數據讀取模塊;
所述第二元數據讀取模塊,用于按照預設規則從所述元數據節點中所述文件的元數據所在的目錄下讀取預設個數的元數據,并緩存至所述本地節點內;
所述文件讀取模塊,用于按照所述文件的元數據進行文件讀取操作。
本發明提供了一種用于分布式系統的元數據讀取方法及其裝置,在進行文件讀取時,若本地節點內未緩存有該文件的元數據,則一方面通過網絡讀取元數據節點內存儲的該文件的元數據,另一方面選擇是否開啟元數據預讀操作,若開啟,則按照預設規則從元數據節點內該文件的元數據所在的目錄下一次性地讀取預設個數的元數據,并緩存至本地節點。即當用戶連續對大量文件進行讀取時,通過開啟元數據預讀操作,能夠提高元數據在本地節點的緩存率,即提高了所打開文件的元數據緩存在本地節點的可能性,盡可能避免了在連續讀取大量文件時跨網讀取元數據的次數,節省了文件讀取時間,提高了文件讀取性能。
附圖說明
為了更清楚地說明本發明實施例中的技術方案,下面將對現有技術和實施例中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本發明的一些實施例,對于本領域普通技術人員來講,在不付出創造性勞動的前提下,還可以根據這些附圖獲得其他的附圖。
圖1為本發明提供的一種用于分布式系統的元數據讀取方法的過程的流程圖;
圖2為本發明提供的一種用于分布式系統的元數據讀取裝置的結構示意圖。
具體實施方式
本發明的核心是提供一種用于分布式系統的元數據讀取方法及其裝置,能夠提高元數據在本地節點的緩存率,盡可能避免在連續讀取大量文件時跨網讀取元數據的次數,節省文件讀取時間,提高文件讀取性能。
為使本發明實施例的目的、技術方案和優點更加清楚,下面將結合本發明實施例中的附圖,對本發明實施例中的技術方案進行清楚、完整地描述,顯然,所描述的實施例是本發明一部分實施例,而不是全部的實施例。基于本發明中的實施例,本領域普通技術人員在沒有做出創造性勞動前提下所獲得的所有其他實施例,都屬于本發明保護的范圍。
本發明提供了一種用于分布式系統的元數據讀取方法,參見圖1所示,圖1為本發明提供的一種用于分布式系統的元數據讀取方法的過程的流程圖;該方法包括:
步驟s101:當打開文件時,判斷當前本地節點內是否緩存有文件的元數據,若是,進入步驟s103;否則,進入步驟s102;
步驟s102:通過網絡從元數據節點內讀取文件的元數據并緩存至本地節點內,進入步驟s103;并選擇是否開啟元數據預讀操作,若是,按照預設規則從元數據節點中文件的元數據所在的目錄下讀取預設個數的元數據,并緩存至本地節點內;
步驟s103:按照文件的元數據進行文件讀取操作。
需要注意的是,步驟s102中,包括異步進行的兩個進程,即一旦判斷當前本地節點內未緩存有文件的元數據,則一個進程會通過網絡讀取文件的元數據并緩存至本地節點內,然后依據該元數據進行文件讀取操作,另一個進程會判斷是否開啟元數據預讀操作,若是,按照預設規則從元數據節點中文件的元數據所在的目錄下讀取預設個數的元數據,并緩存至本地節點內。兩個進程互不干擾,且無先后順序之分。
其中,這里的選擇是否開啟元數據預讀操作的過程具體為,輸出顯示元數據預讀提示至顯示界面,若接收到用戶輸入的開啟指令,則開啟元數據預讀操作,若接收到用戶輸入的拒絕指令,則不開啟;進一步可知,這里的元數據預讀提示上可鏈接有開啟按鈕與拒絕按鈕,用戶點擊開啟按鈕后,顯示界面即生成開啟指令,用戶點擊拒絕按鈕后,顯示界面即生成拒絕指令;當然,以上僅為優選方案,用戶也可通過預設的快捷鍵來表示開啟或拒絕,具體采用哪種方式本發明不做限定。
可以理解的是,當用戶需要連續讀取多個文件時,為避免多次跨網絡獲取元數據浪費時間,則可選擇開啟元數據預讀操作,提高所打開文件的元數據緩存在本地節點的可能性;若用戶僅讀取一個或較少的幾個文件時,即使每個文件均需要跨網絡讀取元數據也用不了很多時間,故此時可以選擇不開啟元數據預讀。當然,具體是否選擇開啟元數據預讀操作與用戶需求有關,本發明對此并不做限定。
另外,這里的預設個數為10~20個。當然,預設個數可根據實際情況自行設定,本發明對此不作限定。
作為優選地,按照預設規則從元數據節點中文件的元數據所在的目錄下讀取預設個數的元數據之前還包括:
從預設的多個規則內選擇一個作為當前預讀時預設規則。
可以理解的是,可預先在分布式系統中設置若干個不同的預設規則,用戶每次開啟元數據預讀后,為盡量提高預讀回來的元數據與自己將要讀取的文件的元數據的重合率,可根據待讀取的文件的特點自主選擇當前預讀時的預設規則。
其中,這里的預設規則具體為:
按照文件名稱的順序依次讀取。
另外,還可以為:
按照文件時間的順序依次讀取。
另外,還可以為:
按照文件大小的順序依次讀取。
當然,以上幾種預設規則為常見規則,僅為優選方案,也可根據需要設置其他的預設規則。
本發明提供了一種用于分布式系統的元數據讀取方法,在進行文件讀取時,若本地節點內未緩存有該文件的元數據,則一方面通過網絡讀取元數據節點內存儲的該文件的元數據,另一方面選擇是否開啟元數據預讀操作,若開啟,則按照預設規則從元數據節點內該文件的元數據所在的目錄下一次性地讀取預設個數的元數據,并緩存至本地節點。即當用戶連續對大量文件進行讀取時,通過開啟元數據預讀操作,能夠提高元數據在本地節點的緩存率,即提高了所打開文件的元數據緩存在本地節點的可能性,盡可能避免了在連續讀取大量文件時跨網讀取元數據的次數,節省了文件讀取時間,提高了文件讀取性能。
本發明還提供了一種用于分布式系統的元數據讀取裝置,參見圖2所示,圖2為本發明提供的一種用于分布式系統的元數據讀取裝置的結構示意圖。該裝置包括:
緩存確定模塊1,用于當打開文件時,判斷當前本地節點內是否緩存有文件的元數據,若是,觸發文件讀取模塊4;否則,觸發第一元數據讀取模塊2以及預讀開啟模塊3;
第一元數據讀取模塊2,用于通過網絡從元數據節點內讀取文件的元數據并緩存至本地節點內,觸發文件讀取模塊4;
預讀開啟模塊3,用于供用戶選擇是否開啟元數據預讀操作,若操作開啟,觸發第二元數據讀取模塊5;
第二元數據讀取模塊5,用于按照預設規則從元數據節點中文件的元數據所在的目錄下讀取預設個數的元數據,并緩存至本地節點內;
文件讀取模塊4,用于按照文件的元數據進行文件讀取操作。
本發明提供了一種用于分布式系統的元數據讀取裝置,在進行文件讀取時,若本地節點內未緩存有該文件的元數據,則一方面通過網絡讀取元數據節點內存儲的該文件的元數據,另一方面選擇是否開啟元數據預讀操作,若開啟,則按照預設規則從元數據節點內該文件的元數據所在的目錄下一次性地讀取預設個數的元數據,并緩存至本地節點。即當用戶連續對大量文件進行讀取時,通過開啟元數據預讀操作,能夠提高元數據在本地節點的緩存率,即提高了所打開文件的元數據緩存在本地節點的可能性,盡可能避免了在連續讀取大量文件時跨網讀取元數據的次數,節省了文件讀取時間,提高了文件讀取性能。
需要說明的是,在本說明書中,術語“包括”、“包含”或者其任何其他變體意在涵蓋非排他性的包含,從而使得包括一系列要素的過程、方法、物品或者設備不僅包括那些要素,而且還包括沒有明確列出的其他要素,或者是還包括為這種過程、方法、物品或者設備所固有的要素。在沒有更多限制的情況下,由語句“包括一個……”限定的要素,并不排除在包括所述要素的過程、方法、物品或者設備中還存在另外的相同要素。
對所公開的實施例的上述說明,使本領域專業技術人員能夠實現或使用本發明。對這些實施例的多種修改對本領域的專業技術人員來說將是顯而易見的,本文中所定義的一般原理可以在不脫離本發明的精神或范圍的情況下,在其他實施例中實現。因此,本發明將不會被限制于本文所示的這些實施例,而是要符合與本文所公開的原理和新穎特點相一致的最寬的范圍。