[發明專利]一種基于共享內存池的通用數據存儲方法在審
| 申請號: | 202010051558.8 | 申請日: | 2020-01-17 |
| 公開(公告)號: | CN113138859A | 公開(公告)日: | 2021-07-20 |
| 發明(設計)人: | 杜潛;秦樹睿;李美貴;趙興文 | 申請(專利權)人: | 北京中軟萬維網絡技術有限公司 |
| 主分類號: | G06F9/54 | 分類號: | G06F9/54;G06F3/06;G06F16/22 |
| 代理公司: | 北京君尚知識產權代理有限公司 11200 | 代理人: | 司立彬 |
| 地址: | 102200*** | 國省代碼: | 北京;11 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 一種 基于 共享 內存 通用 數據 存儲 方法 | ||
本發明公開了一種基于共享內存池的通用數據存儲方法,其步驟包括:1)為目標應用申請一塊共享內存,根據該目標應用要存儲內容類別的不同將該共享內存分為m個內存塊;每一個內存塊的頭部存儲該內存塊的管理者結構,內存塊剩余空間分為n個內存單元,在每一內存塊中構建一個共享內存池;2)在每一內存塊里構建兩個雙向循環鏈表,即空閑鏈表和繁忙鏈表;3)當該目標應用每次存儲數據時,調用一次存儲接口;在存儲接口內根據待存儲數據大小從該共享內存中進行若干次內存單元申請直至本次數據存儲完成,并將本次申請到的內存單元形成單鏈表,將單鏈表中的節點通過子索引串聯起來,單鏈表頭節點由繁忙鏈表管理。本發明可以減少數據存儲空間浪費。
技術領域
本發明涉及計算機內存管理和數據通信領域,具體涉及一種基于共享內存池的通用數據存儲方法。
背景技術
隨著科技日新月異地進步和計算機技術的發展,信息化已經融入到現代社會的方方面面,從科研到工業,從金融到日常生活都與計算機密切相關。伴隨著網絡帶寬的增加和智能設備的普及,計算機應用場景日趨豐富,實時交互業務逐漸增多,各種業務對服務器端的可靠性和處理速度提出了越來越高的要求。無論是單機應用還是集群部署,服務器端如何保證高可用,低延遲得到了開發者的廣泛關注。因此,優化服務端軟件性能,充分挖掘硬件潛能始終是后臺開發者要面對的一個重要問題。
在服務端程序中,數據存儲和檢索是計算機應用的重要方面,也是性能優化的一個關鍵點。系統默認的申請釋放內存方式,應對最普遍最復雜的內存使用場景。每次顯示調用malloc/free對應著若干底層系統調用(參考:吳捷,陶志榮,一種自適應變長塊內存池SVBSMP,計算機應用,2008,第28卷)。每次內存請求通常隱含著互斥區保護,空閑鏈表查找,內存塊匹配,空閑區分割或鄰近空閑區合并,鏈表更新等一系列復雜的算法和操作。因此,頻繁地在堆上分配和釋放內存會導致性能損失,并且會使系統中出現大量的內存碎片,降低內存的利用率(參考:馮宏華,徐瑩,程遠,汪磊等,C++應用程序性能優化,北京:電子工業出版社,2010)。對于特定的應用,程序根據自身特點構建內存池是解決系統頻繁分配釋放內存的最直接方案。應用程序先申請一塊較大內存,然后由程序控制在此內存池空間中申請釋放內存,這可以避免默認方法產生的一些額外操作,從而得到更高的時間效率和空間效率。
經典內存池mempool把內存區分成大小相同的小塊(unit),將空閑塊形成單鏈表,每次申請時從空閑鏈取下結點,釋放時掛回到空閑鏈上,若當前內存區(block)空間不足,再申請新內存區(block)加入鏈表。這種方式可以獲得極高的時間效率,其內存分配過程多數情況下復雜度為O(1),開銷最多時是在開辟新內存區(block)時初始化和加入原有block鏈的過程。此種方法比較適合小的空間請求。
現在有數量龐大web服務器運行著源自Apache的APR_pool內存管理方法。APR_pool按對象的不同生命周期劃分多級內存池,支持變長內存塊索引。這種內存管理以業務處理的層次性為設計基礎,不同層次的池具有不同生命周期。對于單個對象不需要考慮申請和釋放成對,通過銷毀池來銷毀一批對象,釋放的開銷相對較低,但釋放后的空間直接歸還到系統而不能回歸到池里,因此這種結構的內管理也存一些弊端且結構復雜。
還有一些內存管理思路,如自適應變長塊內存池SVBSMP(參考:吳捷,陶志榮,一種自適應變長塊內存池SVBSMP,計算機應用,2008,第28卷)。SVBSMP按內存單元遞增速率不同管理了兩個鏈表,分別管理0-512B和512B-16KB兩種規則變化的內存塊,針對每次請求,從目標鏈中找到符合要求的塊返回給用戶??臻e鏈不足時,繼續申請新內存加入管理。當用戶單次申請的空間大于512B時,分配和釋放工作直接交給系統處理,回收空間也不納入SVBSMP內存管理。這種方式比較適合請求的數據塊空間變化較大,大小不同的空間請求接近均勻分布的情況。在應對大量尺寸集中的空間申請時碎片線性增加,內存利用率下降。
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于北京中軟萬維網絡技術有限公司,未經北京中軟萬維網絡技術有限公司許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/202010051558.8/2.html,轉載請聲明來源鉆瓜專利網。
- 上一篇:一種消息處理方法、裝置及電子設備
- 下一篇:應用程序控制方法、裝置及存儲介質





