專利名稱:一種在文本信息檢索服務中支持分布式事務管理的方法
技術領域:
本發明涉及信息檢索領域
背景技術:
信息的存儲與搜索一直是計算機技術致力于解決的問 題之一,隨著計算機技術的發展,越來越多的應用程序/服務提供了全文檢索與搜索功能。在一個實際的應用中,應用通常需要一個事務中同時處理索引數據與其他數據,例如在一個內容管理系統中,用戶上傳一份文檔,系統可能至少需要執行兩個操作I.向數據庫中插入一條相關的記錄2.對該文檔內容進行索引,從而之后便可以對文檔的內容進行搜索這兩個操作必須在同一個事務中完成,否則便可能會導致數據的不一致性,例如操作一執行成功,而操作二執行失敗,則可能出現系統顯示文檔上傳成功,可是無法根據文檔內容搜索到文檔。為了在一個事務中同時處理索引數據與數據庫數據,應用需要采用分布式事務管理器同時管理數據庫資源與索引資源,這就需要數據庫和索引系統支持分布式事務的規范。XA規范是開放群組關于分布式事務處理(DTP)的規范。規范描述了全局的事務管理器與局部的資源管理器之間的接口。XA規范的目的是允許的多個資源(如數據庫,應用服務器,消息隊列,索引服務,等等)在同一事務中訪問,這樣可以使ACID屬性跨越應用程序而保持有效。
發明內容
本發明的目的是提供一種在文本信息檢索服務中支持分布式事務管理的方法。通過在文本信息檢索服務中支持分布式事務管理,在具體應用中,可以通過全局的事務管理器管理索引資源與其他類型資源,從而保證應用數據滿足事務性的要求。在本發明以下的內容中,索引資源均指文本信息檢索服務管理的索引數據。為了達到上述目的,本發明設計了一種文本信息檢索服務實現XA規范的方法。根據XA規范的要求,通過分布式事務管理索引資源的具體流程如下I.啟動事務,全局事務管理器向各資源管理器發送啟動事務請求,文本信息檢索服務收到請求后啟動本地事務。2.執行對索引資源及其他資源的操作。3.提交事務。對于實現了 XA規范的文本信息檢索服務,分布式事務管理器在提交的時候遵循兩階段提交協議。i.第一階段全局事務管理器向各資源管理器發送預提交請求,文本信息檢索服務收到請求后,預提交本地事務,并將結果(成功/失敗)返回。ii.第二階段全局事務管理器在接收到所有資源管理器的回復后,進行判斷,若所有資源管理器均返回成功,執行第一分支,若至少有一個資源管理器返回失敗,執行第二分支。 全局事務管理器向各資源管理器發送提交請求,文本信息檢索服務收到請求后,提交本地事務。 全局事務管理器向各資源管理器發送回滾請求,文本信息檢索服務收到請求后,回滾本地事務。
圖I為本發明的工作流程示意圖。
具體實施例方式下面結合附圖I對本發明所述的技術方案做進一步詳細描述。
圖I為分布式事務管理索引資源的流程圖,其中文本信息索引服務需要實現的功能如下I.創建本地事務。新建索引目錄,并生成唯一標識符用于標識此事務。2.執行索引操作。根據索引操作請求中的唯一標識符,找到索引目錄,并在該索引目錄中執行寫操作。將更新操作分解為先刪除后添加。將刪除操作進行持久化。在執行讀操作時,其處理流程如下i.在主索引目錄執行讀操作。ii.在上一步的結果中過濾掉此事務中已持久化的刪除操作的內容。iii.在此事務的索引目錄中執行讀操作,并將結果與上一步的結果合并作為最終的返回結果。3.預提交事務。根據索引操作請求中的唯一標識符,找到索引目錄,關閉索引目錄,在之后對該索引目錄的任何寫操作都不會成功。4.提交事務。根據索引操作請求中的唯一標識符,找到之前在該事務中持久化的刪除操作,在主索引目錄中執行刪除操作。根據索引操作請求中的唯一標識符,找到索引目錄,并將該索引目錄合并到主索引目錄中,從而之后所有對主索引目錄的查詢都可以查詢到事務索引目錄的內容。5.回滾事務。根據索引操作請求中的唯一標識符,找到事務索引目錄,刪除事務索引目錄。通過上述的處理流程,文本信息檢索服務實現了 XA規范,并保證了其滿足本地事務的ACID屬性,包括如下方面I.原子性。在啟動本地事務時,文本信息檢索服務新建了一個索引目錄,所有在該事務中的索引操作,都只在該索引目錄中執行。在提交事務時,將該索引目錄加入到主索引目錄中。在回滾事務時,將該索引目錄刪除。因此該事務中的索引操作內容,要么全部完成,要么回滾到事務開始前狀態,從而保證了事務的原子性。2.隔離性。假設同一時刻有事務A,B,由于在啟動本地事務時,文本信息檢索服務新建了一個索引目錄,所有在該事務中的索引操作,都只在該索引目錄中執行。在事務提交前,在事務A中的操作,對事務B沒有任何影響,從而保證了事務的隔離性。3. 一致性。同數據庫的表結構關系不同,文本信息檢索服務中存儲的數據是無關聯關系的,因此文本信息檢索服務的本地事務天然地滿足一致性的要求。4.持久性。在事務提交以后,該事務的索引目錄會被合并到主索引目錄中。由于主索引目錄的持久化的,從而 滿足了事務的持久性。
權利要求
1.一種在文本信息檢索服務中支持分布式事務管理的方法,其特征在于 1)支持本地事務的ACID特性 2)支持XA規范,可接受分布式全局事務管理器管理。
2.如權利I所述的在文本信息檢索服務中支持分布式事務管理的方法支持本地事務ACID特性,其特征在于在啟動本地事務時新建索引目錄,在提交事務時,將該索引目錄與主索引目錄合并,在回滾事務時,刪除該索引目錄,保證了事務的原子性。
3.如權利I所述的在文本信息檢索服務中支持分布式事務管理的方法支持本地事務ACID特性,其特征在于每個事務中的索引請求都只在該事務索引目錄中執行,保證了事務的隔離性。
4.如權利I所述的在文本信息檢索服務中支持分布式事務管理的方法支持本地事務ACID特性,其特征在于利用文本信息檢索服務中存儲的數據是無關聯關系的,保證了事務的一致性。
5.如權利I所述的在文本信息檢索服務中支持分布式事務管理的方法支持本地事務ACID特性,其特征在于提交后的事務,其索引目錄內容會被持久化到文件系統中,保證了事務的持久性。
6.如權利I所述的在文本信息檢索服務中支持分布式事務管理的方法支持XA規范,其特征在于其實現了 XA規范中的兩階段提交協議。
7.如權利6所述的在文本信息檢索服務中支持分布式事務管理的方法實現了兩階段提交協議,其特征在于在預提交事務后,關閉索引目錄,保證了預提交后不接受任何寫請求。
全文摘要
本發明提供了一種在文本信息檢索服務中支持分布式事務管理的方法。通過該方法,可以在分布式事務管理器中管理文本信息檢索服務的本地事務。為了達到上述目的,本發明設計了一種文本信息檢索服務實現XA規范的方法,并按照XA規范實現了兩階段提交協議,同時保證了本地事務的ACID特性。
文檔編號G06F17/30GK102760154SQ20121016222
公開日2012年10月31日 申請日期2012年5月23日 優先權日2012年5月23日
發明者不公告發明人 申請人:上海引跑信息科技有限公司