[發明專利]一種基于共享內存的本地數據庫查詢方法在審
| 申請號: | 202210614921.1 | 申請日: | 2022-06-01 |
| 公開(公告)號: | CN115203251A | 公開(公告)日: | 2022-10-18 |
| 發明(設計)人: | 梁波;賈德星;王永炎 | 申請(專利權)人: | 浪潮軟件集團有限公司 |
| 主分類號: | G06F16/2455 | 分類號: | G06F16/2455;G06F9/54 |
| 代理公司: | 濟南信達專利事務所有限公司 37100 | 代理人: | 孫園園 |
| 地址: | 250100 山東*** | 國省代碼: | 山東;37 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 一種 基于 共享 內存 本地 數據庫 查詢 方法 | ||
1.一種基于共享內存的本地數據庫查詢方法,其特征在于,該方法是基于共享內存的進程間通信機制,將在本地數據庫進程中創建的查詢迭代器對象共享到客戶端進程中使用,進而實現客戶端向數據庫進行數據查詢;具體如下:
S1、客戶端查詢任一時間段內的數據時,調用數據庫SDK的查詢API接口;
S2、客戶端中的數據庫SDK通過gRPC機制調用到數據庫進程的查詢函數;
S3、數據庫進程向共享內存管理模塊申請迭代器對象所需要的空間,并在申請的共享內存空間上創建共享內存迭代器;
S4、根據查詢的時間范圍,尋找相應的內存塊對象,將內存塊對象的引用技術加一;
S5、將內存塊對象指針存儲于迭代器的ref數組中,并通過定位算法找到查詢的第一條數據的位置;
S6、將迭代器的指針通過gRPC機制返回給客戶端的數據庫SDK;
S7、客戶端的數據庫SDK接收到指針地址后,通過強轉指令,將指針指向的空間轉換成客戶端進程中的迭代器對象;
S8、客戶端使用迭代器對象,訪問數據庫SDK中的數據;并調用value函數獲取當前記錄的數值,再調用next函數定位下一條記錄的位置,同時通過valid函數判斷是否查詢結束;
S9、客戶端查詢完畢后,調用結束接口,客戶端的數據庫SDK通過gRPC機制調用數據庫進程的結束查詢的函數;
S10、數據庫進程將迭代器的ref數組中的對象引用計數都減一,再刪除迭代器對象;
S11、返回成功。
2.根據權利要求1所述的基于共享內存的本地數據庫查詢方法,其特征在于,客戶端向數據庫進行數據查詢前,執行如下內容:
創建進程間共享內存:通過分配共享內存空間,將多個進程中共享內存設置成相同的起始地址,使得共享內存中的指針在進程間能夠直接使用,為進程間共享對象創造基礎;
數據庫進程管理共享內存:數據庫進程用于管理維護整個共享內存中的數據,客戶端進程用于讀取內存數據;數據庫進程中設置共享內存管理模塊,共享內存管理模塊用于提供申請空間和釋放空間的函數。
3.根據權利要求2所述的基于共享內存的本地數據庫查詢方法,其特征在于,創建進程間共享內存具體如下:
在數據庫進程和客戶端進程啟動時,創建加載共享內存,并且設置相同的共享內存的起始地址;
將客戶端進程的共享內存映射區的起始地址與數據庫進程的共享內存映射區的起始地址配置成相同的起始地址;
設置完成后,在共享內存中創建指向共享內存中存儲的任一變量的指針,該指針在不同進程中都能夠正確解析并能讀取出指針指向的變量。
4.根據權利要求1或2所述的基于共享內存的本地數據庫查詢方法,其特征在于,所述共享內存管理模塊還用于管理共享內存分配出的一個整塊連續空間,并提供共享內存連續區域中申請和釋放任意內存大小空間的接口。
5.根據權利要求4所述的基于共享內存的本地數據庫查詢方法,其特征在于,所述共享內存管理模塊的內存管理方式采用定長內存管理。
6.根據權利要求5所述的基于共享內存的本地數據庫查詢方法,其特征在于,所述共享內存管理模塊還具有如下功能:
①、共享內存管理模塊初始化:共享內存管理模塊將整個共享內存空間按照大小劃分成固定大小的內存塊,將內存塊首地址放入可使用隊列中;
②、向共享內存管理模塊申請空間:共享內存管理模塊提供內存申請分配接口Allocate8K,調用接口Allocate8K,共享內存管理模塊取出可使用隊列頭部內存塊的首地址,返出去;
③、釋放共享內存管理模塊申請的空間:共享內存管理模塊提供內存釋放接口Release,共享內存管理模塊將傳入的內存塊首地址放入可使用隊列末尾。
7.根據權利要求6所述的基于共享內存的本地數據庫查詢方法,其特征在于,所述共享內存空間用于共享數據和共享對象;
數據庫進程將查詢需要的數據以及對象存儲在共享內存空間中,共享內存空間按照正常內存的使用方式創建相互關聯的類對象以及存儲數據的數組空間。
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于浪潮軟件集團有限公司,未經浪潮軟件集團有限公司許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/202210614921.1/1.html,轉載請聲明來源鉆瓜專利網。
- 上一篇:HPV疫苗
- 下一篇:一種激光焊機的焊接維保用清潔裝置





