[發明專利]數據讀寫分離機制的實現方法和裝置有效
| 申請號: | 201110457793.6 | 申請日: | 2011-12-30 |
| 公開(公告)號: | CN102591964A | 公開(公告)日: | 2012-07-18 |
| 發明(設計)人: | 吳炳錫;李寧;張雁飛 | 申請(專利權)人: | 北京新媒傳信科技有限公司 |
| 主分類號: | G06F17/30 | 分類號: | G06F17/30 |
| 代理公司: | 北京市隆安律師事務所 11323 | 代理人: | 權鮮枝 |
| 地址: | 100089 北京市海淀區萬*** | 國省代碼: | 北京;11 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 數據 讀寫 分離 機制 實現 方法 裝置 | ||
技術領域
本發明涉及領域數據處理技術領域,特別涉及一種數據讀寫分離機制的實現方法和裝置。
背景技術
在互聯網數據庫解決方案中,關系型數據庫MySQL是一種較常用的數據庫,MySQL在數據訪問并發量較高的情況下一般會采用讀寫分離的技術。
現有的讀寫分離方案是開發兩種角色的數據庫連接串,一種角色的連接串作為主庫(master),另一種角色的連接串作為從庫(slave),一個主庫可以對應于多個從庫。主庫可以進行寫操作,也可以擔任讀操作,從庫只能擔任讀操作。若需要進行數據的讀操作或寫操作,在請求時,對于寫操作,一定是向主庫發送請求,對于讀操作,可以在Slave角色的從庫中分配一個連接,進行讀的操作。
現有的數據讀寫分離方案至少存在如下缺陷:
現有的讀寫分離方案只能做到要么在主庫上執行查詢,要么在從庫上執行查詢,查詢方式不夠靈活;且當從庫出現問題時,如從庫相對于主庫的數據同步延時較多的情況下,現有方案仍采用直接由從庫中讀取數據的方式,從而導致無法在從庫中讀取出數據,或者,所讀取到的數據與所需的數據不一致,讀取出的是不可信任的數據(臟數據)的問題。
發明內容
本發明提供了一種數據讀寫分離機制的實現方法和裝置,以解決現有方案查詢方式不夠靈活,以及在從庫中讀取數據時讀不到數據或讀到臟數據的問題。
為達到上述目的,本發明實施例采用了如下技術方案:
本發明實施例提供了一種數據讀寫分離機制的實現方法,在讀操作的結構化查詢語言SQL訪問請求中設置提示HINT信息,所述HINT信息指示讀寫分離策略,所述方法包括:
對接收到的SQL訪問請求進行解析,判斷當前的操作類型;
若當前的操作類型為寫操作,建立與主數據庫的連接,向主數據庫中寫入數據;
若當前的操作類型為讀操作,根據所述SQL訪問請求中的HINT信息獲取當前的讀寫分離策略,并獲取從數據庫相對于主數據庫的同步延時信息,以及,根據當前的讀寫分離策略和同步延時信息執行讀操作。
本發明實施例還提供了一種數據讀寫分離機制的實現裝置,所述裝置包括:
設置單元,用于在讀操作的結構化查詢語言SQL訪問請求中設置提示HINT信息,所述HINT信息指示讀寫分離策略;
解析判斷單元,用于對接收到的SQL訪問請求進行解析,判斷當前的操作類型;
寫操作單元,用于在當前的操作類型為寫操作時,建立與主數據庫的連接,向主數據庫中寫入數據;
讀操作單元,用于在當前的操作類型為讀操作時,根據所述SQL訪問請求中的HINT信息獲取當前的讀寫分離策略,并獲取從數據庫相對于主數據庫的同步延時信息,以及,根據當前的讀寫分離策略和同步延時信息執行讀操作。
本發明實施例的有益效果是:
本發明實施例提供的數據讀寫分離機制在應用和數據庫之間引入一個代理層,設置讀寫分離策略,并利用讀寫分離策略確定當前所執行讀操作的具體方式,大大提高了數據查詢方式的靈活性;且由于本發明實施例還基于從庫的同步延時信息執行讀操作,能夠避免從庫出現同步延時讀不出數據或讀取出臟數據的現象的發生,讀取到所需的可信任數據。
本發明實施例采用HINT的方式將讀寫分離策略設置在SQL語句中,不但操作簡單有效,且能夠避免對原有SQL語句的大量修改,較好地兼容現有的系統資源,提高了資源的利用率。
附圖說明
圖1為本發明實施例一提供的一種數據讀寫分離機制的實現方法流程圖;
圖2為本發明實施例二提供的一種數據讀寫分離機制的實現裝置結構示意圖;
圖3為在應用和MySQL數據庫之間所設置的一個代理層邏輯結構示意圖。
具體實施方式
為使本發明的目的、技術方案和優點更加清楚,下面將結合附圖對本發明實施方式作進一步地詳細描述。
參見圖1,為本發明實施例一提供的一種數據讀寫分離機制的實現方法流程圖,具體包括:
11:接收結構化查詢語言(Structured?Query?Language,SQL)訪問請求。
12:判斷該SQL訪問請求對應的當前的操作類型。
對SQL訪問請求進行解析,判斷當前的操作類型是寫操作還是讀操作。
13:若當前的操作類型為寫操作,建立與主數據庫(下文簡稱為主庫)的連接,向主庫中寫入數據。
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于北京新媒傳信科技有限公司,未經北京新媒傳信科技有限公司許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201110457793.6/2.html,轉載請聲明來源鉆瓜專利網。
- 數據顯示系統、數據中繼設備、數據中繼方法、數據系統、接收設備和數據讀取方法
- 數據記錄方法、數據記錄裝置、數據記錄媒體、數據重播方法和數據重播裝置
- 數據發送方法、數據發送系統、數據發送裝置以及數據結構
- 數據顯示系統、數據中繼設備、數據中繼方法及數據系統
- 數據嵌入裝置、數據嵌入方法、數據提取裝置及數據提取方法
- 數據管理裝置、數據編輯裝置、數據閱覽裝置、數據管理方法、數據編輯方法以及數據閱覽方法
- 數據發送和數據接收設備、數據發送和數據接收方法
- 數據發送裝置、數據接收裝置、數據收發系統、數據發送方法、數據接收方法和數據收發方法
- 數據發送方法、數據再現方法、數據發送裝置及數據再現裝置
- 數據發送方法、數據再現方法、數據發送裝置及數據再現裝置





