專利名稱:一種并行處理分布式數據庫的方法和裝置的制作方法
技術領域:
本發明涉及一種并行處理分布式數據庫的方法及其裝置。特別是涉及在大型分布式多數據庫的系統中有效地管理數據庫執行數據通信及信息管理的方法。
以呼叫管理中心為例,呼叫管理中心的撥號上網認證業務由協議處理裝置和數據庫裝置相互配合實施(這兩個裝置可以在同一臺機器上運行,也可以各占一臺機器運行)。隨著業務量的快速增長,單個呼叫管理中心的運作方式不能滿足用戶需求。為提高系統端口批發處理能力而采用多個分布式的呼叫管理中心(DCMC)。分布式呼叫管理中心采用分布式并行處理的IP接入公共平臺系統,實現了多個數據庫獨立運行的機制。每個數據庫對應一個呼叫管理中心,不同數據庫管理不同接入碼的呼叫控制。因此,各個數據庫必需配置同樣的端口、路由管理中心(RMC)等全網資源信息。在多數據庫應用系統中,管理配置裝置往往需要對多個數據庫進行同步操作,調用同樣的存儲過程,負責系統內所有數據庫的配置查詢工作。在對全網資源進行配置(增加、刪除、修改)時,需要對系統中所有數據庫調用同樣的存儲過程。因此,分布式數據庫的使用給統一管理帶來了困難,管理配置裝置需要對所有數據庫進行操作,并將結果匯總。多個數據庫的處理效率也就成為令人頭痛的問題。顯然,如果選擇對每個數據庫的串行操作,那么執行一次數據庫操作的時間就會大于每個分布式數據庫執行時間的總和,如果系統中有較多的數據庫或有些耗時較長的操作,操作時間恐怕就不能接受了。而采用數據庫并行操作,就會帶來數據保護、流程同步等問題,如何確定系統的結構就成為了關鍵。一個不好的結構不但會占用大量系統資源,而且會使代碼臃腫,故障點增加。目前,大多數作法是一個數據庫對象對應一個數據庫連接,由管理配置裝置通過其與數據庫的接口直接訪問多個數據庫,這樣使管理配置裝置只能訪問固定個數的數據庫,而且由一個管理配置裝置同時處理對多個數據庫的訪問,會造成內部結構混亂,代碼冗長,處理時間延長,而且容易產生沖突并出錯,很難維護系統的運行。
如果已經有了單個數據庫的管理臺程序,在改用分布式數據庫后,原有程序幾乎需要全部修改或重寫,對于開發人員來說,簡直是個災難。
本發明的目的是在管理配置裝置與多個數據庫之間增加一個數據庫處理裝置,以便對數據庫提供分層次的管理來實現的。
根據本發明的一個方面,提供一種利用數據庫處理裝置并行處理分布式數據庫的方法,該方法包括步驟數據庫處理裝置接受管理配置裝置對數據庫的調用命令,數據庫處理裝置中的主控制裝置根據所述調用命令選擇需要進行操作的數據庫,并喚醒與所述數據庫對應的執行裝置,被喚醒的執行裝置執行管理配置裝置調用的數據庫的操作,等待被喚醒的執行裝置完成數據庫操作,將被喚醒的執行裝置執行數據庫操作的處理結果傳送到其所對應的局部處理結果存儲裝置,主控制裝置匯總局部處理結果存儲裝置中存儲的局部處理結果,并在主控制裝置中生成數據庫的最終處理結果,將數據庫的最終處理結果返回到管理配置裝置。
根據本發明的并行處理分布式數據庫的方法,各執行裝置執行真正的數據庫操作,平時在核心對象將執行裝置阻塞,不占用CPU時間,當執行裝置被控制裝置喚醒后,就執行控制裝置的指令,執行完畢再次進入睡眠狀態,等待下一次喚醒。
根據本發明的另一個方面,提供一種并行處理分布式數據庫的數據庫處理裝置,該數據庫處理裝置包括與相應的數據庫對應的執行裝置,用于執行真正的數據庫操作,并將對應數據庫的操作結果送入局部處理結果存儲裝置并存儲在其中與相應的執行裝置對應的局部處理結果存儲裝置,用于存儲每個對應的執行裝置所執行的數據庫操作的處理結果,主控制裝置,用于接受管理配置裝置對數據庫的調用,選擇需要進行操作的數據庫,并喚醒對應數據庫的執行裝置,等待執行裝置完成數據庫操作,匯總每個執行裝置的局部處理結果,生成最終處理結果,并向管理配置裝置返回最終處理結果。
根據本發明的并行處理分布式數據庫的方法和裝置不但實現了數據庫并行處理,而且并行后的處理速度和單個數據庫的處理速度基本相同。訪問數據庫的個數可以通過在管理配置裝置的配置文件來決定,無須修改代碼。對數據庫調用的處理層次清晰,實現簡單,系統開銷很小。在原有類上進行封裝,封裝后原單個數據庫操作的大部分接口可以保持不變。
圖1是分布式數據庫應用系統的方框圖;圖2是并行處理分布式數據庫的方法的流程圖。
圖1中以三個數據庫為例說明并行分布式數據庫應用系統。分布式數據庫應用系統包括數據庫1,數據庫處理裝置5和管理配置裝置6。其中數據庫處理裝置5包括執行裝置2,局部處理結果存儲裝置3,主控制裝置4。數據庫1主要為執行裝置提供接口,并確保主流程處理效率。管理配置裝置6的主要功能有第一,為系統操作員提供管理配置功能,包括客戶管理、資源管理、操作員管理、性能管理和安全管理;第二,為端口租用客戶實時提供網絡運行情況信息,并具有統計分析的能力,讓客戶了解與其有關的性能指標。
管理配置裝置6的作用是給系統管理人員提供一個接口界面,以便配置數據庫信息和上網信息查詢。管理配置裝置6接受系統管理人員或客戶發出的對數據庫的調用請求,然后把該調用請求送到數據庫處理裝置5,而不是象常規數據庫應用系統那樣直接調用數據庫,執行所有數據庫的操作。數據庫處理裝置5接受管理配置裝置6對數據庫的調用請求,并根據該請求中包含的表示每個數據庫專有的數據庫識別碼(DBID)來調用相應的執行裝置2。在數據庫處理裝置5中,有與系統中的每個數據庫1一一對應的執行裝置2,一個執行裝置可以理解成對相應的數據庫的連接裝置。圖1所示系統中有三個數據庫,數據庫處理裝置5中就有三個執行裝置2。所有執行裝置2都由數據庫處理裝置5中的主控制裝置4控制,數據庫處理裝置5中的主控制裝置4沒有收到管理配置裝置6發來的命令請求時,所有執行裝置2都處在等待狀態。
主控制裝置4接收到管理配置裝置6調用數據庫的命令請求時,根據該命令請求中包含的數據庫識別碼(DBID)選擇需要進行操作的數據庫1,并喚醒與該數據庫1對應的執行裝置2。各執行裝置2執行真正的數據庫操作,平時在核心對象(未示出)處阻塞執行裝置2,不占用CPU時間,當執行裝置2被主控制裝置4喚醒后,就執行主控制裝置4的指令,執行完畢再次進入睡眠狀態,等待下一次喚醒。因此,執行裝置2不執行操作時,不占用CPU的資源。在數據庫處理裝置5中,每個執行裝置2都有一個與其相對應的局部處理結果存儲裝置3,用于存儲每個執行裝置2的操作結果。執行裝置2執行完數據庫操作后,將該數據庫操作是成功還是失敗的操作結果存儲在與其對應的局部處理結果存儲裝置3中。如果數據庫操作失敗,將操作失敗的數據庫的數據庫編號和操作失敗時數據庫執行的查詢語句或存儲過程存儲在局部處理結果存儲裝置3中。數據庫處理系統中執行的數據庫操作結果分為三種情況1.數據庫操作全部成功;2.數據庫操作全部失敗;3.數據庫操作部分成功。主控制裝置4等待執行裝置2完成數據庫操作,匯總局部處理結果存儲裝置3中存儲的每個被調用的數據庫的處理結果,并在主控制裝置4中生成所有被調用的數據庫1的操作是成功還是失敗的最終處理結果。將所生成的數據庫最終處理結果返回到管理配置裝置6。
下面結合圖2描述并行處理分布式數據庫的流程圖。首先,在在步驟S201,數據庫處理裝置5中的主控制裝置4接收管理配置裝置6發來的數據庫調用命令請求,該命令請求包含表示每個數據庫專有的數據庫識別碼(DBID),主控制裝置4分析該命令請求,將該命令請求轉化成相應的存儲過程或數據庫SQL(結構化查詢語言)命令。在步驟S202,主控制裝置4從命令請求中提取DBID。DBID指示對那個數據庫進行操作,例如,系統中有三個數據庫,其序號就分別是0、1、2,DBID=2就表示本次命令只對序號為2的數據庫進行操作。另外,設定一種情況,當DBID=-1時就表示本次命令請求對系統中所有數據庫進行操作。在步驟S203,主控制裝置4根據提取的DBID的值來設置該DBID對應的執行裝置2的初始環境,并將對應的執行裝置2設為標記狀態,解開該DBID對應的一個或所有執行裝置2的互斥鎖。解鎖后的執行裝置2就進入工作狀態,執行對應數據庫的SQL命令或存儲過程。此后,在步驟S204,主控制裝置4等待被喚醒的執行裝置2執行完數據庫SQL命令或存儲過程后,重新鎖住執行裝置2,回到等待狀態,并將執行裝置2的處理結果存儲在局部處理結果存儲裝置3中。在步驟S205,主控制裝置4匯總局部處理結果存儲裝置3中存儲的局部處理結果,并在主控制裝置中生成最終結果。在步驟S206,檢查數據庫的SQL命令或存儲過程的處理結果。在步驟S207,判斷數據庫操作是全部成功,部分成功或全部失敗中的哪一種情況。如果在步驟S207判斷數據庫操作全部成功,則在步驟S208向管理配置裝置6返回數據庫操作全部成功指示。如果在步驟S207判斷數據庫操作部分成功,則在步驟S209向管理配置裝置6返回數據庫操作部分成功的指示。如果在步驟S207判斷數據庫操作全部失敗,則在步驟S210向管理配置裝置返回數據庫操作全部失敗的指示。
至此已結合實施例說明了本發明的具體實施過程。本發明的方法和裝置實現了數據庫并行處理,并行后的處理速度和單數據庫處理速度基本相同。訪問數據庫的個數可以由配置文件決定,無須修改代碼。
權利要求
1.一種利用數據庫處理裝置開行處理分布式數據庫的方法,其特征在于該方法包括步驟數據庫處理裝置接受管理配置裝置對數據庫的調用命令;數據庫處理裝置中的主控制裝置根據所述調用命令選擇需要進行操作的數據庫,并喚醒與所述數據庫對應的執行裝置;被喚醒的執行裝置執行管理配置裝置調用的數據庫的操作;等待被喚醒的執行裝置完成數據庫操作;將被喚醒的執行裝置執行數據庫操作的處理結果傳送到其所對應的局部處理結果存儲裝置;主控制裝置匯總局部處理結果存儲裝置中存儲的局部處理結果,并在主控制裝置中生成數據庫的最終處理結果;將數據庫的最終處理結果返回到管理配置裝置。
2.根據權利要求1所述的利用數據庫處理裝置并行處理分布式數據庫的方法,其特征在于如果數據庫的最終處理結果是全部成功,則向管理配置裝置返回數據庫操作全部成功的指示;如果數據庫的最終處理結果是部分成功,則向管理配置裝置返回數據庫操作部分成功的指示;如果數據庫的最終處理結果是全部失敗,則向管理配置裝置返回數據庫操作全部失敗的指示。
3.一種并行處理分布式數據庫的數據庫處理裝置,其特征在于該數據庫處理裝置包括與相應的數據庫對應的執行裝置,用于執行真正的數據庫操作,并將對應數據庫的操作結果送入局部處理結果存儲裝置并存儲在其中;與相應的執行裝置對應的局部處理結果存儲裝置,用于存儲每個對應的執行裝置所執行的數據庫操作的處理結果;主控制裝置,用于接受管理配置裝置對數據庫的調用,選擇需要進行操作的數據庫,并喚醒對應數據庫的執行裝置,等待執行裝置完成數據庫操作,匯總每個執行裝置的局部處理結果,生成最終處理結果,并向管理配置裝置返回最終處理結果。
全文摘要
一種利用數據庫處理裝置并行處理分布式數據庫的方法和裝置,包括數據庫處理裝置接受管理配置裝置對數據庫的調用命令,數據庫處理裝置中的主控制裝置根據所述調用命令選擇需要進行操作的數據庫,并喚醒與所述數據庫對應的執行裝置,被喚醒的執行裝置執行管理配置裝置調用的數據庫的操作,等待被喚醒的執行裝置完成數據庫操作,將被喚醒的執行裝置執行數據庫操作的處理結果傳送到其所對應的局部處理結果存儲裝置,主控制裝置匯總局部處理結果存儲裝置中存儲的局部處理結果,并在主控制裝置中生成數據庫的最終處理結果。將數據庫的最終處理結果返回到管理配置裝置。
文檔編號G06F17/30GK1399209SQ0112055
公開日2003年2月26日 申請日期2001年7月20日 優先權日2001年7月20日
發明者盧志堅, 郭曉征 申請人:華為技術有限公司