[發(fā)明專利]一種分布式數據庫異步讀取并處理批量數據的方法在審
| 申請?zhí)枺?/td> | 202011246356.5 | 申請日: | 2020-11-10 |
| 公開(公告)號: | CN112269835A | 公開(公告)日: | 2021-01-26 |
| 發(fā)明(設計)人: | 賈德星;周恒;孫思清 | 申請(專利權)人: | 浪潮云信息技術股份公司 |
| 主分類號: | G06F16/27 | 分類號: | G06F16/27;G06F16/242;G06F16/2457 |
| 代理公司: | 濟南信達專利事務所有限公司 37100 | 代理人: | 馮春連 |
| 地址: | 250100 山東省濟南市高*** | 國省代碼: | 山東;37 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 一種 分布式 數據庫 異步 讀取 處理 批量 數據 方法 | ||
本發(fā)明公開一種分布式數據庫異步讀取并處理批量數據的方法,涉及分布式數據庫技術領域。針對分布式數據庫中大批量數據查詢時,SQL模塊與存儲模塊程序無法并行執(zhí)行的缺陷,采用技術方案:基于GO層的SQL模塊和C層的存儲模塊,在GO層的SQL模塊創(chuàng)建共享內存隊列;通過共享內存隊列進行SQL模塊和存儲模塊之間的數據交互:當SQL模塊接收到客戶端的查詢請求時,通過CGO調用通知存儲模塊,存儲模塊的線程從RocksDB異步讀取批量數據并寫入共享內存隊列,同時,通過CGO調用通知SQL模塊的讀取線程,SQL模塊的線程異步讀取共享內存隊列的數據并處理,隨后返回處理結果給客戶端。本發(fā)明SQL模塊的線程和存儲模塊的線程異步并發(fā)執(zhí)行,可以實現RocksDB數據的異步讀取和批量處理。
技術領域
本發(fā)明涉及分布式數據庫技術領域,具體的說是一種分布式數據庫異步讀取并處理批量數據的方法。
背景技術
CockroachDB(CRDB)是一個基于Google Spanner思想構建的開源分布式數據庫系統,具有NoSQL對海量數據的存儲管理能力,又保持了傳統數據庫支持的ACID和SQL等特性。
CockroachDB采用Go語言編寫程序,內部集成的RocksDB存儲引擎采用的是C++語言開發(fā),兩者通過CGO框架進行混合編程,CGO是Go語言和C語言相互調用的機制,由于存在不同語言調用棧的切換,CGO的調用會帶來額外的性能損耗。
CockroachDB中數據查詢處理的流程如附圖1所示:SQL層數據讀取是通過CGO調用RocksDB查詢數據,并將數據從存儲引擎的C語言層全部內存復制到Go語言SQL層進行解析運算。但是,在大批量數據查詢時,需要逐批讀取數據并同步進行處理,而SQL模塊與存儲模塊程序無法并行執(zhí)行,另外,頻繁的CGO調用也嚴重影響數據讀取效率。
發(fā)明內容
本發(fā)明針對目前技術發(fā)展的需求和不足之處,提供一種分布式數據庫異步讀取并處理批量數據的方法,通過共享內存隊列進行SQL模塊和存儲模塊之間的數據交互,實現RocksDB數據的異步讀取和批量處理。
本發(fā)明的一種分布式數據庫異步讀取并處理批量數據的方法,解決上述技術問題采用的技術方案如下:
一種分布式數據庫異步讀取并處理批量數據的方法,其實現內容包括:
基于GO層的SQL模塊和C層的存儲模塊,在GO層的SQL模塊創(chuàng)建共享內存隊列;
通過共享內存隊列進行SQL模塊和存儲模塊之間的數據交互:當SQL模塊接收到客戶端的查詢請求時,通過CGO調用通知存儲模塊,存儲模塊的線程從RocksDB異步讀取批量數據并寫入共享內存隊列,同時,通過CGO調用通知SQL模塊的讀取線程,SQL模塊的線程異步讀取共享內存隊列的數據并處理,隨后返回處理結果給客戶端;
交互過程中,SQL模塊的線程和存儲模塊的線程異步并發(fā)執(zhí)行,實現RocksDB數據的異步讀取和批量處理。
優(yōu)選的,實現RocksDB數據的異步讀取和批量處理過程中,通過CGO調用,SQL模塊通知存儲模塊開始讀取數據,存儲模塊通知SQL模塊開始處理已讀取的數據。
進一步的,異步讀取并處理批量數據的具體實現流程為:
(1)在SQL模塊創(chuàng)建一個共享內存隊列;
(2)在SQL模塊接收到客戶端的查詢請求時,通過CGO調用通知存儲模塊讀取數據,通過CGO調用將共享內存隊列的地址傳送給存儲模塊,同時啟動SQL模塊的線程,異步等待讀取共享內存隊列的數據;
(3)存儲模塊接收到查詢請求,隨后啟動存儲模塊的線程,異步從RocksDB批量數據讀取;
(4)存儲模塊的線程每從RocksDB讀取一批數據,即寫入共享內存隊列;
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于浪潮云信息技術股份公司,未經浪潮云信息技術股份公司許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業(yè)授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/202011246356.5/2.html,轉載請聲明來源鉆瓜專利網。
- 上一篇:一種橋式抓斗卸船機雷達測距防撞系統
- 下一篇:二氯甲苯硝化物中間體的制備方法





