[發明專利]一種分布式數據庫的擴展方法及裝置有效
| 申請號: | 201610862130.5 | 申請日: | 2016-09-28 |
| 公開(公告)號: | CN107870954B | 公開(公告)日: | 2021-09-21 |
| 發明(設計)人: | 廖鋒;鄭敏;徐睿 | 申請(專利權)人: | 中國移動通信集團廣東有限公司;中國移動通信集團公司 |
| 主分類號: | G06F16/21 | 分類號: | G06F16/21;G06F16/27 |
| 代理公司: | 北京派特恩知識產權代理有限公司 11270 | 代理人: | 蔣雅潔;張穎玲 |
| 地址: | 510623 廣東省廣州市天*** | 國省代碼: | 廣東;44 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 一種 分布式 數據庫 擴展 方法 裝置 | ||
1.一種分布式數據庫的擴展方法,其特征在于,所述方法包括:
確定數據訪問服務中有數據主機接入時,根據擴展目標為所有數據主機設置新數據分布策略;
確定所述新數據分布策略所對應的數據啟動遷移后,將所述新數據分布策略狀態設置為遷移中;
將所述新數據分布策略所對應的數據以分表路由方式完成遷移后,以所述新數據分布策略替換舊數據分布策略。
2.根據權利要求1所述的分布式數據庫的擴展方法,其特征在于,所述將所述新數據分布策略所對應的數據以分表路由方式完成遷移,包括:
根據所述新數據分布策略和數據庫表命名規范,生成所述新數據分布策略對應的新表名;
在涉及的數據主機的對應數據庫中按照新表名創建表;
以多進程多線程的方式,將待遷移的數據存儲至所創建的表中。
3.根據權利要求2所述的分布式數據庫的擴展方法,其特征在于,所述將待遷移的數據存儲至所創建的表中,包括:
對各原有的表啟動游標,依次讀取所述游標對應的記錄;
按照所述原有的表的主鍵和所讀取記錄值刪除所述原有的表上的記錄,按照所述新數據分布策略對應的分布路由規則,將所讀取記錄值插入到對應的新創建的表中。
4.根據權利要求3所述的分布式數據庫的擴展方法,其特征在于,所述方法還包括:
將所讀取記錄值插入到對應的新表中失敗時,所述原有的表所在的節點和新創建的表所在的節點均進行事務回滾,回退至待遷移的數據存儲前的狀態;將所讀取記錄值插入到對應的新表中成功時,所述原有的表所在的節點和新創建的表所在的節點依次進行事務提交。
5.根據權利要求3或4所述的分布式數據庫的擴展方法,其特征在于,所述方法還包括:
遷移過程中接收到單條記錄查詢請求時,根據查詢主鍵的條件和所述新數據分布策略,在節點上按新表的表名進行查找,查找成功時返回查詢結果,查找失敗時,根據原數據分布策略,在對應節點上按原有表的表名查找,查找成功時返回查詢結果,查找失敗時返回空結果集。
6.根據權利要求3或4所述的分布式數據庫的擴展方法,其特征在于,所述方法還包括:
遷移過程中接收到單條記錄的更新或刪除請求時,確定所述單條記錄與遷移操作存在數據沖突時,若在數據遷移之前則將更新后的數據遷移至新表中或直接刪除原有表中的數據,若在數據遷移之后,則使用數據直接更新新表或刪除新表中的數據。
7.根據權利要求3或4所述的分布式數據庫的擴展方法,其特征在于,所述方法還包括:
遷移過程中接收到單條記錄插入請求時,按照新表的表名和所在的節點進行插入,插入成功時進行事務提交,插入失敗時返回失敗原因。
8.根據權利要求3或4所述的分布式數據庫的擴展方法,其特征在于,所述方法還包括:
遷移過程中接收到批量記錄的查詢請求時,分別按照原數據分布策略在原有表上進行查詢、按照所述新數據分布策略在新表上進行查詢,再查詢結果合并后統一返回。
9.根據權利要求3或4所述的分布式數據庫的擴展方法,其特征在于,所述方法還包括:
遷移過程中接收到數據批量更新或刪除請求時,暫停數據遷移處理,待當前正在遷移的數據事務均提交后,按照原數據分布策略和新數據分布策略分別對新表和原有表中的數據進行更新或刪除,更新或刪除失敗時,執行事務回滾,更新或刪除成功時,依次提交各個節點的事務,并繼續執行數據遷移。
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于中國移動通信集團廣東有限公司;中國移動通信集團公司,未經中國移動通信集團廣東有限公司;中國移動通信集團公司許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201610862130.5/1.html,轉載請聲明來源鉆瓜專利網。





