專利名稱:告警數據的分頁處理方法
技術領域:
本發明涉及通信網絡管理技術領域,更具體地,涉及一種告警 數據的分頁處理方法。
背景技術:
告警是由于通信設備或通信業務出現故障而產生的,它要求網 纟備管理人員及時知曉,以1更對故障進4亍必要的處理。由于網絡層網管管理i殳備眾多,應用中經常會達到5000端以上的管理規pj莫,管理 的告警數目更會達到幾萬條甚至十幾萬條,在這種情況下,這些數 據的存儲、操作以及呈現對網管在處理效率方面提出了很高的要求。發明內容本發明要解決的問題是在大數據量下如何高效地定位到指定告 警數據,如何高效地刪除已有的告警數據,以及如何高效地把新增 告警數據插入了指定位置,并為運維人員快速地提供所需位置頁的 告警數據。為此,本發明提出了一種告警數據的分頁處理方法,包括步 驟一,按照每個告警數據中的排序字段中的值對每個告警數據進行 排序,以形成具有雙向鏈表結構的告警數據組;以及步驟二,按照 指定的頁大小,將形成的具有雙向鏈表結構的告警數據組分為多頁。其中,每個告警數據包括排序字段和關鍵字段。步驟二還包括定義一個數組,使數組的每個節點分別指向多 頁中的每一頁中的首個告警數據。才艮據本發明的方法,還包括對告警數據進行頁定位,包括以下 步驟判斷待頁定位的告警數據的排序字段中的值與數組的每個節 點所指向的頁的首個告警數據的排序字段中的值是否相等,如果相 等,則數組的節點所指向的頁為待頁定位的告警數據的定位頁,如 果不相等,則根據預定方法來找到數組中兩個相鄰節點以使待頁定 位的告警數據的排序字段中的值介于兩個相鄰節點所指向的告警數 據的排序字段中的值之間,并將兩個相鄰節點的前一節點所指向的 頁中的最后一個告警數據的排序字段中的值與待頁定位的告警數據 的排序字段中的值進行比較,如果待頁定位的告警數據的排序字段 中的值小于前一節點所指向的頁中的最后一個告警數據的排序字段 中的值,則將前一節點所指向的頁確定為待頁定位的告警數據的定 位頁,否則,將兩個相鄰節點中的后一節點所指向的頁確定為待頁 定位的告警tt據的定位頁。才艮據本發明的方法,還包括對告警數據進行定位,包括以下步 驟對待定位告警數據執行頁定位;以及從定位頁的頁首開始向后 遍歷,在當前告警數據的排序字段中的值不大于待定位的告警數據 的排序字卓爻中的值的情況下,判斷當前告警凝:據的關4建字段中的值 與待定位的告警數據的關鍵字段中的值是否相等,如果相等,則將 待定位的告警數據定位到當前告警數據,如果當前告警數據的關鍵 字段中的值與待定位的告警數據的關鍵字段中的值不相等,則從定 位頁的頁首開始向前遍歷,在當前告警數據的排序字段中的值不小 于待定位的告警數據的排序字段中的值的情況下,判斷當前告警數 據的關鍵字段中的值與待定位的告警數據的關鍵字段中的值是否相 等,如果當前告警數據的關鍵字段中的值與待定位的告警數據的關 鍵字段中的值相等,則將待定位的告警數據定位到當前告警數據,如果當前告警數據的關鍵字段中的值與待定位的告警數據的關鍵字 段中的值不相等,對待定位的告警數據定位失敗。才艮據本發明的方法,還包括向告警數據組插入告警數據,包括以下步驟對待插入的告警數據執行頁定位,并返回定位頁的頁號; 從定位頁的頁首至頁尾進行遍歷,判斷告警數據組中是否存在其排 序字段中的值大于或等于待插入的告警數據的排序字段中的值的第 一個告警數據,如果存在,則將待插入的告警數據插入到第一個告 警數據之前,否則,將待插入的告警數據插入到定位頁的末尾;以 及更新數組中其下標號大于定位頁的頁號的節點,根據指定的頁大 小來改變更新后的節點所指向的告警數據。在插入告警數據后使得 告警數據組的總頁數增加時,在數組的末尾增加一個節點,并使其 指向告警數據組中的最后一個告警數據。根據本發明的方法,還包括刪除告警數據組中的告警數據,包 括以下步驟對待刪除的告警數據進行定位,如果待刪除的告警數 據定位成功,則刪除定位到的告警數據,否則,對待刪除的告警數 據的刪除失敗。在刪除了4寺刪除的告警H據時,更新H組中的其下 標號大于被刪除的告警數據所在頁的頁號的節點,根據指定的頁大 小來改變更新后的節點所指向的告警^:據。在刪除了 4寺刪除的告警 數據后使得告警數據組的總頁數減少的情況下,將數組的末節點刪 除。在該方法中,予貞定方法包括^斤半查4戈法。因此,采用本發明的方法,通過使用排序的雙向鏈表及數組結 構對告警實現分頁管理,乂人而實現了對告警ft據的高效插入、定位 和刪除,并能夠很好地支持快速地獲取特定頁的告警數據。本發明的其它特征和優點將在隨后的說明書中闡述,并且,部 分地從說明書中變得顯而易見,或者通過實施本發明而了解。本發 明的目的和其他優點可通過在所寫的說明書、權利要求書、以及附 圖中所特別指出的結構來實現和獲得。
附圖用來提供對本發明的進一 步理解,并且構成i兌明書的 一部 分,與本發明的實施例一起用于解釋本發明,并不構成對本發明的限制。在附圖中圖1是根據本發明的告警數據的分頁處理方法的流程圖;圖2是根據本發明的一個實施例的存儲告警數據的數據結構;圖3是根據本發明的一個實施例的存儲有告警數據的數據結構;圖4是才艮據本發明的一個實施例的插入一條告警后的#:據結構;圖5是根據本發明的一個實施例的刪除一條告警后的數據結構;圖6是根據本發明的另 一個實施例的存儲有告警數據的數據結構;圖7是根據本發明的另 一個實施例的插入一條告警后的數據結 構;以及圖8是根據本發明的另一個實施例刪除一條告警后的數據結構。
具體實施方式
以下結合附圖對本發明的優選實施例進行說明,應當理解,此 處所描述的優選實施例^又用于i兌明和解釋本發明,并不用于限定本 發明。圖1是根據本發明的告警數據的分頁處理方法的流程圖。^口圖1所示,該方法包4舌以下步驟步驟S102,按照每個告警數據中的排序字段中的值對每個告警 數據進行排序,以形成具有雙向鏈表結構的告警數據組;以及步驟S104,按照指定的頁大小,將形成的具有雙向鏈表結構的 告警數據組分為多頁。其中,每個告警數據包括排序字段和關鍵字段。步驟S104還包括定義一個數組,使數組的每個節點分別指 向多頁中的每一頁中的首個告警數據。根據本發明的方法,還包括對告警數據進行頁定位,包括以下 步驟判斷待頁定位的告警數據的排序字段中的值與數組的每個節 點所指向的頁的首個告警數據的排序字段中的值是否相等,如果相 等,則數組的節點所指向的頁為待頁定位的告警數據的定位頁,如 果不相等,則根據預定方法來找到數組中兩個相鄰節點以使待頁定 位的告警數據的排序字段中的值介于兩個相鄰節點所指向的告警數 據的排序字段中的值之間,并將兩個相鄰節點的前一 節點所指向的 頁中的最后一個告警數據的排序字段中的值與待頁定位的告警數據 的排序字段中的值進行比較,如果待頁定位的告警數據的排序字段 中的值小于前一節點所指向的頁中的最后一個告警數據的排序字段中的值,則將前一節點所指向的頁確定為待頁定位的告警數據的定 位頁,否則,將兩個相鄰節點中的后一節點所指向的頁確定為待頁 定位的告警數據的定位頁。才艮據本發明的方法,還包括對告警凄t據進行定位,包括以下步驟對待定位告警數據執行頁定位;以及從定位頁的頁首開始向后 遍歷,在當前告警數據的排序字段中的值不大于待定位的告警數據 的排序字段中的值的情況下,判斷當前告警數據的關鍵字段中的值 與待定位的告警數據的關鍵字段中的值是否相等,如果相等,則將 待定位的告警數據定位到當前告警數據,如果當前告警數據的關鍵 字段中的值與待定位的告警數據的關鍵字段中的值不相等,則從定 位頁的頁首開始向前遍歷,在當前告警數據的排序字段中的值不小 于待定位的告警數據的排序字段中的值的情況下,判斷當前告警數 據的關鍵字段中的值與待定位的告警數據的關4建字段中的值是否相 等,如果當前告警數據的關4建字,殳中的值與待定位的告警數據的關 鍵字段中的值相等,則將待定位的告警數據定位到當前告警數據, 如果當前告警數據的關鍵字段中的值與待定位的告警數據的關鍵字 段中的值不相等,對待定位的告警數據定位失敗。根據本發明的方法,還包括向告警數據組插入告警數據,包括 以下步驟對待插入的告警數據執行頁定位,并返回定位頁的頁號; 從定位頁的頁首至頁尾進行遍歷,判斷告警數據組中是否存在其排 序字段中的值大于或等于待插入的告警數據的排序字段中的值的第 一個告警數據,如果存在,則將待插入的告警數據插入到第一個告 警數據之前,否則,將待插入的告警數據插入到定位頁的末尾;以 及更新數組中其下標號大于定位頁的頁號的節點,根據指定的頁大 小來改變更新后的節點所指向的告警凄t據。在插入告警數據后使得 告警數據組的總頁數增加時,在數組的末尾增加一個節點,并使其 指向告警數據組中的最后 一個告警數據。才艮據本發明的方法,還包括刪除告警tt據組中的告警數據,包括以下步驟對待刪除的告警數據進行定位,如果待刪除的告警數 據定位成功,則刪除定位到的告警數據,否則,對待刪除的告警凄史 據的刪除失敗。在刪除了^f寺刪除的告警^:據時,更新ft組中的其下 標號大于被刪除的告警數據所在頁的頁號的節點,根據指定的頁大 'J、來改變更新后的節點所指向的告警數據。在刪除了待刪除的告警 數據后使得告警數據組的總頁數減少的情況下,將數組的末節點刪 除。在該方法中,預定方法包括^斤半查找法。 才妄下來描述本發明的第 一實施例。圖2是根據本發明方法的一個實施例存儲告警數據的數據結構。如圖2所示,本實施例的數據結構滿足如下要求告警數據有排序字段和關鍵字段。其中,排序字段是用戶指定 的特定告警字段信息,作為告警數據的排序依據;關鍵字段的作用 是唯一標識一條告警數據。排序字段和關^l建字段可以為同一字段;告警數據被組織成一個按照排序字段排序的雙向鏈表;以及使用數 組結構對雙向鏈表實現分頁管理,雙向鏈表中的告警數據依照用戶 指定的分頁大小劃分為若干頁,數組中的每一個節點分別指向雙向 鏈表中每頁的首節點位置。數組長度就是雙向鏈表的頁數。在該實施例中,對存儲告警的數據結構的操作包括 (1 )定位頁操作取出待定位的告警數據的排序字段的值;以及逐一地將該值與 數組所指向的雙向鏈表節點的排序字段的值進行比較,找到與待定 位數據的排序字段的值相等的數組中的某個節點(即該節點指向的 告警鏈表數據的排序字段的值與待定位數據的排序字段的值相等) (情況1 ),或者待定位數據的排序字段的值介于某兩個相鄰數組節 點所指向的告警數據的排序字段的值之間(情況2),因為數組中的每 個節點均指向了有序的告警鏈表數據的各頁首位置,因此可以對數 組進行折半查找來實現如上的數組節點的定位,,人而實現告警凄史據 的高效定位,若情況l出現,則查找到的節點所在頁(即相應^:組 節點的下標)即為定位的頁,定位結束,若情況2出現,則取出查 找到的兩個相鄰節點中的第 一 個節點所指向頁的最后 一 個節點的排 序字段的值與待定位數據的排序字段的值進行比較,若待定位數據 的排序字段的值較小,則返回第一個節點所指向頁,否則返回第二 個節點所指向頁,定位結束。(2 )定位告警數據操作得到待定位的告警數據;執行"定位頁操作",得到返回頁號; 以及/人返回頁頁首開始向后遍歷,將4寺定位告警凄t據與^皮遍歷的當 前節點的告警數據逐一進行比較,檢測兩者的關鍵字段是否相等, 如果相等表示已經定位到數據,定位數據結束,否則繼續查找,直 至當前節點的排序字段的值大于待定位告警數據的排序字段的值, 否則,從返回頁的頁首開始向前查找,將待定位告警數據與4皮遍歷 的當前節點的告警數據逐一進行比較,檢測兩者的關鍵字段的值是 否相等,如果相等,表示已經定位到tt據,定位ft據結束,否則, 繼續查找,直至當前節點的排序字段的值小于待定位告警數據的排 序字#爻的值,定位失敗,流程結束。(3 )插入告警操作得到待插入的告警數據;執行"定位頁操作",得到返回頁號; 從返回頁頁首到頁尾遍歷此頁數據,找到第 一 個排序字段大于等于 待插入告警數據的排序字段的節點,把此告警數據插入到該節點前 面;以及更新凄史組中下標大于當前頁號的所有節點,改變它們的指 向位置,如果插入前最后一頁的節點數等于每頁定義的節點數,就 需要為數組添加一個節點來指向雙向鏈表的最后一個節點。(4) 刪除告警操作得到待刪除的告警數據;執行"定位告警數據操作";如果定位 失敗,則操作結束,否則,刪除定位到的數據;更新數組中下標大 于被刪除告警數據所在頁號的所有節點,改變它們的指向位置;以 及如果最后一頁節點數為1,就需要把數據中最后一個節點刪除。(5) 查詢特定頁凄史據得到待獲取數據的頁號;通過數組定位到此頁號所對應的雙向 鏈表數據;以及返回此頁數據。下面結合圖3至圖8來描述本發明的其他實施例。如圖3所示,在圖示的數據結構中已經存有翁:據,雙向鏈表中 的每一個節點都包含兩個元素,第一個為關鍵字,第二個為排序字 段。把數據用頁來組織,每頁4個節點。數組結構的每一個節點都 指向每頁的首節點。其他實施例包括以下步驟步驟SllO,在已有H據基礎上插入lt據,待插入凄t據的關4建字 為9-1,排序字^史為8:步驟S1102,數組結構的每個節點所指向的頁首節點的排序字 ,殳值分別為1、 6、 11, 4艮據折半查找算法求得8處于6和11之間, 即待插入數據處于第二頁和第三頁之間;步驟S1104,確定頁的原則是,如果它小于前一頁的最后一個 元素,它就屬于前一頁,否則屬于后一頁,因為8小于第二頁最后 一個元素,所以待插入翁:據的所在頁為第二頁;步驟S1106,從頁首遍歷第二頁,當找到第一個大于或等于插 入節點的排序字段的值的節點時,把待插入數據插入到此節點的前 面,待插入數據應插入到關4建字為5-5,排序字段為9的節點前面; 以及步驟S1108,改變凄t組結構中下標大于^皮插入頁所對應頁號的 所有節點的指向位置,本實例需要改變第三頁節點所指向的位置, 如圖4所示,使其指向關鍵字為1-3,排序字段為9的節點。步驟S112在如圖6所示的數據基礎上插入數據,此數據每頁 節點數定義為4,待插入數據的關鍵字為2-1,排序字段為12。步驟S1122,數組結構的每個節點所指向的頁首節點的排序字 ^險的值分別為1、 6, #4居折半查找算法求得12在6之后,即待插 入數據處于第二頁; '步驟S1124,從頁首遍歷第二頁,當找到第一個大于或等于插 入節點的排序字段的值的節點時,把待插入數據插入到此節點的前 面,由于在第二頁不能找到這樣的節點,因此待插入數據應插入到 第二頁的尾部;以及步驟S1126,由于最后一頁節點數等于定義的節點數,如圖7 所示,需要為數組結構增加一個節點,使它指向雙向鏈表最后一個 節點。步驟S114,在已有數據基礎上刪除數據,待刪除數據的關鍵字 為1-1,排序字段為1。步驟S1142,才艮據(l),可定位此元素在第一頁;步驟S1144,從第一頁頁首開始遍歷,比較待刪除數據與當前 節點的關4建字l炎元素,如果相等,則刪除此節點,本實例應刪除關 鍵字為1-1,排序字段為1的節點;以及步艱《S1146,改變凄t組結構中下標大于一皮刪除凄t據所在頁號的 所有節點的指向位置,改變后如圖5所示。步驟S116,在如圖7所示的數據基礎上刪除數據,待刪除數據 的關鍵字為1-3,排序字段為9。步艱朵S1162,才艮才居(l),可定4立此元素在第二頁;步驟S1164,從第二頁頁首開始遍歷,比較待刪除數據與當前 節點的關4建字^殳元素,如果相等,則刪除此節點,本實例應刪除關 鍵字為1-3,排序字段為9的節點;以及步驟S1166,因為雙向鏈表最后一頁節點數為1,需要對巴數據 中的最后一個節點刪除,刪除后如圖8所示。步驟S118,在已有數據基礎上查詢頁數據,待查詢數據為第3頁。步驟S1182,數組結構中每一個節點指向雙向鏈表的每一頁的 首節點,第3頁即是數據結構中第三個節點指向的那一頁;以及步驟S1184,定位到數組結構中第三個節點指向的頁,返回此 頁數據,此頁數據僅包含一個節點(如圖5所示)即返回關鍵字為 1-4,排序字萃殳為11的節點。綜上所述,采用本發明的方法,通過使用排序的雙向鏈表及數 組結構對告警實現分頁管理,從而實現了對告警數據的高效插入、 定位和刪除,并能夠很好地支持快速地獲取特定頁的告警數據。以上^又為本發明的優選實施例而已,并不用于限制本發明,對 于本領i或的4支術人員來"i兌,本發明可以有各種更改和變化。凡在本 發明的精神和原則之內,所作的任何修改、等同替換、改進等,均 應包含在本發明的4呆護范圍之內。
權利要求
1.一種告警數據的分頁處理方法,其特征在于,包括以下步驟步驟一,按照每個告警數據中的排序字段中的值對所述每個告警數據進行排序,以形成具有雙向鏈表結構的告警數據組;以及步驟二,按照指定的頁大小,將形成的具有所述雙向鏈表結構的所述告警數據組分為多頁。
2. 根據權利要求1所述的方法,其特征在于,所述每個告警數據 包括排序字段和關鍵字段。
3. 根據權利要求2所述的方法,其特征在于,所述步驟二還包括定義一個數組,使所述數組的每個節點分別指向所述多頁 中的每一頁中的首個告警數據。
4. 才艮據權利要求3所述的方法,其特征在于,還包括對告警數據 進4亍頁定^f立,包4舌以下步驟判斷待頁定位的所述告警數據的排序字段中的值與所述 數組的每個節點所指向的頁的首個告警數據的排序字段中的 值是否相等,如果相等,則所述數組的節點所指向的頁為待頁 定位的所述告警凄t據的定位頁,如果不相等,則才艮據預定方法 來找到所述數組中兩個相鄰節點以使待頁定位的所述告警數 據的排序字段中的值介于所述兩個相鄰節點所指向的告警數 據的排序字段中的值之間,并將所述兩個相鄰節點的前一 節點 所指向的頁中的最后一個告警數據的排序字段中的值與待頁 定位的所述告警數據的排序字段中的值進行比較,如果待頁定 位的所述告警數據的排序字段中的值小于所述前 一 節點所指 向的頁中的最后一個告警數據的排序字段中的值,則將所述前一節點所指向的頁確定為待頁定位的所述告警數據的定位頁, 否則,將所述兩個相鄰節點中的后 一節點所指向的頁確定為待 頁定位的所述告警數據的定位頁。
5. 根據權利要求4所述的方法,其特征在于,還包括對告警數據 進4亍定4立,包4舌以下步驟對待定位所述告警數據執行所述頁定位;以及從所述定位頁的頁首開始向后遍歷,在當前告警數據的排 序字段中的值不大于待定位的所述告警數據的排序字段中的 值的情況下,判斷所述當前告警數據的關鍵字段中的值與待定 位的所述告警數據的關鍵字段中的值是否相等,如果相等,則 將待定位的所述告警數據定位到所述當前告警數據,如果所述 當前告警數據的關^t字段中的值與待定位的所述告警數據的 關4建字段中的值不相等,則從所述定位頁的頁首開始向前遍 歷,在當前告警數據的排序字段中的值不小于待定位的所述告 警數據的排序字段中的值的情況下,判斷當前告警數據的關鍵 字段中的值與待定位的所述告警數據的關鍵字段中的值是否 相等,如果當前告警數據的關鍵字段中的值與待定位的所述告 警數據的關鍵字段中的值相等,則將待定位的所述告警數據定 位到所述當前告警數據,如果當前告警數據的關鍵字段中的值 與待定位的所述告警數據的關鍵字段中的值不相等,對待定位 的所述告警lt據定位失敗。
6. 根據權利要求4所述的方法,其特征在于,還包括向所述告警 數據組插入告警數據,包括以下步驟對待插入的所述告警數據執行所述頁定位,并返回定位頁 的頁號;從所述定位頁的頁首至頁尾進行遍歷,判斷所述告警數據 組中是否存在其排序字段中的值大于或等于待插入的所述告 警數據的排序字段中的值的第一個告警數據,如果存在,則將待插入的所述告警數據插入到所述第一個告警數據之前,否貝'J,將待插入的所述告警數據插入到所述定位頁的末尾;以及更新所述數組中其下標號大于所述定位頁的頁號的節點, 根據所述指定的頁大小來改變更新后的所述節點所指向的告 警數據。
7. 根據權利要求6所述的方法,其特征在于,還包括以下步驟在插入所述告警數據后使得所述告警數據組的總頁數增 加時,在所述數組的末尾增加一個節點,并使其指向所述告警 數據組中的最后一個告警數據。
8. 根據權利要求5所述的方法,其特征在于,還包括刪除所述告 警數據組中的告警數據,包括以下步驟對待刪除的所述告警ft據進行定位,如果待刪除的所述告 警數據定位成功,則刪除定位到的所述告警數據,否則,對待 刪除的所述告警ft據的刪除失敗。
9. 根據權利要求8所述的方法,其特征在于,還包括以下步驟在刪除了待刪除的所述告警凄t據時,更新所述數組中的其 下標號大于被刪除的所述告警數據所在頁的頁號的節點,根據 所述指定的頁大小來改變更新后的所述節點所指向的告警數 據。
10. 根據權利要求9所述的方法,其特征在于,還包括以下步驟在刪除了待刪除的所述告警數據后使得所述告警數據組 的總頁^:減少的情況下,將所述^t組的末節點刪除。
11. 根據權利要求4至10中任一項所述的方法,其特征在于,所 述預定方法包括折半查找法。
全文摘要
本發明公開了一種告警數據的分頁處理方法,包括以下步驟步驟一,按照每個告警數據中的排序字段中的值對每個告警數據進行排序,以形成具有雙向鏈表結構的告警數據組;以及步驟二,按照指定的頁大小,將形成的具有雙向鏈表結構的告警數據組分為多頁。本發明通過使用排序的雙向鏈表及數組結構對告警實現分頁管理,從而實現了對告警數據的高效插入、定位和刪除,并能夠很好地支持快速地獲取特定頁的告警數據。
文檔編號H04L12/24GK101237347SQ20081000987
公開日2008年8月6日 申請日期2008年2月19日 優先權日2008年2月19日
發明者于洪賓, 歐雪剛 申請人:中興通訊股份有限公司