TWI496014B - Decentralized cache object removal method, system and delete server - Google Patents
Decentralized cache object removal method, system and delete server Download PDFInfo
- Publication number
- TWI496014B TWI496014B TW099139795A TW99139795A TWI496014B TW I496014 B TWI496014 B TW I496014B TW 099139795 A TW099139795 A TW 099139795A TW 99139795 A TW99139795 A TW 99139795A TW I496014 B TWI496014 B TW I496014B
- Authority
- TW
- Taiwan
- Prior art keywords
- cache server
- server
- current
- time
- active
- Prior art date
Links
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Information Transfer Between Computers (AREA)
Description
本發明涉及網路技術領域,尤其涉及一種分散式快取的物件刪除方法、系統及刪除伺服器。
大型網站系統通常採用分散式快取結構對資料進行存取,例如,淘寶網(taobao.com)利用分散式快取結構對用戶所上傳的圖片進行存取。在分散式快取系統中,通常包含一個源資料伺服器和若干與該源資料伺服器進行通信的快取伺服器,以及一個調度器。分散式快取系統在回應用戶請求時,通常由調度器根據接收到的用戶請求,藉由一致性哈希調度演算法計算出該用戶需要從哪台快取伺服器上獲取資料,如果計算出的快取伺服器存在要獲取的資料,則將該資料返回調度器;如果計算出的快取伺服器不存在要獲取的資料,則向源資料伺服器索取該資料並將該資料保存在本機,同時將該資料返回給調度器,由調度器將資料返回給用戶。
在現有的分散式快取系統中,以淘寶網的圖片系統為例,賣家向網站上傳了一張惡意圖片,例如涉及侵權或者違法的圖片,該惡意圖片首先上傳到源圖片伺服器。當網路用戶藉由淘寶網的鏈結訪問該惡意圖片時,首先會訪問藉由一致性哈希演算法計算出的某台圖片快取伺服器,若該圖片快取伺服器上還未儲存該惡意圖片,該圖片快取伺服器將從源圖片伺服器獲取該惡意圖片並保存。當一旦發現系統中存在惡意圖片時,就需要對該惡意圖片進行刪除操作。現有技術中在刪除惡意圖片時,在分散式快取系統中的源圖片伺服器和所有圖片快取伺服器上執行刪除該惡意圖片的操作。
發明人在對現有技術的研究過程中發現,現有技術中的刪除方式由於需要在所有伺服器上執行刪除操作,但是並非所有的快取伺服器上都存在惡意資料,因此,這樣的操作方式將極大地增加伺服器的負擔,浪費伺服器資源,特別是對於包含大量快取伺服器的系統來說,不存在惡意資料的快取伺服器均要執行多餘的刪除操作,這降低了分散式快取系統的整體性能。
本發明實施例的目的是提供一種分散式快取的物件刪除方法、系統及刪除伺服器,以解決現有技術中所有分散式快取伺服器都需要執行刪除操作浪費伺服器資源,導致系統性能降低的問題。
為解決上述技術問題,本發明實施例提供了一種分散式快取的物件刪除方法,是這樣實現的:一種分散式快取的物件刪除方法,包括:接收刪除請求,所述刪除請求中包含物件的識別字;藉由對所述物件的識別字進行一致性哈希計算得到所述識別字的哈希結果值;根據所述哈希結果值定位到對應的快取伺服器,將所述對應的快取伺服器作為當前快取伺服器;判斷所述當前快取伺服器是否處於活躍狀態且活躍時間大於所述物件的過期時間;當判斷當前快取伺服器處於活躍狀態且所述活躍時間大於所述物件的過期時間時,從所述當前快取伺服器上刪除所述物件。
為解決上述技術問題,本發明實施例提供了一種分散式快取的物件刪除系統,是這樣實現的:一種分散式快取的物件刪除系統,包括:刪除伺服器和若干快取伺服器,所述快取伺服器,用於快取用戶訪問的物件;所述刪除伺服器,用於接收刪除請求,所述刪除請求中包含物件的識別字,藉由對所述物件的識別字進行一致性哈希計算得到所述識別字的哈希結果值,根據所述哈希結果值定位到對應的快取伺服器,將所述對應的快取伺服器作為當前快取伺服器,判斷所述當前快取伺服器是否處於活躍狀態且活躍時間大於所述物件的過期時間,當判斷當前快取伺服器處於活躍狀態且所述活躍時間大於所述物件的過期時間時,從所述當前快取伺服器上刪除所述物件。
為解決上述技術問題,本發明實施例還提供了一種刪除伺服器,是這樣實現的:一種刪除伺服器,包括:
接收單元,用於接收刪除請求,所述刪除請求中包含物件的識別字;計算單元,用於藉由對所述物件的識別字進行一致性哈希計算得到所述識別字的哈希結果值;定位單元,用於根據所述哈希結果值定位到對應的快取伺服器,將所述對應的快取伺服器作為當前快取伺服器;判斷單元,用於判斷所述當前快取伺服器是否處於活躍狀態且活躍時間大於所述物件的過期時間;刪除單元,用於當判斷當前快取伺服器處於活躍狀態且所述活躍時間大於所述物件的過期時間時,從所述當前快取伺服器上刪除所述物件。
可見,本發明實施例中接收包含物件的識別字的刪除請求,藉由對物件的識別字進行一致性哈希計算得到哈希結果值,根據哈希結果值定位到對應的快取伺服器,將對應的快取伺服器作為當前快取伺服器,判斷當前快取伺服器是否處於活躍狀態且活躍時間大於物件的過期時間,當判斷當前快取伺服器處於活躍狀態且活躍時間大於物件的過期時間時,從當前快取伺服器上刪除所述物件。由此可知,本發明實施例中無需在所有快取伺服器上執行刪除物件的操作,而是藉由比較所定位快取伺服器的活躍時間和物件的過期時間,精確定位到包含待刪除物件的快取伺服器,並執行刪除操作,由此節約了其他快取伺服器為執行刪除操作所要耗費的資源,提高了分散式快取系統的整體性能。
本發明實施例提供一種分散式快取的物件刪除方法、系統及刪除伺服器。
為了使本技術領域的人員更好地理解本發明實施例中的技術方案,並使本發明實施例的上述目的、特徵和優點能夠更加明顯易懂,下面結合附圖對本發明實施例中技術方案作進一步詳細的說明。
本發明實施例中對分散式快取系統中物件的刪除基於該系統中分散式快取伺服器上已經儲存的物件。因此,下面首先結合一致性哈希演算法描述一下現有系統中物件如何在分散式快取伺服器上進行存取。
分散式快取系統中,藉由一致性哈希演算法計算後的快取伺服器將根據其哈希值的大小配置在一個0至2的32次方的圓環上。在計算快取伺服器的哈希值時,將每個快取伺服器的IP位址藉由選定的哈希函數進行計算得到一個哈希值,該哈希值為一個32位元的整數,根據該整數的大小將其對應的快取伺服器映射在圓環上的相應位置。參見圖1,為一個0至2的32次方的圓環示例,假設分散式快取系統中包含四個快取伺服器,則經過一致性哈希計算後,四個快取伺服器根據其哈希值的大小如圖1所示映射在圓環上,順時針依次為快取伺服器1、快取伺服器2、快取伺服器3和快取伺服器4;當用戶想要藉由分散式快取伺服器訪問某個物件時(物件可以為圖片、音視頻等網路資源),對該物件進行哈希計算(通常對物件的識別字URL進行哈希計算),將得到的哈希值作為鍵值,根據該鍵值的大小將其映射到0至2的32次方的圓環上的相應位置,並將該鍵值所在的位置作為起始位置,在圓環上順時針查找到第一個快取伺服器,用戶藉由該查找到的第一個快取伺服器訪問所要訪問的物件,如果順時針查找到的第一個快取伺服器不可用(例如宕機),則繼續順時針查找,直到找到一個可用的快取伺服器。如果找到的可用快取伺服器上存在用戶要訪問的物件,則將該物件藉由調度伺服器返回給用戶,如果找到的可用快取伺服器上不存在用戶要訪問的物件,則該快取伺服器向源資料伺服器索取該物件並將該物件保存在本機上,同時將該物件返回給調度伺服器,由調度伺服器將物件返回給用戶。
儲存在快取伺服器上的每個物件都有其過期時間,當物件的快取時間超過過期時間時,快取伺服器將自動刪除該物件。此後當用戶再次藉由該快取伺服器訪問該物件時,則可以重新從源資料伺服器上獲取該物件,並重複執行前述流程。
參見圖2,為本發明分散式快取的物件刪除方法的第一實施例流程圖,該實施例僅示出了所定位的快取伺服器的活躍時間大於待刪除物件的存活時間時的物件刪除過程:
步驟201:接收刪除請求,該刪除請求中包含物件的識別字。
當分散式快取系統應用在大型網站時,物件具體指圖片、音視頻等網路資源,每一個具體的網路資源藉由URL(Universal Resource Locator,統一資源定位符)進行定位。
步驟202:藉由對物件的識別字進行一致性哈希計算得到識別字的哈希結果值。
本步驟中對物件的識別字進行一致性哈希計算得到哈希結果值的過程,與現有技術中為實現物件的存取所進行的計算過程一致,在此不再贅述。
步驟203:根據哈希結果值定位到對應的快取伺服器,將該對應的快取伺服器作為當前快取伺服器。
結合圖1所示的一致性哈希圓環可知,對物件的識別字進行一致性哈希計算並獲得哈希結果值後,可以將該哈希結果值作為鍵值映射到一致性哈希圓環上的相應位置,並從該位置開始順時針查找第一個快取伺服器,由於該查找到的第一個快取伺服器即為用戶要訪問該物件時所調度的快取伺服器,因此該第一個快取伺服器在活躍狀態下,並且有用戶訪問該物件且該物件的過期時間未超過時,必然快取了待刪除的物件。
步驟204:判斷當前快取伺服器是否處於活躍狀態且活躍時間大於物件的過期時間。
步驟205:當判斷當前快取伺服器處於活躍狀態且活躍時間大於物件的過期時間時,從當前快取伺服器上刪除該物件。
活躍時間指快取伺服器處於活躍狀態的持續時間,當所定位的第一個快取伺服器處於活躍狀態,且活躍時間大於物件的過期時間,則由於該快取伺服器當前活躍,則所有訪問物件的請求都將發送到該快取伺服器,而其他快取伺服器上即使存在過該物件,也會因為存在時間超過了物件的過期時間而被自動刪除,此時只需要在所定位的第一個快取伺服器上執行刪除URL的操作即可。
參見圖3,為本發明分散式快取的物件刪除方法的第二實施例流程圖,該實施例詳細示出了根據所定位快取伺服器的活躍狀態及狀態歷史資訊實現物件刪除的過程:
步驟301:預先建立快取伺服器的狀態表,並藉由狀態表保存每一個快取伺服器最後一次發生狀態變化時的時間戳記,以及每一個快取伺服器的當前狀態。
本發明實施例中建立快取伺服器的狀態表,狀態表的每一個表項用於記錄一個快取伺服器最後一次發生狀態變化時的時間戳記,以及每一個快取伺服器的當前狀態。其中,藉由時間戳記可以確定快取伺服器當前狀態的持續時間,當前狀態可以包括活躍狀態和非活躍狀態,非活躍狀態通常指快取伺服器發生宕機。
步驟302:接收刪除請求,該刪除請求中包含物件的識別字。
步驟303:藉由對物件的識別字進行一致性哈希計算得到識別字的哈希結果值。
步驟304:根據哈希結果值定位到對應的快取伺服器,將對應的快取伺服器作為當前快取伺服器。
步驟305:判斷當前快取伺服器是否處於活躍狀態,若是,則執行步驟306;否則,執行步驟309。
步驟306:判斷當前快取伺服器的活躍時間是否大於物件的過期時間,若是,則執行步驟307;否則,執行步驟308。
步驟307:從當前快取伺服器上刪除該物件,結束當前流程。
當根據狀態表查找到當前快取伺服器處於活躍狀態,且活躍時間大於物件的過期時間,則由於該快取伺服器當前活躍,所有訪問該物件的請求都將發送到該快取伺服器,而其他快取伺服器上即使存在過該物件,也會因為存在時間超過了物件的過期時間而被自動刪除,此時只需要在所定位的第一個快取伺服器上執行刪除URL的操作即可。
步驟308:從當前快取伺服器上刪除該物件,從當前快取伺服器順序遷移到下一台快取伺服器,並將下一台快取伺服器作為當前快取伺服器,返回步驟305。
當根據狀態表查找到當前快取伺服器處於活躍狀態,且根據其時間戳記的記載判斷其活躍時間小於物件的過期時間,則首先從快取伺服器上刪除該物件;然後,考慮到假如該快取伺服器在活躍狀態之前為非活躍狀態,則該快取伺服器處於非活躍狀態時,訪問該待刪除物件的請求可能順序遷移到一致性哈希圓環上該當前快取伺服器的下一台快取伺服器,使得下一台快取伺服器上也可能快取了該物件,因此需要順序獲取下一台快取伺服器,並將該下一台快取伺服器作為當前快取伺服器,重新對其狀態進行判斷,因此返回步驟305。
步驟309:判斷當前快取伺服器的非活躍時間是否大於物件的過期時間,若是,則執行步驟310;否則,執行步驟311。
步驟310:從當前快取伺服器順序遷移到下一台快取伺服器,並將下一台快取伺服器作為當前快取伺服器,返回步驟305。
當根據狀態表查找到當前快取伺服器處於非活躍狀態,且根據其時間戳記的記載判斷其非活躍時間大於物件的過期時間,則在當前快取伺服器的非活躍時間內,對待刪除物件的訪問可能順序遷移到一致性哈希圓環上該當前快取伺服器的下一台快取伺服器,使得下一台快取伺服器上也可能快取了該物件,因此需要順序獲取下一台快取伺服器,並將該下一台快取伺服器作為當前快取伺服器,重新對其狀態進行判斷,因此返回步驟305。
而對於原來非活躍時間大於物件的過期時間的快取伺服器來說,當其一旦恢復到活躍狀態,由於已經超過了物件的過期時間,因此該快取伺服器會自動執行對物件的刪除操作。
步驟311:記錄該物件的識別字,從當前快取伺服器順序遷移到下一台快取伺服器,並將下一台快取伺服器作為當前快取伺服器,返回步驟305。
當根據狀態表查找到當前快取伺服器處於非活躍狀態,且根據其時間戳記的記載判斷其非活躍時間小於物件的過期時間,則在當前快取伺服器的非活躍時間內,對待刪除物件的訪問可能順序遷移到一致性哈希圓環上該當前快取伺服器的下一台快取伺服器,使得下一台快取伺服器上也可能快取了該物件,因此需要順序獲取下一台快取伺服器,並將該下一台快取伺服器作為當前快取伺服器,重新對其狀態進行判斷,因此返回步驟305。
而對於原來非活躍時間小於物件的過期時間的快取伺服器來說,需要同時記錄該待刪除物件的識別字,以便當該快取伺服器在小於物件的過期時間內恢復到活躍狀態時,可以根據記錄的識別字刪除該物件。
參見圖4,為應用本發明分散式快取的物件刪除方法實施例的一種系統結構示意圖:該系統結構中包括一個源資料伺服器,N個快取伺服器(N為正整數),一個調度伺服器和一個刪除代理伺服器。其中,刪除代理伺服器為本發明實施例為了實現對分散式快取的物件進行刪除所增加的伺服器,而源資料伺服器、快取伺服器和調度伺服器仍然按照現有方式實現資料在分散式快取系統中的存取過程。
其中,調度伺服器(也可稱為負載均衡調度器haproxy)接收用戶的物件訪問請求,並根據一致性哈希演算法調度某個快取伺服器,調度過程與前述對現有技術的描述過程一致,在此不再贅述。
快取伺服器(可以藉由在伺服器上承載開源快取服務程式squid實現)接收調度伺服器的調度請求,從本機快取中返回用戶要訪問的物件,或者從源資料伺服器中獲取並返回用戶要訪問的物件。
刪除代理伺服器(purge agent)為本發明系統結構中增加的伺服器,其採用與調度伺服器同樣的一致性哈希演算法,實現對快取物件的刪除。該刪除代理伺服器可以是一台獨立的伺服器,或者也可以整合在某個快取伺服器中,由該快取伺服器同時執行刪除功能,刪除代理伺服器可以與系統中的所有快取伺服器進行通信。系統中的物件刪除請求會傳輸到該刪除代理伺服器,例如,當監測到惡意圖片需要刪除,或者某個商品退市時其圖片也需要刪除,此時向該刪除代理伺服器發送刪除請求,該刪除請求中包含待刪除物件的識別字(例如,惡意圖片的鏈結位址)。同時,刪除代理伺服器上還維護一個包含所有快取伺服器的狀態資訊的狀態表,該狀態表中記錄了每個快取伺服器的兩條資訊,一條資訊是快取伺服器最後一次發生狀態變化的時間戳記(藉由該時間戳記可以計算快取伺服器最後一次狀態變化的持續時間),另一條資訊是快取伺服器的當前狀態,藉由該當前狀態可以判斷快取伺服器當前處於活躍狀態還是宕機狀態。
假設待刪除物件的識別字為url_a,則結合圖1的一致性哈希圓環對本發明實施例的刪除過程進行描述。url_a代表一個網站資源,通常為物件的鏈結位址,當確定要刪除url_a後,首先在源資料伺服器上刪除該物件,然後刪除快取伺服器上存在的url_a。此時,對url_a進行一致性哈希計算後,確定要訪問url_a則首先對應到一致性哈希圓環上的快取伺服器1,然後查找狀態表,其處理流程如圖5所示:
步驟501:接收包含url_a的物件刪除請求。
步驟502:根據一致性哈希計算確定訪問url_a需要調度的快取伺服器1。
步驟503:判斷當前調度的快取伺服器是否處於活躍狀態,並且其活躍時間大於物件url_a的過期時間,若是,則執行步驟504;否則,執行步驟505。
步驟504:在當前調度的快取伺服器上刪除物件url_a,結束當前流程。
如果查找到快取伺服器1的當前狀態為“活躍”,且根據其時間戳記的記載判斷其活躍時間大於url_a的過期時間,則說明無論該快取伺服器1是否宕機過,由於該快取伺服器1當前活躍,則所有訪問url_a的請求都將發送到快取伺服器1,而其他快取伺服器上即使存在該物件url_a,也會因為存在時間超過了url_a的過期時間而被自動刪除,此時只需要在快取伺服器1上執行刪除url的操作即可。
步驟505:判斷當前調度的快取伺服器是否仍然處於宕機狀態,若是,則執行步驟506;否則,執行步驟508。
步驟506:判斷當前處於宕機狀態的快取伺服器的宕機時長是否超過物件url_a的過期時間,若是,則執行步驟509;否則,執行步驟507。
如果查找到快取伺服器1的當前狀態為“宕機”,且根據其時間戳記的記載判斷其宕機時長超過物件url_a的過期時間,則在快取伺服器1“宕機”時間內,對物件url_a的訪問可能順序遷移到快取伺服器2至快取伺服器4中的任意一台,因此需要順序獲取下一台快取伺服器,並對該快取伺服器重複從步驟503開始執行;而對於快取伺服器1本身,當其一旦恢復活躍狀態,由於已經超過物件url_a的過期時間,因此快取伺服器1會自動執行對物件url_a的刪除操作。
步驟507:保存當前快取伺服器及物件url_a,執行步驟509。
如果查找到快取伺服器1的當前狀態為“宕機”,且根據其時間戳記的記載判斷其宕機時長小於物件url_a的過期時間,則在快取伺服器1“宕機”時間內,對物件url_a的訪問可能順序遷移到快取伺服器2至快取伺服器4中的任意一台,因此需要順序獲取下一台快取伺服器,並對該快取伺服器重複從步驟503開始執行;而由於快取伺服器1的宕機時長小於物件url_a的過期時間,因此需要同時記錄該物件的url_a,以便當快取伺服器1在小於物件url_a的過期時間內恢復活躍狀態時,可以根據該記錄刪除物件url_a。
其中,可以將當前快取伺服器1和物件的url_a的對應關係保存到延遲刪除列表中,當快取伺服器1在小於物件url_a的過期時間內恢復活躍狀態時,根據該延遲刪除列表中記錄的表項刪除該快取伺服器1上的物件url_a。
步驟508:在當前快取伺服器上刪除物件url_a。
如果查找到快取伺服器1的當前狀態為“活躍”,且根據其時間戳記的記載判斷其活躍時間小於url_a的過期時間,則首先從快取伺服器1上刪除url_a;然後,考慮到假如快取伺服器1在“活躍”狀態之前為“宕機”狀態,則快取伺服器1在“宕機”狀態時,訪問url_a的請求可能順序遷移到快取伺服器2至快取伺服器4中的任意一台,因此需要順序獲取下一台快取伺服器,並對該快取伺服器重複從步驟503開始執行。
步驟509:判斷是否能夠從當前快取伺服器映射到下一個快取伺服器,若是,則執行步驟510;否則,結束當前流程。
步驟510:順序從當前快取伺服器映射到下一個快取伺服器,返回步驟503。
由此可見,本發明實施例中,刪除代理伺服器保持與調度伺服器相同的一致性哈希演算法,藉由結合快取伺服器的狀態變化資訊,對待刪除物件所在的快取伺服器進行精確定位,由於能準確全面地刪除物件,而無需對所有快取伺服器都執行刪除操作,因此與現有技術相比,減少了在系統中所有快取伺服器上執行刪除操作所佔用的系統資源。
下面結合圖6,藉由分散式快取圖片系統中對惡意圖片進行刪除為例描述本發明實施例的實現過程:
假設分散式快取系統中包含三個快取伺服器,分別為S1、S2和S3,每個快取伺服器以其IP位址為標識進行識別,藉由選定的哈希函數hash_fuction_x將對S1、S2和S3的IP位址分別進行哈希計算,假設得到的哈希值為三個整數,分別為1000、2000、3000,則這三個快取伺服器在圓環上的映射位置如圖3A所示,並且,假設這三個快取伺服器初始時刻的狀態表如下表1所示,其中Last_stamp表示快取伺服器最後一次發生狀態變化時的時間戳記,Current_status表示快取伺服器的當前狀態:
上表1中,S1、S2和S3在初始時刻的Last_stamp為“0”,表示在初始時刻S1、S2和S3的時間戳記均為0,時間戳記可以以“天”為單位進行記錄,例如,初始開機為第一天,則時間戳記為“0”,後續每過一天,時間戳記的值順序增加1;Current_status為“UP”,表示S1、S2和S3在初始時刻都處於活躍狀態,當Current_status為“DOWN”時,表示處於宕機狀態。
假設在時刻1,用戶想要訪問物件資源url_1,對該url_1藉由哈希函數hash_fuction_x計算後,得到的哈希值為253,將該哈希值映射到圖3A所示的圓環上,從哈希值253映射的位置開始順時針查找到的第一個快取伺服器為S1,因此訪問物件資源url_1的請求由S1進行處理,假設用戶第一次藉由S1訪問url_1,則S1從源伺服器獲取該物件資源url_1,保存該url_1並將該url_1返回給客戶。
假設在時刻2,S1發生宕機,則此時更新快取伺服器的狀態表,如下表2所示:
上表2中,S1的Current_status為“DOWN”,表示S1最近一次發生狀態變化後的狀態為“宕機”,即S1當前處於“宕機”狀態,Last_stamp從“0”變為“2”,表示S1變化為“宕機”狀態的時間戳記為“2”,則S1處於“宕機”狀態的持續時間為當前時刻的時間戳記與該時間戳記“2”的差值。
假設在時刻3,用戶再次想要訪問物件資源url_1,則對該url_1藉由哈希函數hash_fuction_x計算後,得到的哈希值為253,從圓環上哈希值253映射的位置開始順時針查找到的第一個快取伺服器為S1,此時藉由狀態表表2查找到S1宕機,因此從S1開始在圓環上順時針查找到下一個快取伺服器為S2,此時S2處於活躍狀態,因此訪問物件資源url_1的請求由S2進行處理,此時S1和S2上都快取了物件資源url_1。
假設在時刻4,監測到物件資源url_1為惡意圖片,則需要將該url_1從分散式快取系統中刪除,此時可以由系統維護人員藉由HTTP的標準post方法向刪除代理伺服器發送一條刪除請求,該刪除請求中包含的刪除目標為url_1。
刪除代理伺服器接收到刪除請求後,讀取其中的刪除目標url_1,並藉由哈希函數hash_fuction_x計算url_1的哈希值為253,此時將哈希值253映射到圖3A所示的圓環上,從哈希值253映射的位置開始順時針查找到的第一個快取伺服器為S1,此時進一步查找狀態表可知S1從時刻2開始持續處於宕機狀態,因此儲存在S1上的url_1無法立刻刪除,將S1和對應的url_1添加到延遲刪除列表中,待S1恢復後再進行刪除;然後在圓環上從S1開始順時針查找到S2,進一步查找狀態表可知S2此時處於活躍狀態,因此將刪除請求發送給S2,由S2根據刪除請求查找到其上快取的惡意圖片url_1並刪除,由於S2在歷史時刻未宕機過,因此刪除操作結束。
與本發明分散式快取的物件刪除方法的實施例相對應,本發明還提供了分散式快取的物件刪除系統及刪除伺服器的實施例。
參見圖7,為本發明分散式快取的物件刪除系統的實施例區塊圖:該系統包括:若干快取伺服器710和刪除伺服器720。
其中,所述若干快取伺服器710,用於快取用戶訪問的物件;所述刪除伺服器720,用於接收刪除請求,所述刪除請求中包含物件的識別字,藉由對所述物件的識別字進行一致性哈希計算得到所述識別字的哈希結果值,根據所述哈希結果值定位到對應的快取伺服器,將所述對應的快取伺服器作為當前快取伺服器,判斷所述當前快取伺服器是否處於活躍狀態且活躍時間大於所述物件的過期時間,當判斷當前快取伺服器處於活躍狀態且所述活躍時間大於所述物件的過期時間時,從所述當前快取伺服器上刪除所述物件。
進一步,所述刪除伺服器,還用於當判斷所述活躍時間小於所述過期時間時,從所述當前快取伺服器上刪除所述物件,從所述當前快取伺服器順序遷移到下一台快取伺服器,並將所述下一台快取伺服器作為當前快取伺服器,返回執行所述判斷當前快取伺服器是否處於活躍狀態且活躍時間大於所述物件的過期時間的功能;
所述刪除伺服器,還用於當所述當前快取伺服器處於非活躍狀態時,判斷所述當前快取伺服器的非活躍時間是否大於所述物件的過期時間,當所述非活躍時間大於所述過期時間時,從所述當前快取伺服器順序遷移到下一台快取伺服器,並將所述下一台快取伺服器作為當前快取伺服器,返回執行所述判斷當前快取伺服器是否處於活躍狀態且活躍時間大於所述物件的過期時間的功能;所述刪除伺服器,還用於當所述非活躍時間不大於所述過期時間時,記錄所述識別字,並執行從所述當前快取伺服器順序遷移到下一台快取伺服器的功能,以及當所述當前快取伺服器進入活躍狀態後,根據所述記錄的識別字刪除所述物件;所述刪除伺服器,還用於預先建立快取伺服器的狀態表,藉由所述狀態表保存每一個快取伺服器最後一次發生狀態變化時的時間戳記,以及每一個快取伺服器的當前狀態,其中所述時間戳記用於判斷所述快取伺服器的當前狀態的持續時間。
參見圖8,為本發明刪除伺服器的第一實施例區塊圖:該刪除伺服器包括:接收單元810、計算單元820、定位單元830、判斷單元840和刪除單元850。
其中,接收單元810,用於接收刪除請求,所述刪除請求中包含物件的識別字;計算單元820,用於藉由對所述物件的識別字進行一致性哈希計算得到所述識別字的哈希結果值;定位單元830,用於根據所述哈希結果值定位到對應的快取伺服器,將所述對應的快取伺服器作為當前快取伺服器;判斷單元840,用於判斷所述當前快取伺服器是否處於活躍狀態且活躍時間大於所述物件的過期時間;刪除單元850,用於當判斷當前快取伺服器處於活躍狀態且所述活躍時間大於所述物件的過期時間時,從所述當前快取伺服器上刪除所述物件。
參見圖9,為本發明刪除伺服器的第二實施例區塊圖:
該刪除伺服器包括:建立單元910、保存單元920、接收單元930、計算單元940、定位單元950、判斷單元960、刪除單元970、遷移單元980和記錄單元990。
其中,建立單元910,用於預先建立快取伺服器的狀態表;保存單元920,用於藉由所述狀態表保存每一個快取伺服器最後一次發生狀態變化時的時間戳記,以及每一個快取伺服器的當前狀態,其中所述時間戳記用於判斷所述快取伺服器的當前狀態的持續時間;接收單元930,用於接收刪除請求,所述刪除請求中包含物件的識別字;計算單元940,用於藉由對所述物件的識別字進行一致性哈希計算得到所述識別字的哈希結果值;定位單元950,用於根據所述哈希結果值定位到對應的快取伺服器,將所述對應的快取伺服器作為當前快取伺服器;判斷單元960,用於判斷所述當前快取伺服器是否處於活躍狀態且活躍時間大於所述物件的過期時間;刪除單元970,用於當判斷當前快取伺服器處於活躍狀態且所述活躍時間大於所述物件的過期時間時,從所述當前快取伺服器上刪除所述物件;所述刪除單元970,還用於當判斷所述活躍時間小於所述過期時間時,從所述當前快取伺服器上刪除所述物件;遷移單元980,用於從所述當前快取伺服器順序遷移到下一台快取伺服器,並將所述下一台快取伺服器作為當前快取伺服器,並觸發所述判斷單元960;所述判斷單元970,還用於當所述當前快取伺服器處於非活躍狀態時,判斷所述當前快取伺服器的非活躍時間是否大於所述物件的過期時間;所述遷移單元980,還用於當所述非活躍時間大於所述過期時間時,從所述當前快取伺服器順序遷移到下一台快取伺服器,並將所述下一台快取伺服器作為當前快取伺服器,並觸發所述判斷單元960;記錄單元990,用於當所述非活躍時間不大於所述過期時間時,記錄所述識別字,並觸發所述遷移單元980;所述刪除單元970,還用於當所述當前快取伺服器進入活躍狀態後,根據所述記錄的識別字刪除所述物件。
藉由以上的實施方式的描述可知,本發明實施例中接收包含物件的識別字的刪除請求,藉由對物件的識別字進行一致性哈希計算得到哈希結果值,根據哈希結果值定位到對應的快取伺服器,將對應的快取伺服器作為當前快取伺服器,判斷當前快取伺服器是否處於活躍狀態且活躍時間大於物件的過期時間,當判斷當前快取伺服器處於活躍狀態且活躍時間大於物件的過期時間時,從當前快取伺服器上刪除所述物件。由此可知,本發明實施例中無需在所有快取伺服器上執行刪除物件的操作,而是藉由比較所定位快取伺服器的活躍時間和物件的過期時間,精確定位到包含待刪除物件的快取伺服器,並執行刪除操作,由此節約了其他快取伺服器為執行刪除操作所要耗費的資源,提高了分散式快取系統的整體性能。
藉由以上的實施方式的描述可知,本領域的技術人員可以清楚地瞭解到本發明可借助軟體加必需的通用硬體平臺的方式來實現。基於這樣的理解,本發明的技術方案本質上或者說對現有技術做出貢獻的部分可以以軟體產品的形式體現出來,該電腦軟體產品可以儲存在儲存媒體中,如ROM/RAM、磁碟、光碟等,包括若干指令用以使得一台電腦設備(可以是個人電腦,伺服器,或者網路設備等)執行本發明各個實施例或者實施例的某些部分所述的方法。
本說明書中的各個實施例均採用遞進的方式描述,各個實施例之間相同相似的部分互相參見即可,每個實施例重點說明的都是與其他實施例的不同之處。尤其,對於系統實施例而言,由於其基本相似於方法實施例,所以描述的比較簡單,相關之處參見方法實施例的部分說明即可。
本發明可用於眾多通用或專用的計算系統環境或配置中。例如:個人電腦、伺服器電腦、手持設備或可攜式設備、平板型設備、多處理器系統、基於微處理器的系統、機上盒、可編程的消費電子設備、網路PC、小型電腦、大型電腦、包括以上任何系統或設備的分散式計算環境等等。
本發明可以在由電腦執行的電腦可執行指令的一般上下文中描述,例如程式模組。一般地,程式模組包括執行特定任務或實現特定抽象資料類型的常式、程式、物件、元件、資料結構等等。也可以在分散式計算環境中實踐本發明,在這些分散式計算環境中,由藉由通信網路而被連接的遠端處理設備來執行任務。在分散式計算環境中,程式模組可以位於包括儲存設備在內的本地和遠端電腦儲存媒體中。
雖然藉由實施例描繪了本發明,本領域普通技術人員知道,本發明有許多變形和變化而不脫離本發明的精神,希望所附的申請專利範圍包括這些變形和變化而不脫離本發明的精神。
1...快取伺服器
2...快取伺服器
3...快取伺服器
4...快取伺服器
710...快取伺服器
720...刪除伺服器
810...接收單元
820...計算單元
830...定位單元
840...判斷單元
850...刪除單元
910...建立單元
920...保存單元
930...接收單元
940...計算單元
950...定位單元
960...判斷單元
970...刪除單元
980...遷移單元
990...記錄單元
為了更清楚地說明本發明實施例或現有技術中的技術方案,下面將對實施例或現有技術描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本發明中記載的一些實施例,對於本領域普通技術人員來講,在不付出創造性勞動性的前提下,還可以根據這些附圖獲得其他的附圖。
圖1為本發明實施例中一致性哈希圓環的示意圖;
圖2為本發明分散式快取的物件刪除方法的第一實施例流程圖;
圖3為本發明分散式快取的物件刪除方法的第二實施例流程圖;
圖4為應用本發明分散式快取的物件刪除方法實施例的一種系統結構示意圖;
圖5為應用圖4中的系統結構執行物件刪除的流程;
圖6為本發明應用實例中的一致性哈希圓環示意圖;
圖7為本發明分散式快取的物件刪除系統的實施例區塊圖;
圖8為本發明刪除伺服器的第一實施例區塊圖;
圖9為本發明刪除伺服器的第二實施例區塊圖。
Claims (15)
- 一種分散式快取的物件刪除方法,其特徵在於,包括:接收刪除請求,該刪除請求中包含物件的識別字;藉由對該物件的識別字進行一致性哈希計算得到該識別字的哈希結果值;根據該哈希結果值定位到對應的快取伺服器,將該對應的快取伺服器作為當前快取伺服器;判斷該當前快取伺服器是否處於活躍狀態且活躍時間大於該物件的過期時間;當判斷當前快取伺服器處於活躍狀態且該活躍時間大於該物件的過期時間時,從該當前快取伺服器上刪除該物件。
- 根據申請專利範圍第1項之方法,其中,還包括:當判斷該活躍時間小於該過期時間時,從該當前快取伺服器上刪除該物件;從該當前快取伺服器順序遷移到下一台快取伺服器,並將該下一台快取伺服器作為當前快取伺服器,返回該判斷當前快取伺服器是否處於活躍狀態且活躍時間大於該物件的過期時間的步驟。
- 根據申請專利範圍第2項之方法,其中,該根據該哈希結果值定位到對應的快取伺服器之後,還包括:當該當前快取伺服器處於非活躍狀態時,判斷該當前快取伺服器的非活躍時間是否大於該物件的過期時間; 當該非活躍時間大於該過期時間時,從該當前快取伺服器順序遷移到下一台快取伺服器,並將該下一台快取伺服器作為當前快取伺服器,返回該判斷當前快取伺服器是否處於活躍狀態且活躍時間大於該物件的過期時間的步驟。
- 根據申請專利範圍第3項之方法,其中,還包括:當該非活躍時間不大於該過期時間時,記錄該識別字,並執行從該當前快取伺服器順序遷移到下一台快取伺服器的步驟;當該當前快取伺服器進入活躍狀態後,根據該記錄的識別字刪除該物件。
- 根據申請專利範圍第1至4項中任意一項之方法,其中,還包括:預先建立快取伺服器的狀態表;藉由該狀態表保存每一個快取伺服器最後一次發生狀態變化時的時間戳記,以及每一個快取伺服器的當前狀態,其中該時間戳記用於判斷該快取伺服器的當前狀態的持續時間。
- 一種分散式快取的物件刪除系統,其特徵在於,包括:刪除伺服器和複數個快取伺服器,該等快取伺服器,用於快取用戶訪問的物件;該刪除伺服器,用於接收刪除請求,該刪除請求中包含物件的識別字,藉由對該物件的識別字進行一致性哈希計算得到該識別字的哈希結果值,根據該哈希結果值定位 到對應的快取伺服器,將該對應的快取伺服器作為當前快取伺服器,判斷該當前快取伺服器是否處於活躍狀態且活躍時間大於該物件的過期時間,當判斷當前快取伺服器處於活躍狀態且該活躍時間大於該物件的過期時間時,從該當前快取伺服器上刪除該物件。
- 根據申請專利範圍第6項之系統,其中,該刪除伺服器,還用於當判斷該活躍時間小於該過期時間時,從該當前快取伺服器上刪除該物件,從該當前快取伺服器順序遷移到下一台快取伺服器,並將該下一台快取伺服器作為當前快取伺服器,返回執行該判斷當前快取伺服器是否處於活躍狀態且活躍時間大於該物件的過期時間的功能。
- 根據申請專利範圍第7項之系統,其中,該刪除伺服器,還用於當該當前快取伺服器處於非活躍狀態時,判斷該當前快取伺服器的非活躍時間是否大於該物件的過期時間,當該非活躍時間大於該過期時間時,從該當前快取伺服器順序遷移到下一台快取伺服器,並將該下一台快取伺服器作為當前快取伺服器,返回執行該判斷當前快取伺服器是否處於活躍狀態且活躍時間大於該物件的過期時間的功能。
- 根據申請專利範圍第8項之系統,其中,該刪除伺服器,還用於當該非活躍時間不大於該過期時間時,記錄該識別字,並執行從該當前快取伺服器順序遷移到下一台快取伺服器的功能,以及當該當前快取伺服器進入活躍狀態後,根據該記錄的識別字刪除該物件。
- 根據申請專利範圍第6至9項中任意一項之系統,其中,該刪除伺服器,還用於預先建立快取伺服器的狀態表,藉由該狀態表保存每一個快取伺服器最後一次發生狀態變化時的時間戳記,以及每一個快取伺服器的當前狀態,其中該時間戳記用於判斷該快取伺服器的當前狀態的持續時間。
- 一種刪除伺服器,其特徵在於,包括:接收單元,用於接收刪除請求,該刪除請求中包含物件的識別字;計算單元,用於藉由對該物件的識別字進行一致性哈希計算得到該識別字的哈希結果值;定位單元,用於根據該哈希結果值定位到對應的快取伺服器,將該對應的快取伺服器作為當前快取伺服器;判斷單元,用於判斷該當前快取伺服器是否處於活躍狀態且活躍時間大於該物件的過期時間;刪除單元,用於當判斷當前快取伺服器處於活躍狀態且該活躍時間大於該物件的過期時間時,從該當前快取伺服器上刪除該物件。
- 根據申請專利範圍第11項之刪除伺服器,其中,該刪除單元,還用於當判斷該活躍時間小於該過期時間時,從該當前快取伺服器上刪除該物件;該刪除伺服器還包括:遷移單元,用於從該當前快取伺服器順序遷移到下一台快取伺服器,並將該下一台快取伺服器作為當前快取伺 服器,並觸發該判斷單元。
- 根據申請專利範圍第12項之刪除伺服器,其中,該判斷單元,還用於當該當前快取伺服器處於非活躍狀態時,判斷該當前快取伺服器的非活躍時間是否大於該物件的過期時間;該遷移單元,還用於當該非活躍時間大於該過期時間時,從該當前快取伺服器順序遷移到下一台快取伺服器,並將該下一台快取伺服器作為當前快取伺服器,並觸發該判斷單元。
- 根據申請專利範圍第13項之刪除伺服器,其中,還包括:記錄單元,用於當該非活躍時間不大於該過期時間時,記錄該識別字,並觸發該遷移單元;該刪除單元,還用於當該當前快取伺服器進入活躍狀態後,根據該記錄的識別字刪除該物件。
- 根據申請專利範圍第11至14項中任意一項之刪除伺服器,其中,還包括:建立單元,用於預先建立快取伺服器的狀態表;保存單元,用於藉由該狀態表保存每一個快取伺服器最後一次發生狀態變化時的時間戳記,以及每一個快取伺服器的當前狀態,其中該時間戳記用於判斷該快取伺服器的當前狀態的持續時間。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW099139795A TWI496014B (zh) | 2010-11-18 | 2010-11-18 | Decentralized cache object removal method, system and delete server |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW099139795A TWI496014B (zh) | 2010-11-18 | 2010-11-18 | Decentralized cache object removal method, system and delete server |
Publications (2)
Publication Number | Publication Date |
---|---|
TW201222286A TW201222286A (en) | 2012-06-01 |
TWI496014B true TWI496014B (zh) | 2015-08-11 |
Family
ID=46725173
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW099139795A TWI496014B (zh) | 2010-11-18 | 2010-11-18 | Decentralized cache object removal method, system and delete server |
Country Status (1)
Country | Link |
---|---|
TW (1) | TWI496014B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103873438A (zh) * | 2012-12-12 | 2014-06-18 | 鸿富锦精密工业(深圳)有限公司 | 压缩包上传去重系统及方法 |
US10944842B2 (en) * | 2016-05-27 | 2021-03-09 | Home Box Office, Inc. | Cached data repurposing |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6449695B1 (en) * | 1999-05-27 | 2002-09-10 | Microsoft Corporation | Data cache using plural lists to indicate sequence of data storage |
TW200614071A (en) * | 2004-04-29 | 2006-05-01 | Ibm | A system and method for modeling and dynamically deploying services into a distributed networking architecture |
TW201012252A (en) * | 2008-08-04 | 2010-03-16 | Qualcomm Inc | PDCP behaviour at handover and connection re-establishment |
US20100180208A1 (en) * | 2009-01-15 | 2010-07-15 | Kasten Christopher J | Server side data cache system |
-
2010
- 2010-11-18 TW TW099139795A patent/TWI496014B/zh active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6449695B1 (en) * | 1999-05-27 | 2002-09-10 | Microsoft Corporation | Data cache using plural lists to indicate sequence of data storage |
TW200614071A (en) * | 2004-04-29 | 2006-05-01 | Ibm | A system and method for modeling and dynamically deploying services into a distributed networking architecture |
TW201012252A (en) * | 2008-08-04 | 2010-03-16 | Qualcomm Inc | PDCP behaviour at handover and connection re-establishment |
US20100180208A1 (en) * | 2009-01-15 | 2010-07-15 | Kasten Christopher J | Server side data cache system |
Also Published As
Publication number | Publication date |
---|---|
TW201222286A (en) | 2012-06-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP6280146B2 (ja) | 分散型キャッシング(caching)オブジェクトを除去する方法、システム、およびサーバ | |
WO2017114205A1 (zh) | 短链接处理方法、装置及服务器 | |
US10409694B2 (en) | Data conversion method and backup server | |
WO2017092351A1 (zh) | 缓存数据的更新方法及装置 | |
US20150095282A1 (en) | Multi-site heat map management | |
US20060123121A1 (en) | System and method for service session management | |
US9075722B2 (en) | Clustered and highly-available wide-area write-through file system cache | |
JP5686034B2 (ja) | クラスタシステム、同期制御方法、サーバ装置および同期制御プログラム | |
CN113010818A (zh) | 访问限流方法、装置、电子设备及存储介质 | |
US20170153909A1 (en) | Methods and Devices for Acquiring Data Using Virtual Machine and Host Machine | |
US20200057714A1 (en) | Testing data changes in production systems | |
CN108540510B (zh) | 一种云主机创建方法、装置及云服务系统 | |
US20120179828A1 (en) | Server apparatus, session management apparatus, method, system, and recording medium of program | |
CN105610917B (zh) | 实现系统中同步数据修复的方法及系统 | |
JP7392168B2 (ja) | Cdnにおけるurlリフレッシュ方法、装置、機器及びcdnノード | |
TWI496014B (zh) | Decentralized cache object removal method, system and delete server | |
CN114553762A (zh) | 一种对流表中的流表项处理的方法及装置 | |
US10616291B2 (en) | Response caching | |
JP6568232B2 (ja) | 計算機システム、及び、装置の管理方法 | |
CN115473866B (zh) | 一种会话管理方法、系统、设备及存储介质 | |
US20230030246A1 (en) | Utilizing progress identifiers to rewrite an event query | |
JP4157536B2 (ja) | プログラム実行装置、プログラム実行方法およびサービス提供プログラム | |
CN108280048B (zh) | 信息处理方法和装置 | |
CN113672678A (zh) | 数据同步方法、装置及系统 | |
TW201621693A (zh) | 基於雲計算的資料備份控制系統及方法 |