鬼佬大哥大
  • / 14
  • 下載費用:30 金幣  

一種處理增量索引合并失敗的方法及裝置.pdf

關 鍵 詞:
一種 處理 增量 索引 合并 失敗 方法 裝置
  專利查詢網所有資源均是用戶自行上傳分享,僅供網友學習交流,未經上傳用戶書面授權,請勿作他用。
摘要
申請專利號:

CN201510463429.9

申請日:

2015.07.31

公開號:

CN105069078A

公開日:

2015.11.18

當前法律狀態:

實審

有效性:

審中

法律詳情: 實質審查的生效IPC(主分類):G06F 17/30申請日:20150731|||公開
IPC分類號: G06F17/30 主分類號: G06F17/30
申請人: 天脈聚源(北京)傳媒科技有限公司
發明人: 楊亁磊
地址: 100007北京市東城區安定門東大街28號雍和大廈E座808室
優先權:
專利代理機構: 北京尚倫律師事務所11477 代理人: 張亮
PDF完整版下載: PDF下載
法律狀態
申請(專利)號:

CN201510463429.9

授權公告號:

|||

法律狀態公告日:

2015.12.16|||2015.11.18

法律狀態類型:

實質審查的生效|||公開

摘要

本發明公開了一種處理增量索引合并失敗的方法及裝置,所述處理增量索引合并失敗的方法與裝置,包括:執行將增量索引合并到總索引的處理;判斷所述處理是否失敗;在所述處理失敗時,重新執行所述處理;當重新執行的所述處理失敗時,重新創建所述增量索引。本發明可在無須加入監測工具來實時監測合并的過程的情況下,就可以處理增量索引合并失敗的問題,可以提高索引更新的效率,降低系統的資源消耗。

權利要求書

1.一種處理增量索引合并失敗的方法,其特征在于,在服務器端,包
括:
執行將增量索引合并到總索引的處理;
判斷所述處理是否失敗;
在所述處理失敗時,重新執行所述處理;
當重新執行的所述處理失敗時,重新創建所述增量索引。
2.根據權利要求1所述的方法,其特征在于,在所述處理失敗時,重新
執行所述處理,包括:
在所述處理失敗時,將所述總索引回滾到合并所述增量索引前的起始狀
態;
重新將所述增量索引合并到所述總索引。
3.根據權利要求1所述的方法,其特征在于,所述重新將所述增量索引
合并到所述總索引,包括:
重新執行至少一次將所述增量索引合并到所述總索引的處理,其中:
在每重新執行一次之后,判斷本次執行是否成功,當本次執行失敗時,
繼續重新執行所述處理,直到執行成功時結束、或者直到重新執行的失敗次
數達到預設閾值時,停止重新執行所述處理。
4.根據權利要求3所述的方法,其特征在于,
所述當重新執行的所述處理失敗時,重新創建所述增量索引,包括:
當所述重新執行的失敗次數達到預設閾值時,重新創建所述增量索引。
5.根據權利要求1所述的方法,其特征在于,在重新創建所述增量索引
之前,所述還包括:
刪除所述增量索引。
6.一種處理增量索引合并失敗的裝置,其特征在于,在服務器端,包
括:
合并模塊,用于執行將增量索引合并到總索引的處理;
判斷模塊,用于判斷所述處理是否失敗;
重執模塊,用于在所述處理失敗時,重新執行所述處理;
重建模塊,用于當重新執行的所述處理失敗時,重新創建所述增量索
引。
7.根據權利要求6所述的裝置,其特征在于,所述合并模塊,包括:
回滾子模塊,用于在所述處理失敗時,將所述總索引回滾到合并所述增
量索引前的起始狀態;
合并子模塊,用于重新將所述增量索引合并到所述總索引。
8.根據權利要求6所述的裝置,其特征在于,
所述合并子模塊,還用于重新執行至少一次將所述增量索引合并到所述
總索引的處理,其中:在每重新執行一次之后,判斷本次執行是否成功,當
本次執行失敗時,繼續重新執行所述處理,直到執行成功時結束、或者直到
重新執行的失敗次數達到預設閾值時,停止重新執行所述處理。
9.根據權利要求8所述的裝置,其特征在于,所述重建模塊,包括:
重建子模塊,用于當所述重新執行的失敗次數達到預設閾值時,重新創
建所述增量索引。
10.根據權利要求6所述的裝置,其特征在于,所述裝置還包括:
刪除模塊,用于在所述重建模塊重新創建所述增量索引之前,刪除所述
增量索引。

說明書

一種處理增量索引合并失敗的方法及裝置

技術領域

本公開涉及數據庫技術領域,尤其涉及一種處理增量索引合并失敗的方法
及裝置。

背景技術

近年來,數據庫得到越來越廣泛的應用,其中索引作為數據庫表中一列或
多列的值進行排序的一種結構,使用索引可快速訪問數據庫表中的特定信息。

在數據庫中,索引相對于數據庫的SQL語句執行得更快。索引的作用相
當于圖書的目錄,可以根據目錄中的頁碼快速找到所需的內容。當數據庫中有
大量記錄時,若要對數據庫進行查詢,若采用非索引的方式搜索,需要將所有
記錄一一取出,和查詢條件進行一一對比,然后返回滿足條件的記錄,會消耗
大量數據庫系統時間,導致大量磁盤I/O操作;若采用索引的方式搜索,在索
引中找到符合查詢條件的索引值,可快速找到數據庫中對應的記錄。

數據庫中增加新的數據,不僅需要更新數據庫本身,還需要更新與數據庫
對應的索引。新增加的索引會根據新增加的數據而產生,為了使索引與更新后
的數據庫相匹配,需要同步更新索引,即將新增加的索引合并到總索引中。在
合并的過程中,會有一定的概率發生合并錯誤的情況。現有技術中,需要監測
工具對合并過程進行實時監測,若發生合并失敗的狀況,會根據監測到的問題,
重新建立新的索引。在此過程中,大部分將新增加的索引合并到總索引的操作
是會成功的。若每次合并過程都加入監測工具,監測工具實時的監控合并的過
程,會占用較多的系統資源,影響數據庫更新的效率。

發明內容

本發明提供一種處理增量索引合并失敗的方法及裝置,用在不需要監測工
具來實時監測合并的過程的情況下,處理發生合并增量索引和總索引合并失敗
的情況。

根據本公開實施例的第一方面,提供一種處理增量索引合并失敗的方法,
在服務器端,包括:

執行將增量索引合并到總索引的處理;

判斷所述處理是否失敗;

在所述處理失敗時,重新執行所述處理;

當重新執行的所述處理失敗時,重新創建所述增量索引。

本公開的實施例提供的技術方案可以包括以下有益效果:無需監測工具來
實時監測合并的過程,就可以處理增量索引合并失敗的問題,降低了系統資源
的消耗的同時,提高了總索引更新的效率。

在一個實施例中,在所述處理失敗時,重新執行所述處理,包括:

在所述處理失敗時,將所述總索引回滾到合并所述增量索引前的起始狀
態;

重新將所述增量索引合并到所述總索引。

本公開的實施例提供的技術方案可以包括以下有益效果:保證了總索引始
終維持在正確的狀態下,保證了總索引的所有數據的可靠性和準確性。

在一個實施例中,所述重新將所述增量索引合并到所述總索引,包括:

重新執行至少一次將所述增量索引合并到所述總索引的處理,其中:

在每重新執行一次之后,判斷本次執行是否成功,當本次執行失敗時,
繼續重新執行所述處理,直到執行成功時結束、或者直到重新執行的失敗次
數達到預設閾值時,停止重新執行所述處理。

本公開的實施例提供的技術方案可以包括以下有益效果:在無需監測工具
進行實時監控的情況下,通過本實施例的方法推斷出將增量索引合并到總索引
失敗的原因,系統無需承擔監測工具進行實時監測所消耗的系統資源,保證了
系統的高效運行效率。

在一個實施例中,所述當重新執行的所述處理失敗時,重新創建所述增
量索引,包括:

當所述重新執行的失敗次數達到預設閾值時,重新創建所述增量索引。

本公開的實施例提供的技術方案可以包括以下有益效果:判斷重新執行的
失敗次數是否達到預設閾值的數值,使用預設閾值時,可以避免系統進行額
外的合并操作,同時不至于因為執行合并操作太少,導致錯過正確的增量索
引。

在一個實施例中,在重新創建所述增量索引之前,包括如下步驟S51:

在步驟S51中,刪除所述增量索引。

本公開的實施例提供的技術方案可以包括以下有益效果:在根據生成原增
量索引的數據,重新創建一個新的增量索引之前,刪除原增量索引,可以避
免不同增量索引之間的相互干擾,使索引更新系統運行更穩定。

根據本公開實施例的第二方面,提供一種處理增量索引合并失敗的裝置,
在服務器端,包括:

合并模塊,用于執行將增量索引合并到總索引的處理;

判斷模塊,用于判斷所述處理是否失敗;

重執模塊,用于在所述處理失敗時,重新執行所述處理;

重建模塊,用于當重新執行的所述處理失敗時,重新創建所述增量索
引。

在一個實施例中,所述合并模塊,包括:

回滾子模塊,用于在所述處理失敗時,將所述總索引回滾到合并所述增
量索引前的起始狀態;

合并子模塊,用于重新將所述增量索引合并到所述總索引。

在一個實施例中,所述合并子模塊,還用于重新執行至少一次將所述增
量索引合并到所述總索引的處理,其中:在每重新執行一次之后,判斷本次
執行是否成功,當本次執行失敗時,繼續重新執行所述處理,直到執行成功
時結束、或者直到重新執行的失敗次數達到預設閾值時,停止重新執行所述
處理。

在一個實施例中,所述重建模塊,包括:

重建子模塊,用于當所述重新執行的失敗次數達到預設閾值時,重新創
建所述增量索引。

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

刪除模塊,用于在所述重建模塊重新創建所述增量索引之前,刪除所述
增量索引。

本發明的其它特征和優點將在隨后的說明書中闡述,并且,部分地從說明
書中變得顯而易見,或者通過實施本發明而了解。本發明的目的和其他優點可
通過在所寫的說明書、權利要求書、以及附圖中所特別指出的結構來實現和獲
得。

下面通過附圖和實施例,對本發明的技術方案做進一步的詳細描述。

附圖說明

附圖用來提供對本發明的進一步理解,并且構成說明書的一部分,與本發
明的實施例一起用于解釋本發明,并不構成對本發明的限制。在附圖中:

圖1為本發明一示例性實施例示出的一種處理增量索引合并失敗的方法流
程圖;

圖2為本發明一示例性實施例示出的一種處理增量索引合并失敗的方法流
程圖;

圖3為本發明一示例性實施例示出的一種處理增量索引合并失敗的方法流
程圖;

圖4為本發明一示例性實施例示出的一種處理增量索引合并失敗的方法流
程圖;

圖5為本發明一示例性實施例示出的一種處理增量索引合并失敗的方法流
程圖;

圖6為本發明一示例性實施例示出的一種處理增量索引合并失敗的裝置框
圖;

圖7為本發明一示例性實施例示出的一種處理增量索引合并失敗的裝置框
圖;

圖8為本發明一示例性實施例示出的一種處理增量索引合并失敗的裝置框
圖;

圖9為本發明一示例性實施例示出的一種處理增量索引合并失敗的裝置框
圖;

具體實施方式

以下結合附圖對本發明的優選實施例進行說明,應當理解,此處所描述的
優選實施例僅用于說明和解釋本發明,并不用于限定本發明。

數據庫中增加新的數據,不僅需要更新數據庫本身,還需要更新與數據庫
對應的索引。新增加的索引會根據新增加的數據而產生,為了使索引與更新后
的數據庫相匹配,需要同步更新索引,即將新增加的索引合并到總索引中。索
引與數據庫之間的關系,相當于一本書的目錄與正文之間關系。所有索引數
據分布在多個服務器下對應數據庫中的多個分表中,索引分片是在每個服務
器單獨進行,根據分片總數,將該服務器數據均勻的分布到各個索引分片
中。

當數據庫中有大量記錄時,對數據庫中數據進行查詢有兩種方式。第一種
搜索的方式是搜索整個數據庫,將查詢條件與數據庫中的所有數據進行逐一對
比,然后返回符合查詢條件的數據;第二種搜索的方式是在搜索引擎中建立索
引,在索引中找到符合查詢條件的記錄,再根據索引與數據庫的對應關系,快
捷的查詢到數據庫中對應的記錄。采用第一種查詢方式,會消耗大量數據庫系
統資源,同時造成大量磁盤I/O操作;采用第二種方式,雖然索引本身也占據
一定的物理存儲空間,但是在查詢數據時,可以大大加快檢索速度,避免大量
不必要的磁盤I/O操作。

圖1是根據一示例性實施例示出的一種處理增量索引合并失敗的方法流程
圖,如圖1所示,該處理增量索引合并失敗的方法用于服務器端,包括以下步
驟S11-S14:

在步驟S11中,執行將增量索引合并到總索引的處理;

在步驟S12中,判斷所述處理是否失敗;

在步驟S13中,在所述處理失敗時,重新執行所述處理;

在步驟S14中,當重新執行的所述處理失敗時,重新創建所述增量索引。

在一個實施例中,當數據庫中的增加新的數據時,索引也需要實時的做
出相應的變更。將變更的索引數據存儲在增量索引中,當該增量索引滿足預
設的條件的時候,嘗試將該增量索引合并到總索引中,在合并的過程中是依
此將增量索引中的信息寫入總索引中的,在這個過程中,可能會出現據合并
錯誤的情況。在沒有監測工具來實時監測合并過程的情況下,只需要判斷總索
引是否完整且正確的接收了增量索引中的內容,即判斷增量索引合并是否成
功。在合并成功的情況下,開始下一輪的合并增量索引的過程,即根據新的
數據生成新的增量索引,嘗試將新的索引合并到總索引中;在合并失敗的情
況下,首先將總索引回滾到合并該增量索引之前的狀態,然后重新合并該增
量索引到總索引中。當增量索引合并到總索引的失敗次數達到預設閾值時,
不再重新執行增量索引合并到總索引的處理,根據生成原增量索引的信息創
建一個新的增量索引。

本公開的實施例提供的技術方案可以包括以下有益效果:無需監測工具來
實時監測增量索引與總索引合并的過程,就可以處理增量索引合并失敗的問
題,降低了系統資源的消耗的同時,提高了總索引更新的效率。

在一個實施例中,如圖2所示,還包括如下步驟S21-S22:

在步驟S21中,在所述處理失敗時,將所述總索引回滾到合并所述增量索
引前的起始狀態;

在步驟S22中,重新將所述增量索引合并到所述總索引。

在一個實施例中,在數據庫中的所有操作都需要保證數據庫的數據完整
性和安全性,當發生數據處理錯誤的情況,將數據恢復到上一次正確狀態。
務必要在下一次操作之前,消除數據庫中不成功的數據處理所造成的所有影
響。否則,會造成不可估計的錯誤。當總索引回滾到上次增量索引與總索引
合并之前的正確狀態后,然后再次使用上次合并使用的增量索引與總索引進
行合并操作。

本公開的實施例提供的技術方案可以包括以下有益效果:保證了總索引始
終維持在正確的狀態下,保證了總索引的所有數據的可靠性和準確性。

在一個實施例中,如圖3所示,還包括步驟S31-S32:

在步驟S31中,重新執行至少一次將所述增量索引合并到所述總索引的處
理;

在步驟S32中,在每重新執行一次之后,判斷本次執行是否成功,當本次
執行失敗時,繼續重新執行所述處理,直到執行成功時結束、或者直到重新
執行的失敗次數達到預設閾值時,停止重新執行所述處理。

在一個實施例中,增量索引合并到總索引的過程中發生一次錯誤,并不
能推斷出導致合并錯誤的原因是增量索引本身的問題,所以繼續使用原增量
索引進行多次合并。在該預設閾值內,發生成功合并的情況,合并操作任務
結束;在達到該預設閾值的過程中,合并操作連續失敗,則停止重新執行合
并該增量索引到總索引的操作。在增量索引合并到總索引過程中發生錯誤的
情況,有諸多因素影響,在該預設閾值內連續發生合并錯誤,則可以推斷出
引發合并錯誤的原因在很大程度上是因為增量索引本身出了問題。

本公開的實施例提供的技術方案可以包括以下有益效果:在無需監測工具
進行實時監控的情況下,通過本實施例的方法可推斷出將增量索引合并到總索
引失敗的原因,系統無需承擔監測工具進行實時監測所消耗的系統資源,避免
了系統資源的浪費,保證了系統的高效運行效率。

在一個實施例中,如圖4所示,包括如下步驟S41:

在步驟S41中,所述當重新執行的所述處理失敗時,重新創建所述增量索
引,包括:

當所述重新執行的失敗次數達到預設閾值時,重新創建所述增量索引。

在一個實施例中,當增量索引合并到總索引的失敗次數達到預設閾值
時,可以推斷出引發合并錯誤的原因是增量索引本身出了問題,繼續使用有
問題的增量索引與總索引進行合并,并不能幫助解決合并失敗的問題。在增
量索引合并到總索引的失敗次數達到預設閾值時,根據生成原增量索引的數
據,重新創建一個新的增量索引,使用新的增量索引進行增量索引與總索引
合并的操作。

本公開的實施例提供的技術方案可以包括以下有益效果:判斷重新執行的
失敗次數是否達到預設閾值的數值,使用預設閾值時,可以避免系統進行不
必要的合并操作,同時不至于因為執行合并操作太少,導致錯過正確的增量
索引。

在一個實施例中,如圖5所示,在重新創建所述增量索引之前,包括如下
步驟S51:

在步驟S51中,刪除所述增量索引。

在一個實施例中,當增量索引合并失敗連續發生的次數達到預設閾值
時,需要根據生成原增量索引的數據,重新創建一個新的增量索引。原增量
索引需要在創建新的增量索引之前刪除。

本公開的實施例提供的技術方案可以包括以下有益效果:在根據生成原增
量索引的數據,重新創建一個新的增量索引之前,刪除原增量索引,可以避
免不同增量索引之間的相互干擾,保證索引更新系統穩定運行。

在一個實施例中,圖6是根據一示例性實施例示出的一種處理增量索引合
并失敗的裝置框圖。如圖6所示,該裝置包括合并模塊61、判斷模塊62、重
執模塊63、重建模塊64。

該合并模塊61,用于執行將增量索引合并到總索引的處理;

該判斷模塊62,用于判斷所述處理是否失敗;

該重執模塊63,用于在所述處理失敗時,重新執行所述處理;

該重建模塊64,用于當重新執行的所述處理失敗時,重新創建所述增量
索引。

在一個實施例中,圖7是根據一示例性實施例示出的一種處理增量索引合
并失敗的裝置框圖。如圖7所示,該合并模塊包括回滾子模塊71和合并子模
塊72。

該回滾子模塊71,用于在所述處理失敗時,將所述總索引回滾到合并所
述增量索引前的起始狀態;

該合并子模塊72,用于重新將所述增量索引合并到所述總索引;

該合并子模塊72,還用于重新執行至少一次將所述增量索引合并到所述
總索引的處理,其中:在每重新執行一次之后,判斷本次執行是否成功,當
本次執行失敗時,繼續重新執行所述處理,直到執行成功時結束、或者直到
重新執行的失敗次數達到預設閾值時,停止重新執行所述處理。

在一個實施例中,圖8是根據一示例性實施例示出的一種處理增量索引合
并失敗的裝置框圖。如圖8所示,該重建模塊包括重建子模塊81。

該重建子模塊81,用于當所述重新執行的失敗次數達到預設閾值時,重
新創建所述增量索引。

在一個實施例中,圖9是根據一示例性實施例示出的一種處理增量索引合
并失敗的裝置框圖。如圖9所示,該裝置包括刪除模塊91。

該刪除模塊91,用于在所述重建模塊重新創建所述增量索引之前,刪除
所述增量索引。

本領域內的技術人員應明白,本發明的實施例可提供為方法、系統、或
計算機程序產品。因此,本發明可采用完全硬件實施例、完全軟件實施例、
或結合軟件和硬件方面的實施例的形式。而且,本發明可采用在一個或多個
其中包含有計算機可用程序代碼的計算機可用存儲介質(包括但不限于磁盤
存儲器和光學存儲器等)上實施的計算機程序產品的形式。

本發明是參照根據本發明實施例的方法、設備(系統)、和計算機程序產
品的流程圖和/或方框圖來描述的。應理解可由計算機程序指令實現流程圖和
/或方框圖中的每一流程和/或方框、以及流程圖和/或方框圖中的流程和/
或方框的結合。可提供這些計算機程序指令到通用計算機、專用計算機、嵌入
式處理機或其他可編程數據處理設備的處理器以產生一個機器,使得通過計算
機或其他可編程數據處理設備的處理器執行的指令產生用于實現在流程圖一
個流程或多個流程和/或方框圖一個方框或多個方框中指定的功能的裝置。

這些計算機程序指令也可存儲在能引導計算機或其他可編程數據處理設
備以特定方式工作的計算機可讀存儲器中,使得存儲在該計算機可讀存儲器中
的指令產生包括指令裝置的制造品,該指令裝置實現在流程圖一個流程或多個
流程和/或方框圖一個方框或多個方框中指定的功能。

這些計算機程序指令也可裝載到計算機或其他可編程數據處理設備上,使
得在計算機或其他可編程設備上執行一系列操作步驟以產生計算機實現的處
理,從而在計算機或其他可編程設備上執行的指令提供用于實現在流程圖一個
流程或多個流程和/或方框圖一個方框或多個方框中指定的功能的步驟。

顯然,本領域的技術人員可以對本發明進行各種改動和變型而不脫離本
發明的精神和范圍。這樣,倘若本發明的這些修改和變型屬于本發明權利要求
及其等同技術的范圍之內,則本發明也意圖包含這些改動和變型在內。

   內容來自專利網www.wwszu.club轉載請標明出處

關于本文
本文標題:一種處理增量索引合并失敗的方法及裝置.pdf
鏈接地址:http://www.wwszu.club/p-6385983.html
關于我們 - 網站聲明 - 網站地圖 - 資源地圖 - 友情鏈接 - 網站客服 - 聯系我們

[email protected] 2017-2018 zhuanlichaxun.net網站版權所有
經營許可證編號:粵ICP備17046363號-1 
 


收起
展開
鬼佬大哥大 43761746064559485938864061664452830780919494642371544235398734623120881624110051423164812632544706132 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();