訪問服務器磁盤的方法、裝置及系統的制作方法
【技術領域】
[0001]本發明涉及互聯網技術領域,尤其涉及一種訪問服務器磁盤的方法、裝置及系統。
【背景技術】
[0002]企業內網中常常存在多個終端向服務器請求同一資源的情況。例如,員工電腦向服務器請求更新病毒庫,或者請求獲取監控配置信息。現有技術中,終端請求的數據資源通常存儲在服務器的磁盤上,不同終端分別與服務器建立連接,訪問服務器磁盤,讀取需要的數據資源。
[0003]由于每個終端都是獨立向服務器發起磁盤訪問請求的,因此服務器磁盤的讀寫壓力十分巨大。為降低服務器磁盤的讀寫壓力,人們對現有的訪問方式進行了改進:服務器將終端需要的數據資源緩存在服務器內存中,當終端請求數據資源時,服務器從內存中讀取該數據資源并返回給終端。這種方式能夠有效降低終端訪問服務器磁盤的次數。但是從服務器內存中讀取數據資源的方式也存在一定的問題:服務器內存無法對數據進行永久保存,當服務器清理內存后終端請求的數據資源不再存在。按照現有的實現方式,終端還是需要訪問服務器磁盤讀取。這就會導致大量終端會在一瞬間同時訪問服務器磁盤,對服務器磁盤造成更大的沖擊。
【發明內容】
[0004]本發明提供了一種訪問服務器磁盤的方法、裝置及系統,能夠解決大量終端同時訪問服務器磁盤的問題。
[0005]為解決上述問題,第一方面,本發明提供了一種訪問服務器磁盤的方法,該方法應用于終端側,該方法包括:
[0006]訪問服務器內存,讀取數據內容;
[0007]若服務器內存沒有保存數據內容,則向服務器請求加鎖;
[0008]若服務器未對其他終端加鎖,則在加鎖后訪問服務器磁盤,讀取數據內容;
[0009]若服務器已對其他終端加鎖,則等待其他終端解鎖后再次向服務器請求加鎖;
[0010]其中,服務器的加鎖程序在同一時刻上僅允許一個終端訪問服務器磁盤。
[0011]第二方面,本發明還提供了一種訪問服務器磁盤的方法,該方法應用于服務器側,該方法包括:
[0012]接收終端發送的數據請求,數據請求用于請求服務器側的數據內容;
[0013]若服務器內存中保存有數據內容,則將服務器內存中的數據內容返回給終端;
[0014]若服務器內存中沒有保存數據內容,則啟動加鎖程序對終端進行加鎖,以使得處于加鎖狀態下的終端訪問服務器磁盤,獲取數據內容,并使未加鎖的其他終端等待加鎖;
[0015]其中,加鎖程序在同一時刻上僅允許一個終端訪問服務器磁盤。
[0016]第三方面,本發明還提供了一種訪問服務器磁盤的裝置,該裝置位于終端側,該裝置包括:
[0017]讀寫單元,用于訪問服務器內存,讀取數據內容;
[0018]請求單元,用于當服務器內存沒有保存數據內容時,向服務器請求加鎖;
[0019]讀寫單元,用于當服務器未對其他終端加鎖時,在加鎖后訪問服務器磁盤,讀取數據內容;
[0020]請求單元,用于當服務器已對其他終端加鎖時,等待其他終端解鎖后再次向服務器請求加鎖;
[0021]其中,服務器的加鎖程序在同一時刻上僅允許一個終端訪問服務器磁盤。
[0022]第四方面,本發明還提供了一種訪問服務器磁盤的裝置,該裝置位于服務器側,該裝置包括:
[0023]接收單元,用于接收終端發送的數據請求,數據請求用于請求服務器側的數據內容;
[0024]發送單元,用于當服務器內存中保存有數據內容時,將服務器內存中的數據內容返回給終端;
[0025]加解鎖單元,用于當服務器內存中沒有保存數據內容時,啟動加鎖程序對終端進行加鎖,以使得處于加鎖狀態下的終端訪問服務器磁盤,獲取數據內容,并使未加鎖的其他終端等待加鎖;
[0026]其中,加鎖程序在同一時刻上僅允許一個終端訪問服務器磁盤。
[0027]第五方面,本發明還提供了一種訪問服務器磁盤的系統,該系統包括終端及服務器,其中:
[0028]該終端包括上述第三方面所指的裝置;
[0029]該服務器包括上述第四方面所指的裝置。
[0030]本發明提供的訪問服務器磁盤的方法、裝置及系統,能夠在終端需要請求服務器側的數據內容時,首先使終端訪問服務器內存,如果服務器內存中保存有該數據內容,則月艮務器將數據內容返回給終端;如果服務器內存中沒有存儲該數據內容,則終端訪問服務器磁盤。在訪問服務器磁盤前,終端首先要向服務器請求加鎖,終端只有在加鎖后才能訪問服務器磁盤,否則等待服務器對其他終端解鎖后再請求加鎖。本發明能夠通過加鎖程度限制訪問服務器磁盤的終端數量,在同一時刻上僅允許一個終端訪問服務器磁盤。與現有技術相比,無論訪問服務器磁盤的終端數量有多少,在同一時刻上請求調用服務器磁盤I/O口的終端數量都不會超過一個,因此本發明能夠有效消除大量終端同時訪問對服務器磁盤造成的沖擊。
[0031]上述說明僅是本發明技術方案的概述,為了能夠更清楚了解本發明的技術手段,而可依照說明書的內容予以實施,并且為了讓本發明的上述和其它目的、特征和優點能夠更明顯易懂,以下特舉本發明的【具體實施方式】。
【附圖說明】
[0032]通過閱讀下文優選實施方式的詳細描述,各種其他的優點和益處對于本領域普通技術人員將變得清楚明了。附圖僅用于示出優選實施方式的目的,而并不認為是對本發明的限制。而且在整個附圖中,用相同的參考符號表示相同的部件。在附圖中:
[0033]圖1示出了本發明實施例提供的第一種訪問服務器磁盤的方法流程圖;
[0034]圖2示出了本發明實施例提供的第二種訪問服務器磁盤的方法流程圖;
[0035]圖3示出了本發明實施例提供的第三種訪問服務器磁盤的方法流程圖;
[0036]圖4示出了本發明實施例提供的第四種訪問服務器磁盤的方法流程圖;
[0037]圖5示出了本發明實施例提供的第一種訪問服務器磁盤的裝置的組成框圖;
[0038]圖6示出了本發明實施例提供的第二種訪問服務器磁盤的裝置的組成框圖;
[0039]圖7示出了本發明實施例提供的第三種訪問服務器磁盤的裝置的組成框圖;
[0040]圖8示出了本發明實施例提供的一種訪問服務器磁盤的系統示意圖。
【具體實施方式】
[0041]下面將參照附圖更詳細地描述本公開的示例性實施例。雖然附圖中顯示了本公開的示例性實施例,然而應當理解,可以以各種形式實現本公開而不應被這里闡述的實施例所限制。相反,提供這些實施例是為了能夠更透徹地理解本公開,并且能夠將本公開的范圍完整的傳達給本領域的技術人員。
[0042]本發明實施例提供了一種訪問服務器磁盤的方法,該方法應用于終端側。如圖1所示,該方法包括:
[0043 ] 11、訪問服務器內存,讀取數據內容。
[0044]當終端需要向服務器請求某個數據內容時(例如要更新的病毒庫),終端向服務器發起傳輸控制協議(Transmiss1n Control Protocol,簡稱TCP)連接,經過三次握手后,月艮務器與終端之間完成TCP連接的建立,終端向服務器發送攜帶數據內容標識的數據請求。月艮務器在內存查找對應該內容標識的數據內容,如果緩存有該數據內容,則服務器將查找到的數據內容返回給終端。如果沒有緩存該數據內容,則終端執行步驟102,請求加鎖并訪問服務器磁盤。
[0045]本實施例中,如果服務器沒有緩存相應的數據內容,服務器可以基于TCP連接向終端發送一個通知,告知終端服務器內存中沒有存儲該數據內容,終端根據該通知啟動執行步驟102。或者服務器也可以不向終端服務器通知,終端在發起數據請求之后的預設時長內沒有接收到數據內容,則自動執行步驟102。
[0046]102、若服務器內存沒有保存數據內容,則向服務器請求加鎖。
[0047]服務器側部署有一套加鎖程序,該程序用于對訪問服務器磁盤的終端進行加鎖,只有被加鎖的終端才能夠訪問服務器磁盤,而沒有被加鎖的終端(例如等待加鎖的終端)則無法訪問服務器磁盤。本實施例中,服務器的加鎖程序在同一時刻上僅允許一個終端訪問服務器磁盤。由此可以有效防止大量終端同時訪問服務器磁盤。
[0048]在本實施例的一種實現方式中,加鎖程序為自旋鎖程序。自旋鎖提供了一種對資源進行互斥使用的機制,即在任何時刻,最多只能允許一個保持者訪問資源,也就說,在任何時刻最多只能有一個執行單元獲得加鎖。
[0049 ] 103、若服務器未對其他終端加鎖,則在加鎖后訪問服務器磁盤,讀取數據內容。
[0050]如果加鎖程序空閑,即當前沒有其他終端加鎖訪問服務器磁盤,則服務器執行加鎖程序對請求加鎖的終端進行加鎖。在完成加鎖后,終端被允許訪問服務器磁盤,向從中讀取對應內容標識的數據內容。
[0051]104、若服務器已對其他終端加鎖,則等待其他終端解鎖后再次向服務器請求加鎖。
[0052]如果加鎖程序被占用,即當前存在其他終端使用加鎖服務訪問服務器磁盤,則月艮務器不對終端的加鎖請求進行響應。在未接收到加鎖響應之前,終端處于持續等待的狀態,等待服務器對其他終端進行解鎖后響應該終端的加鎖請求。
[0053]當加鎖的其他終端完成對服務器磁盤的訪問后,服務器對其進行解鎖,解鎖后加鎖程序空閑,服務器對等待加鎖的終端進行加鎖,以使加鎖后的終端訪問服務器磁盤。
[0054]當有多個終端等待加鎖時,服務器可以按照請求加鎖的先后順序對各個終端的加鎖請求進行響應,也可以按照終端的優先級高低或者打分高低進行加鎖響應。其中,打分是指終端側給出的針對業務的打分,使用者可以根據自身的業務需求對數據請求進行打分,分數越高代表業務越緊急。終端在上報數據請求時將分數一同發送給服務器。
[0055]本發明實施例提供的訪問服務器磁盤的方法,