[發明專利]一種分布式內存數據庫訪問系統及方法有效
| 申請號: | 201410601440.2 | 申請日: | 2014-10-30 |
| 公開(公告)號: | CN104333512B | 公開(公告)日: | 2017-07-28 |
| 發明(設計)人: | 王金山 | 申請(專利權)人: | 北京思特奇信息技術股份有限公司 |
| 主分類號: | H04L12/741 | 分類號: | H04L12/741;H04L29/08;G06F17/30 |
| 代理公司: | 北京輕創知識產權代理有限公司11212 | 代理人: | 楊立 |
| 地址: | 100086 北京市海淀*** | 國省代碼: | 北京;11 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 一種 分布式 內存 數據庫 訪問 系統 方法 | ||
技術領域
本發明涉及數據庫技術領域,尤其涉及一種分布式內存數據庫訪問系統及方法。
背景技術
傳統的分布式數據庫系統,一般采用代理服務器的方式,客戶端發送SQL請求給代理服務器,代理服務器對SQL語句進行解析,然后根據路由規則,將SQL請求分發到相關的若干個數據庫節點上執行;代理服務器匯總各個節點的處理結果,再轉發給客戶端,從而實現對分布式數據庫的增刪改查等操作。
對于內存數據庫來講,對內存數據的操作是非常快的,如果通過代理服務器來訪問內存數據庫,由于涉及多次網絡通信,消耗的時間要遠比直接訪問內存大得多,這樣將無法充分發揮出內存數據庫的速度優勢。
發明內容
本發明所要解決的技術問題是針對現有技術的不足,提供一種分布式內存數據庫訪問系統。客戶端的SQL操作能夠不通過代理服務器,直接根據路由規則訪問各個內存數據庫節點,減少網絡通信的消耗;同時客戶端又不需要維護復雜的路由規則。
本發明解決上述技術問題的技術方案如下:一種分布式內存數據庫訪問系統,包括內存數據庫節點集群、客戶端和代理服務器;
所述內存數據庫節點集群,其用于在每個內存數據庫節點上存放所有內存數據庫節點的節點信息和路由規則;
所述客戶端,其用于向代理服務器發送節點信息下載請求,接收代理服務器反饋的節點信息并保存,還用于根據節點信息登錄任一內存數據庫節點獲取路由規則,以及對待執行的SQL語句進行解析,根據解析結果及路由規則確定所述SQL語句的執行節點,將SQL語句直接在執行節點上執行;
所述代理服務器,其用于監聽是否有客戶端的節點信息下載請求,當監聽到節點信息下載請求時,其登錄任一內存數據庫節點獲取節點信息發送給客戶端。
本發明的有益效果是:本發明將節點信息及路由規則統一保存在各內存數據庫節點中,客戶端不需要維護這些信息,避免由于數據不一致造成路由錯誤;同時,客戶端不用通過統一的代理服務器來執行SQL操作,直接在相應的節點上進行SQL操作,可以有效降低網絡通信的時間消耗,極大的提高了訪問效率;另外,即使代理服務器在生產過程中發生異常,客戶端也不會受到影響。本發明可有效保障數據一致性,降低網絡通信的時間消耗;降低對代理服務器的依賴性。
在上述技術方案的基礎上,本發明還可以做如下改進。
進一步,所述客戶端包括客戶端程序模塊和客戶端接口模塊,所述客戶端程序模塊通過調用客戶端接口模塊實現客戶端功能;所述客戶端接口模塊包括節點信息下載單元、節點路由加載單元、路由解析單元、SQL解析單元、執行單元和結果合并單元;
所述節點信息下載單元,其用于根據客戶端程序模塊的調用生成節點信息下載請求并發送給代理服務器,還用于接收代理服務器反饋的節點信息并保存;
所述節點路由加載單元,其用于根據節點信息登錄任一內存數據庫節點獲取路由規則并發送給路由解析單元;
所述路由解析單元,其用于對接收的路由規則進行解析,獲取路由信息,將路由信息發送給執行單元;
所述SQL解析單元,其用于對待執行的語句進行解析,將SQL解析結果發送給執行單元;
所述執行單元,其用于根據接收的路由信息及SQL解析結果確認所述SQL語句的執行節點,將該SQL操作在該執行節點上執行;
所述結果合并單元,其用于接收反饋的執行結果并進行整合合并。
進一步,所述代理服務器包括消息監聽模塊和節點信息獲取模塊;
所述消息監聽模塊,其用于實時監聽是否有客戶端發送的節點信息下載請求,當收到節點信息下載請求時調用節點信息獲取模塊;
所述節點信息獲取模塊,其用于根據消息監聽模塊的調用,登錄任一內存數據庫節點獲取節點信息,并發送給客戶端。
進一步,所述客戶端還用于在連接代理服務器失敗時,判斷本地是否存在已存儲的歷史節點信息文件,如果存在獲取節點信息,否則結束本次流程。
采用上述進一步技術方案的有益效果:客戶端在首次連接代理服務器時,已經將節點信息保存在本地文件中了,即便之后代理服務器發生異常,客戶端再次啟動時也不會受到任何影響,仍然可以通過之前保存的本地文件,獲取節點信息和路由規則。
進一步,每個內存數據庫節點以系統表的方式存放所有內存數據庫節點的節點信息和路由規則。
進一步,所述客戶端接收到代理服務器反饋的節點信息的同時斷開與代理服務器的連接。
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于北京思特奇信息技術股份有限公司,未經北京思特奇信息技術股份有限公司許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201410601440.2/2.html,轉載請聲明來源鉆瓜專利網。





