<listing id="vjp15"></listing><menuitem id="vjp15"></menuitem><var id="vjp15"></var><cite id="vjp15"></cite>
<var id="vjp15"></var><cite id="vjp15"><video id="vjp15"><menuitem id="vjp15"></menuitem></video></cite>
<cite id="vjp15"></cite>
<var id="vjp15"><strike id="vjp15"><listing id="vjp15"></listing></strike></var>
<var id="vjp15"><strike id="vjp15"><listing id="vjp15"></listing></strike></var>
<menuitem id="vjp15"><strike id="vjp15"></strike></menuitem>
<cite id="vjp15"></cite>
<var id="vjp15"><strike id="vjp15"></strike></var>
<var id="vjp15"></var>
<var id="vjp15"></var>
<var id="vjp15"><video id="vjp15"><thead id="vjp15"></thead></video></var>
<menuitem id="vjp15"></menuitem><cite id="vjp15"><video id="vjp15"></video></cite>
<var id="vjp15"></var><cite id="vjp15"><video id="vjp15"><thead id="vjp15"></thead></video></cite>
<var id="vjp15"></var>
<var id="vjp15"></var>
<menuitem id="vjp15"><span id="vjp15"><thead id="vjp15"></thead></span></menuitem>
<cite id="vjp15"><video id="vjp15"></video></cite>
<menuitem id="vjp15"></menuitem>

一種條目提取方法和裝置與流程

文檔序號:12465542閱讀:368來源:國知局
一種條目提取方法和裝置與流程

本發明涉及信息技術領域,特別涉及一種條目提取方法和裝置。



背景技術:

在大規模表存儲結構中,經常需要獲取訪問頻率高的一些條目,例如,最經常訪問的前8個條目,以對條目進行分析和進行控制操作。

相關技術中,為獲取訪問頻率最高的一些條目,通常為每一個條目增加一個計數器和一個初始計數記錄,在指定的時間后觀察統計每一個條目的初始計數與當前計數之間的計數差值,進行排序后取得訪問頻率最高的前N(例如,10個)個條目。

但是,這種獲取訪問頻率高的條目的方法會耗費極大的存儲空間。



技術實現要素:

為了解決現有技術的問題,本發明實施例提供了一種條目提取方法和裝置,以在獲取訪問頻率高的條目的過程中節省存儲空間。

一方面,提供一種條目提取方法,其特征在于,所述方法包括:

從第一個采樣周期開始直到最后一個采樣周期的前一個采樣周期,執行以下步驟:

a.獲取當前采樣周期內對各個條目的訪問次數;

b.根據所述當前采樣周期內對各個條目的訪問次數,確定所述當前采樣周期內條目訪問的平均值;

c.移除所述當前采樣周期內訪問次數小于所述平均值的條目,并將訪問次數不小于所述平均值的條目作為下一采樣周期內的條目;

d.確定下一采樣周期是否為最后一個采樣周期;

若下一采樣周期不為最后一個采樣周期,重復步驟a~d,直到下一采樣周期為最后一個采樣周期;

當下一采樣周期為最后一個采樣周期時,按照訪問次數從高到低的順序提取最后一個采樣周期中的指定個條目。

可選地,在一個實施例中,所述方法還包括:

確定提取的所述指定個條目中的各個條目的訪問次數是否超過閾值;

將提取的所述指定個條目中超過閾值的條目封鎖指定時間。

可選地,在另一個實施例中,在步驟c之后,所述方法還包括:

針對當前采樣周期,確定訪問次數不小于所述平均值的條目中的各個條目的訪問次數是否超過閾值;

將訪問次數超過閾值的條目進行封鎖。

可選地,在另一個實施例中,所述方法還包括:

當封鎖的條目數目達到指定的條目數目的情況下,對于后續各個采樣周期,將后續各個采樣周期內需要封鎖的條目進行封鎖,同時將已封鎖的條目中的至少一個條目進行解封鎖;

其中,封鎖的條目數目等于解封鎖的條目數目;

其中,所述需要封鎖的條目為訪問次數超過所述閾值的條目。

可選地,在另一個實施例中,所述將后續各個采樣周期內需要封鎖的條目進行封鎖,同時將已封鎖的條目中的至少一個條目進行解封鎖包括:

在進行條目封鎖時,按照訪問次數從高到低的順序選取條目進行封鎖;

在進行條目解封鎖時,按照訪問次數從低到高的順序或者按照封鎖時間從先到后的順序進行解封鎖。

可選地,在本發明實施例中,所述條目為IP地址或統一資源定位符(URL)地址,所述閾值為每秒數據包(PPS)的閾值或每秒請求(RPS)的閾值。

可選地,在另一個實施例中,所述方法還包括:以固定大小的存儲空間存儲提取的所述指定個條目。

另一方面,提供一種條目提取裝置,所述裝置包括獲取模塊和處理模塊;

從第一個采樣周期開始直到最后一個采樣周期的前一個采樣周期:

所述獲取模塊,用于獲取當前采樣周期內對各個條目的訪問次數;

所述處理模塊,用于根據所述當前采樣周期內對各個條目的訪問次數,確定所述當前采樣周期內條目訪問的平均值;

所述處理模塊,還用于移除所述當前采樣周期內訪問次數小于所述平均值的條目,并將訪問次數不小于所述平均值的條目作為下一采樣周期內的條目;

所述處理模塊,還用于當下一采樣周期為最后一個采樣周期時,按照訪問次數從高到低的順序提取最后一個采樣周期中的指定個條目。

可選地,在一個實施例中,所述處理模塊還用于:

確定提取的所述指定個條目中的各個條目的訪問次數是否超過閾值;

將提取的所述指定個條目中超過閾值的條目封鎖指定時間。

可選地,在另一個實施例中,所述處理模塊還用于:

針對當前采樣周期,確定訪問次數不小于所述平均值的條目中的各個條目的訪問次數是否超過閾值;

將訪問次數超過閾值的條目進行封鎖。

可選地,在另一個實施例中,所述處理模塊具體用于:

當封鎖的條目數目達到指定的條目數目的情況下,對于后續各個采樣周期,將后續各個采樣周期內需要封鎖的條目進行封鎖,同時將已封鎖的條目中的至少一個條目進行解封鎖;

其中,封鎖的條目數目等于解封鎖的條目數目;

其中,所述需要封鎖的條目為訪問次數超過所述閾值的條目。

可選地,在另一個實施例中,所述處理模塊具體用于:

在進行條目封鎖時,按照訪問次數從高到低的順序選取條目進行封鎖;

在進行條目解封鎖時,按照訪問次數從低到高的順序或者按照封鎖時間從先到后的順序進行解封鎖。

其中,在本發明實施例中,所述條目為IP地址或統一資源定位符(URL)地址,所述閾值為每秒數據包(PPS)的閾值或每秒請求(RPS)的閾值。

可選地,在另一個實施例中,所述裝置還包括:

存儲模塊,用于以固定大小的存儲空間存儲提取的所述指定個條目。

另一方面,提供一種終端設備,所述終端設備包括存儲器和處理器,所述存儲器上存儲有計算機程序,當所述處理器執行所述計算機程序時執行本發明實施例中的任一種條目提取方法。

另一方面,提供一種非臨時性存儲介質,所述非臨時性存儲介質上存儲有計算機程序,當所述計算機程序被處理器執行時執行本發明實施例中的任一種條目提取方法。

本發明實施例提供的技術方案帶來的有益效果是:

通過對每個采樣周期內各個條目的訪問次數求平均、去除訪問次數在平均值以下的條目,并將當前處理后得到的條目作為下一采樣周期的條目,如此循環處理,可以保證最后一個采樣周期內得到的條目是訪問次數高的條目,且占用的存儲空間較小。

附圖說明

為了更清楚地說明本發明實施例中的技術方案,下面將對實施例描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本發明的一些實施例,對于本領域普通技術人員來講,在不付出創造性勞動的前提下,還可以根據這些附圖獲得其他的附圖。

圖1是本發明實施例提供的條目提取方法的流程圖。

圖2是本發明實施例提供的條目提取裝置的結構框圖。

具體實施方式

為使本發明的目的、技術方案和優點更加清楚,下面將結合附圖對本發明實施方式作進一步地詳細描述。

圖1是本發明實施例提供的條目提取方法的流程圖。參照圖1,從第一個采樣周期開始直到最后一個采樣周期的前一個采樣周期,本發明實施例提供的條目提取方法可包括:

11、獲取當前采樣周期內對各個條目的訪問次數。

其中,本發明實施例中的“條目”可以為各種不同形式的條目,例如,所述條目為IP地址或URL地址等等。本發明實施例對條目的具體形式不做具體限定。

本發明實施例中,條目可以為服務端中的條目。對條目的訪問一般是指客戶端對服務端條目的訪問。

12、根據所述當前采樣周期內對各個條目的訪問次數,確定所述當前采樣周期內條目訪問的平均值。

13、移除所述當前采樣周期內訪問次數小于所述平均值的條目,并將訪問次數不小于所述平均值的條目作為下一采樣周期內的條目。

14、確定下一采樣周期是否為最后一個采樣周期。

若下一采樣周期不為最后一個采樣周期,重復步驟a~d,直到下一采樣周期為最后一個采樣周期。

在下一采樣周期為最后一個采樣周期時,執行步驟15。

15、按照訪問次數從高到低的順序提取最后一個采樣周期中的指定個條目。

在本發明實施例中,以三個采樣周期t1-t3為例,舉例而言,條目提取的過程可以為:先獲取第一個采樣周期t1中各個條目的訪問次數,并計算第一采樣周期內條目訪問的第一平均值v1;然后去除第一采樣周期t1中訪問次數小于第一平均值v1的條目,將第一采樣周期中不小于第一平均值的條目作為第二采樣周期t2的輸入。由于第二采樣周期不是最后一個采樣周期,同樣地,對于第二采樣周期,也是先獲取第二個采樣周期t2中各個條目的訪問次數,并計算第二采樣周期內條目訪問的第二平均值v2;然后去除第二采樣周期t2中訪問次數小于第二平均值v2的條目,將第二采樣周期中不小于第二平均值的條目作為第三采樣周期t3的輸入。此時,由于第三采樣周期為最后一個采樣周期,因而,從作為第三采樣周期t3的輸入的第二采樣周期中不小于第二平均值的條目,和第三采樣周期內的條目中,按照訪問次數從高到低的順序提取指定個條目。

在本發明實施例中,待提取到指定數目個條目后,可以以固定大小的存儲空間存儲提取的所述指定個條目。

本發明實施例提供的條目提取方法,通過對每個采樣周期內各個條目的訪問次數求平均、去除訪問次數在平均值以下的條目,并將當前處理后得到的條目作為下一采樣周期的條目,如此循環處理,可以保證最后一個采樣周期內得到的條目是訪問次數高的條目,且占用的存儲空間較小。

本發明實施例提供的條目提取的方法可應用于設定時間的條目提取。例如,提取10分鐘內或20分鐘內或其他時間段內訪問頻率高的條目。在此情形下,可將設定的時間段劃分為多個采樣周期,然后對每個采樣周期應用上面所描述的條目提取方法。待提取到指定數目個訪問頻率高的條目后,可進一步確定提取的所述指定個條目中的各個條目的訪問次數是否超過閾值;將提取的所述指定個條目中超過閾值的條目封鎖指定時間。

本發明實施例中的“閾值”為可以例如為每秒數據包(Packet Per Second,PPS)的閾值或每秒請求(Request Per Second,RPS)的閾值等等。本發明實施例對閾值的具體形式不做具體限定。

本發明實施例中,對條目的封鎖是指,阻止對條目的訪問。也就是說,一旦條目被封鎖后,任何訪問請求都不能繼續對條目進行訪問。

若對條目的訪問超過閾值,則可以判定這種訪問可能是異常的攻擊。通過對超過閾值的條目進行封鎖,可以有效減緩或停止這種異常攻擊。

在本發明實施例中,不但可以在最后一個采樣周期提取條目的操作完成后,對指定個條目中的至少一個條目進行封鎖,還可以在每一采樣周期執行條目封鎖操作,即,在移除當前采樣周期內訪問次數小于平均值的條目的同時,對確定訪問次數不小于所述平均值的條目中的各個條目的訪問次數是否超過閾值,然后將訪問次數超過閾值的條目進行封鎖。具體地,同樣以三個采樣周期t1-t3為例,假定需要提取的條目數目為10個,舉例而言,若第一個采樣周期t1中有一個條目的訪問次數超過閾值,則可將這個條目進行封鎖;若第二個采樣周期t2中有三個條目的訪問次數超過閾值,則將這三個條目進行封鎖;若第三個采樣周期t3中有四個條目的訪問次數超過閾值,則將這四個條目進行封鎖。

當然,在本發明實施例中,當封鎖的條目數目達到指定的條目數目的情況下,對于后續各個采樣周期,將后續各個采樣周期內需要封鎖的條目進行封鎖,同時將已封鎖的條目中的至少一個條目進行解封鎖;其中,所述需要封鎖的條目為訪問次數超過所述閾值的條目。

具體地,舉例而言,若指定提取的條目數目為10個,且前三個采樣周期t1-t3分別封鎖了1個、3個和4個條目的情況下,只剩下2個封鎖名額。若第四個采樣周期t4需要封鎖的條目數目為4個,此時由于采樣周期t4需要封鎖的條目數目(即,4個)超出了剩下的封鎖名額(即,2個),無法直接將采樣周期t4中的這4個需要封鎖的條目直接進行封鎖,而需要先將之前封鎖的8個條目中解封所2個條目(即,釋放2個名額),才能完成對采樣周期t4需要封鎖的條目進行封鎖。

一旦封鎖的條目數目已有10個,則在后續采樣周期中,需要封鎖的條目數目等于解封鎖的條目數目。具體地,后續在第五個采樣周期t5中需要封鎖的條目數目為5個,此時由于10個指定的封鎖條目數目已占滿,需要從這10個封鎖條目中解封鎖5個條目,才能完成對采樣周期t5中需要封鎖的5個條目進行封鎖。

其中,在封鎖和解封鎖的過程中,可以按照一定的優先次序來進行。具體地,本發明實施例在進行條目封鎖時,可以按照訪問次數從高到低的順序選取條目進行封鎖;同時,在進行條目解封鎖時,按照訪問次數從低到高的順序或者按照封鎖時間從先到后的順序進行解封鎖。即,在指定數目的條目(在示例中為10個)已被封鎖的情況下,訪問次數少的條目或者封鎖時間最早的條目可以優先進行解封鎖。其中,封鎖的條目數目可等于解封鎖的條目數目。

本發明實施例中的“條目”可以為各種不同形式的條目,例如,所述條目為IP地址或URL地址等等。本發明實施例中的“閾值”為可以例如為每秒數據包(Packet Per Second,PPS)的閾值或每秒請求(Request Per Second,RPS)的閾值等等。本發明實施例對條目和閾值的具體形式不做具體限定。

在本發明實施例中,將整個時間域劃分為一個個時間段(例如,T1、T2…等)來計算,然后在每個時間段內再劃分為一個個的采樣周期(t1、t2…等)。在本文描述中n為提取的指定條目數目,可以使用一個大小為n的小數組(例如n=10)和一個n*n的矩陣。在T(例如,T1或T2等)時間段內劃分多個采樣周期,并對大規模表的訪問進行多次采樣,將采樣所得的針對條目和訪問次數的訪問量記錄到數組中,條目到數組索引的運算由矩陣給出。

當一個采樣周期結束后,計算采樣的各個條目訪問次數的平均值,然后去除該采樣周期內訪問次數小于平均值的條目。在此基礎上再進行繼續采樣。待T時間段到的時候,已經進行了很多次采樣,在最后留在n個數組內超過平均數的條目就是訪問最頻繁的n個條目。再對這n個條目中訪問次數超過閾值的進行訪問封鎖,后續組的采樣將不會記錄已經被封鎖的條目。封鎖的條目可以設定封鎖的時間,當封鎖時間到的時候,放開已經封鎖的條目。

當然,在本發明實施例中,也可以逐次放開已經封鎖的條目。逐次放開已經封鎖條目的策略是:由于每個采樣周期并不能得到n個最高的條目,只是得到一部分,但是考慮經過了若干個采樣周期之后得到了n個封鎖的條目。但是下一個采樣周期來臨時又得出了新的封鎖條目,此時,就會把之前已經封禁的條目釋放封鎖(例如,按照訪問次數從低到高的順序釋放封鎖),釋放封鎖的條目數目可以等于新添加的封鎖條目數目。

本發明實施例中是將時間域用于存儲信息,而不是把所有的信息存儲在內存空間。然后通過去除舊封鎖條目引入新封鎖條目的策略,來動態控制的封禁的前n個條目(例如,訪問量最高的前n個條目)。如此便實現了對整個時間域內動態的前n個條目的封鎖。

在本發明實施例中,前n個條目是基于時間段而動態變化的,因而,對于前n個條目的選取只能是以一個時間段為標桿。本公開中的時間段是坐標軸上順序移動的大于采樣周期的動態間隔,并沒有上限。上限取決于前n個條目中超過閾值的條目的規模。如果在一個小時內封禁數目都沒有超過n個,則可以認為一個小時內已經封禁的條目還應該繼續封禁。

可見,如果條目中只會有個別的條目訪問量突然大規模增長,就應該把n設置的盡量小。如果有很多個條目會出現訪問量異常,就應該n設置的較大。所以n的選取是取決于系統的訪問特性。

本發明實施例提供的條目提取方法,不僅可以節省CPU資源和內存資源,而且通過對條目進行封鎖,可以避免條目收到異常攻擊。

圖2是本發明實施例提供的一種條目提取裝置的結構框圖。參照圖2,本發明實施例提供的條目提取裝置200可包括獲取模塊201和處理模塊202。其中:

從第一個采樣周期開始直到最后一個采樣周期的前一個采樣周期,所述獲取模塊201和所述處理模塊202分別執行以下操作:

所述獲取模塊201,用于獲取當前采樣周期內對各個條目的訪問次數;

所述處理模塊202,用于根據所述當前采樣周期內對各個條目的訪問次數,確定所述當前采樣周期內條目訪問的平均值;

所述處理模塊202,還用于移除所述當前采樣周期內訪問次數小于所述平均值的條目,并將訪問次數不小于所述平均值的條目作為下一采樣周期內的條目;

所述處理模塊202,還用于當下一采樣周期為最后一個采樣周期時,按照訪問次數從高到低的順序提取最后一個采樣周期中的指定個條目。

本發明實施例提供的條目提取裝置,通過對每個采樣周期內各個條目的訪問次數求平均、去除訪問次數在平均值以下的條目,并將當前處理后得到的條目作為下一采樣周期的條目,如此循環處理,可以保證最后一個采樣周期內得到的條目是訪問次數高的條目,且占用的存儲空間較小。

可選地,在一個實施例中,所述處理模塊202還用于:

確定提取的所述指定個條目中的各個條目的訪問次數是否超過閾值;

將提取的所述指定個條目中超過閾值的條目封鎖指定時間。

可選地,在另一個實施例中,所述處理模塊202還用于:

針對當前采樣周期,確定訪問次數不小于所述平均值的條目中的各個條目的訪問次數是否超過閾值;

將訪問次數超過閾值的條目進行封鎖。

可選地,在另一個實施例中,所述處理模塊202具體用于:

當封鎖的條目數目達到指定的條目數目的情況下,對于后續各個采樣周期,將后續各個采樣周期內需要封鎖的條目進行封鎖,同時將已封鎖的條目中的至少一個條目進行解封鎖;

其中,封鎖的條目數目等于解封鎖的條目數目;

其中,所述需要封鎖的條目為訪問次數超過所述閾值的條目。

可選地,在另一個實施例中,所述處理模塊202具體用于:

在進行條目封鎖時,按照訪問次數從高到低的順序選取條目進行封鎖;

在進行條目解封鎖時,按照訪問次數從低到高的順序或者按照封鎖時間從先到后的順序進行解封鎖。

在本發明實施例中,所述條目可以為IP地址或URL地址,所述閾值為PPS的閾值或RPS的閾值。

可選地,在另一個實施例中,所述裝置200還包括:存儲模塊203,用于以固定大小的存儲空間存儲提取的所述指定個條目。

需要指出的是,在相關技術中,耗費的CPU資源和內存資源是隨著集合中條目的數目線性增長的,而且在條目巨大的時候耗費是驚人的。本發明實施例提供的條目提取的方法和裝置,對CPU和內存的需要限制在一定的規模,不隨著條目數目的增長而變化。并且,所需的內存和CPU資源都是非常小的。具體地,假設有300萬個條目,不采用本裝置需要的內存是300w*8字節,本裝置固定的使用n*24字節的內存(上文中以n為10為例進行了說明)。不采用本公開時要遍歷計算300w次,采用了本公開后只需遍歷n*2次,外加額外的n*n的矩陣運算(以n為10為例)。可以看到無論內存資源還是CPU資源都是上百萬數量級的提升。

需要說明的是:上述實施例提供的條目提取裝置,僅以上述各功能模塊的劃分進行舉例說明,實際應用中,可以根據需要而將上述功能分配由不同的功能模塊完成,即將條目提取裝置的內部結構劃分成不同的功能模塊,以完成以上描述的全部或者部分功能。另外,上述實施例提供的條目提取裝置和條目提取方法實施例屬于同一構思,其具體實現過程詳見方法實施例,這里不再贅述。

本領域普通技術人員可以理解實現上述實施例的全部或部分步驟可以通過硬件來完成,也可以通過程序來指令相關的硬件完成,所述的程序可以存儲于一種計算機可讀存儲介質中,上述提到的存儲介質可以是只讀存儲器,磁盤或光盤等。

以上所述僅為本發明的較佳實施例,并不用以限制本發明,凡在本發明的精神和原則之內,所作的任何修改、等同替換、改進等,均應包含在本發明的保護范圍之內。

當前第1頁1 2 3 
網友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1
韩国伦理电影