文件分發(fā)方法、裝置、設備及系統(tǒng)的制作方法
【技術領域】
[0001]本發(fā)明涉及計算機技術領域,尤其涉及一種文件分發(fā)方法、裝置、設備及系統(tǒng)。
【背景技術】
[0002]在目前的分布式集群中,文件一般存儲在網(wǎng)絡存儲系統(tǒng)中,集群中各設備在需要請求文件時,直接到該網(wǎng)絡存儲系統(tǒng)中獲取,其訪問效率較低,尤其在集群中設備數(shù)量較大的情況下,該網(wǎng)絡存儲系統(tǒng)作為集群中的中心存儲系統(tǒng)會存在訪問性能瓶頸問題。
【發(fā)明內容】
[0003]本發(fā)明解決的技術問題之一是提供一種文件分發(fā)方法、裝置、設備及系統(tǒng),提高系統(tǒng)訪問性能的同時保存存儲的一致性。
[0004]根據(jù)本發(fā)明一方面的一個實施例,提供了一種文件分發(fā)方法,包括:
[0005]確定待獲取文件的文件標識;
[0006]以所述文件標識為索引在分布式內存緩存系統(tǒng)中獲取文件版本信息;以及
[0007]以所述文件標識以及所述文件版本信息為索引在本地文件保存系統(tǒng)中獲取文件內容;
[0008]若本地文件保存系統(tǒng)中沒有所述文件內容,則從數(shù)據(jù)庫存儲系統(tǒng)中獲取文件內容。
[0009]可選地,所述文件版本信息包括以下任一項:
[0010]文件更新時間信息、文件簽名信息。
[0011]可選地,還包括:
[0012]若所述分布式內存緩存系統(tǒng)中沒有所述文件版本信息,則從數(shù)據(jù)庫存儲系統(tǒng)中獲取文件版本信息。
[0013]可選地,從數(shù)據(jù)庫存儲系統(tǒng)中獲取所述文件版本信息后,所述方法還包括:
[0014]將從數(shù)據(jù)庫存儲系統(tǒng)中獲取的所述文件版本信息以所述文件標識為索引保存到所述分布式內存緩存系統(tǒng)中。
[0015]可選地,從數(shù)據(jù)庫存儲系統(tǒng)中獲取所述文件內容后,所述方法還包括:
[0016]將從數(shù)據(jù)庫存儲系統(tǒng)中獲取的所述文件內容以所述文件標識為索引保存到所述本地文件保存系統(tǒng)中。
[0017]根據(jù)本發(fā)明另一方面的一個實施例,提供了一種文件分發(fā)裝置,包括:
[0018]用于確定待獲取文件的文件標識的單元;
[0019]用于以所述文件標識為索引在分布式內存緩存系統(tǒng)中獲取文件版本信息的單元;以及
[0020]用于以所述文件標識以及所述文件版本信息為索引在本地文件保存系統(tǒng)中獲取文件內容的單元;
[0021]用于若本地文件保存系統(tǒng)中沒有所述文件內容,則從數(shù)據(jù)庫存儲系統(tǒng)中獲取文件內容的單元。
[0022]可選地,所述文件版本信息包括以下任一項:
[0023]文件更新時間信息、文件簽名信息。
[0024]可選地,用于以所述文件標識在分布式內存緩存系統(tǒng)中獲取文件版本信息的單元還用于:
[0025]若所述分布式內存緩存系統(tǒng)中沒有所述文件版本信息,則從數(shù)據(jù)庫存儲系統(tǒng)中獲取文件版本信息。
[0026]可選地,還包括:
[0027]用于將從數(shù)據(jù)庫存儲系統(tǒng)中獲取的所述文件版本信息以所述文件標識為索引保存到所述分布式內存緩存系統(tǒng)中的單元。
[0028]可選地,還包括:
[0029]用于將從數(shù)據(jù)庫存儲系統(tǒng)中獲取的所述文件內容以所述文件標識為索引保存到所述本地文件保存系統(tǒng)中的單元。
[0030]根據(jù)本發(fā)明的另一方面的一個實施例,還提供了一種計算機設備,包括前述文件分發(fā)裝置。
[0031]根據(jù)本發(fā)明另一方面的一個實施例,提供了一種分布式內存緩存系統(tǒng),包括:
[0032]用于接收文件標識的裝置;
[0033]用于存儲文件版本信息的裝置;
[0034]用于以所接收的文件標識為索引在所述用于存儲文件版本信息的裝置中檢索并提供對應所接收文件標識的文件版本信息的裝置;
[0035]用于將所存儲的文件版本信息與用來存儲文件內容的數(shù)據(jù)庫存儲系統(tǒng)中的對應文件版本信息進行比較的裝置;以及
[0036]用于當所存儲的文件版本信息與所述數(shù)據(jù)庫存儲系統(tǒng)中的文件版本信息不一致時更新所述存儲的文件版本信息的裝置。
[0037]可選地,所述文件版本信息包括以下任一項:
[0038]文件更新時間信息、文件簽名信息。
[0039]本實施例在分布式內存緩存系統(tǒng)中獲取文件版本信息,以及在本地文件保存系統(tǒng)中獲取文件內容,并在本地文件保存系統(tǒng)中沒有所述文件內容情況下,可以從數(shù)據(jù)庫存儲系統(tǒng)中獲取文件內容,該文件分發(fā)方法利用本地文件保存系統(tǒng)、分布式內存緩存系統(tǒng)以及數(shù)據(jù)庫存儲系統(tǒng)各自的性能優(yōu)勢,既提高了分布式集群中文件的訪問性能,又保證了文件的同步性。
[0040]本領域普通技術人員將了解,雖然下面的詳細說明將參考圖示實施例、附圖進行,但本發(fā)明并不僅限于這些實施例。而是,本發(fā)明的范圍是廣泛的,且意在僅通過后附的權利要求限定本發(fā)明的范圍。
【附圖說明】
[0041]通過閱讀參照以下附圖所作的對非限制性實施例所作的詳細描述,本發(fā)明的其它特征、目的和優(yōu)點將會變得更明顯:
[0042]圖1是根據(jù)本發(fā)明一個實施例的文件分發(fā)方法的流程圖。
[0043]圖2是根據(jù)本發(fā)明一個實施例的文件分發(fā)裝置結構示意圖。
[0044]圖3是根據(jù)本發(fā)明另一個實施例文件分發(fā)裝置結構示意圖。
[0045]附圖中相同或相似的附圖標記代表相同或相似的部件。
【具體實施方式】
[0046]由于現(xiàn)有技術中將文件存儲于網(wǎng)絡存儲系統(tǒng)中,其存在訪問性能瓶頸問題。因此,本實施例在將文件存儲于數(shù)據(jù)庫存儲系統(tǒng)的同時,將集群中各設備的文件內容存儲于各自的本地文件保存系統(tǒng)中,并且本地文件保存系統(tǒng)(例如用戶終端)計算各自本地所存儲文件的版本信息,然后將文件版本信息保存到分布式內存緩存系統(tǒng)中。所述版本信息可以包括該版本文件在本地文件保存系統(tǒng)的存儲位置。各設備在需要請求文件時,可直接到分布式內存緩存系統(tǒng)中獲取文件版本信息,基于所獲取的文件版本信息確定本地文件保存系統(tǒng)保存的該文件的位置,以及到本地文件保存系統(tǒng)中獲取文件內容,以有效提高訪問性能。下面先介紹一下本申請實施例的文件創(chuàng)建以及修改方法。
[0047]本申請在創(chuàng)建一個文件時,以文件標識為索引將文件內容以及文件版本信息保存到數(shù)據(jù)庫存儲系統(tǒng)中。
[0048]在修改(即更新)一個文件時,以文件標識為索引查找到數(shù)據(jù)庫存儲系統(tǒng)中對應的文件內容以及文件版本信息,并對該文件內容和文件版本信息進行修改,同時,刪除分布式內存緩存系統(tǒng)中該文件標識對應的文件版本信息;或者同時更新分布式內存緩存系統(tǒng)中該文件標識對應的文件版本信息。
[0049]本申請實施例中所述的數(shù)據(jù)庫存儲系統(tǒng)、分布式內存緩存系統(tǒng)以及本地文件保存系統(tǒng)分別具有如下特性。
[0050]數(shù)據(jù)庫存儲系統(tǒng):其可以為MySQL(關系型數(shù)據(jù)庫管理系統(tǒng)),特點為能分布式部署和訪問,保證存儲的一致性,該數(shù)據(jù)庫存儲系統(tǒng)用于存儲分布式集群中所有設備的文件內容以及文件版本信息,具體的,以文件標識為索引保存各文件內容以及文件版本信息。[0051 ] 分布式內存緩存系統(tǒng),其可以為Memcached (—種分布式內存對象緩存系統(tǒng)),特點是能分布式部署和訪問,并提供極高的訪問性能。該分布式內存緩存系統(tǒng)用于存儲分布式集群各設備的文件版本信息,具體的以文件標識為索引保存各文件版本信息,該分布式內存緩存系統(tǒng)中保存的文件版本信息與數(shù)據(jù)庫存儲系統(tǒng)中保存的對應文件(對應同一文件標識)的版本信息一致。
[0052]本地文件保存系統(tǒng),即本地磁盤,特點是只能本機訪問,訪問性能較高,對一個設備來說,訪問本地文件保存系統(tǒng)沒有性能瓶頸,即使存在瓶頸也可以通過簡單擴容來解決。該本地文件保存系統(tǒng)用于保存本設備的文件內容以及文件版本信息。
[0053]下面結合附圖對本發(fā)明的文件分發(fā)操作進一步詳細描述。
[0054]圖1是根據(jù)本發(fā)明一個實施例的文件分發(fā)方法的流程圖。本發(fā)明中的方法主要通過計算機設備中的操作系統(tǒng)或處理控制器來完成。將操作系統(tǒng)或處理控制器稱為文件分發(fā)裝置。該計算機設備包括但不限于以下中的至少一個:用戶設備、網(wǎng)絡設備。用戶設備包括但不限于計算機、智能手機、PDA等。網(wǎng)絡設備包括但不限于單個網(wǎng)絡服務器、多個網(wǎng)絡服務器組成的服務器組或基于云計算的由大量計算機或網(wǎng)絡服務器構成的云,其中,云計算是分布式計算的一種,由一群松散耦合的計算機集組成的一個超級虛擬計算機。
[0055]如圖1中所示,本實施例的文件分發(fā)方法主要包括如下步驟:
[0056]S100、確定待獲取文件的文件標識;
[0057]當集群中一臺設備需要請求一個文件時,該設備會首先確定待獲取文件的文件標識,本實施例對該文件標識的形式不做具體限定,其可以為文字形式的文件名稱,也可以為數(shù)字或字母形式的文件編碼等等。
[0058]S110、以所述文件標識為索引在分布式內存緩存系統(tǒng)中獲取文件版本信息;
[0059]本實施例中,在請求文件版本信息時,直接以文件標識為索引到分布式內存緩存系統(tǒng)中獲取,該分布式內存緩存系統(tǒng)具有較高的訪問性能,可用于保存內容較小的文件版本信息。
[0060]其