[發(fā)明專利]用于數(shù)據(jù)流式計(jì)算的內(nèi)存管理系統(tǒng)及其方法有效
| 申請(qǐng)?zhí)枺?/td> | 201710311937.4 | 申請(qǐng)日: | 2017-05-05 |
| 公開(公告)號(hào): | CN107133103B | 公開(公告)日: | 2019-01-01 |
| 發(fā)明(設(shè)計(jì))人: | 戴文淵;楊強(qiáng);陳雨強(qiáng);焦英翔;石光川;涂威威 | 申請(qǐng)(專利權(quán))人: | 第四范式(北京)技術(shù)有限公司 |
| 主分類號(hào): | G06F9/50 | 分類號(hào): | G06F9/50;G06F9/52;G06F12/02 |
| 代理公司: | 北京銘碩知識(shí)產(chǎn)權(quán)代理有限公司 11286 | 代理人: | 張?jiān)浦?曾世驍 |
| 地址: | 100085 北京市海淀區(qū)上*** | 國省代碼: | 北京;11 |
| 權(quán)利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關(guān)鍵詞: | 用于 數(shù)據(jù)流 計(jì)算 內(nèi)存 管理 系統(tǒng) 及其 方法 | ||
提供了一種用于數(shù)據(jù)流式計(jì)算的內(nèi)存管理系統(tǒng)及其方法。所述內(nèi)存管理系統(tǒng)包括:內(nèi)存回收裝置,用于從數(shù)據(jù)流式計(jì)算的結(jié)尾回收原本應(yīng)被釋放給操作系統(tǒng)的內(nèi)存;內(nèi)存托管裝置,用于托管由內(nèi)存回收裝置回收的內(nèi)存;以及內(nèi)存分配裝置,用于響應(yīng)于來自數(shù)據(jù)流式計(jì)算的開端的申請(qǐng),向數(shù)據(jù)流式計(jì)算的開端分配由內(nèi)存托管裝置托管的內(nèi)存。通過所述系統(tǒng)及方法,不僅克服了實(shí)際向操作系統(tǒng)申請(qǐng)內(nèi)存的效率問題,而且保留了數(shù)據(jù)流式計(jì)算部分的相對(duì)獨(dú)立性。
技術(shù)領(lǐng)域
本發(fā)明的示例性實(shí)施例總體說來涉及數(shù)據(jù)計(jì)算領(lǐng)域,更具體地說,涉及一種用于數(shù)據(jù)流式計(jì)算的內(nèi)存管理系統(tǒng)以及利用所述內(nèi)存管理系統(tǒng)來管理內(nèi)存的方法。
背景技術(shù)
隨著數(shù)據(jù)量增多,數(shù)據(jù)流式計(jì)算被廣泛應(yīng)用到各個(gè)計(jì)算系統(tǒng)當(dāng)中。一般來說,處理非常大規(guī)模數(shù)據(jù)的算法并不會(huì)涉及很復(fù)雜的計(jì)算操作,不然數(shù)據(jù)量乘計(jì)算量之后是一個(gè)無法在常規(guī)時(shí)間內(nèi)得到結(jié)果的任務(wù)。當(dāng)計(jì)算操作并不太復(fù)雜時(shí),數(shù)據(jù)的讀寫、網(wǎng)絡(luò)延遲等便會(huì)成為數(shù)據(jù)流式計(jì)算的效率瓶頸。
圖1示出現(xiàn)有技術(shù)中由操作系統(tǒng)在數(shù)據(jù)流式計(jì)算過程中管理內(nèi)存分配的示例。具體說來,圖1所示的系統(tǒng)包括數(shù)據(jù)流式計(jì)算裝置200和系統(tǒng)內(nèi)存管理裝置300。這里,數(shù)據(jù)流式計(jì)算裝置200用于執(zhí)行數(shù)據(jù)流式計(jì)算,而系統(tǒng)內(nèi)存管理裝置300可由操作系統(tǒng)中負(fù)責(zé)內(nèi)存管理的部分來充當(dāng)。
具體說來,數(shù)據(jù)流式計(jì)算裝置200需要在數(shù)據(jù)流式計(jì)算的開端向系統(tǒng)內(nèi)存裝置300申請(qǐng)內(nèi)存分配,并在數(shù)據(jù)流式計(jì)算的結(jié)尾釋放掉相應(yīng)的內(nèi)存。
然而,隨著各種耗時(shí)被不斷的優(yōu)化,數(shù)據(jù)的讀寫當(dāng)中內(nèi)存申請(qǐng)釋放的時(shí)間占比變得越來越大,逐漸成為數(shù)據(jù)流式計(jì)算的新效率瓶頸。這個(gè)瓶頸出現(xiàn)的原因是在數(shù)據(jù)流式計(jì)算裝置200以多線程來執(zhí)行計(jì)算的情況下,系統(tǒng)內(nèi)存管理裝置300仍按照單線程來管理系統(tǒng)內(nèi)存的申請(qǐng)和釋放,而當(dāng)在多線程下頻繁地申請(qǐng)釋放內(nèi)存時(shí),管理系統(tǒng)內(nèi)存的互斥鎖便成為了很大的效率瓶頸。
目前出現(xiàn)了一些技術(shù)方案來解決多線程環(huán)境下的內(nèi)存申請(qǐng)和釋放問題,例如,公開號(hào)為CN104881324A的中國專利申請(qǐng)《一種多線程下的內(nèi)存管理方法》通過實(shí)現(xiàn)一種多線程內(nèi)存池來避免訪問系統(tǒng)內(nèi)存的單一互斥鎖,通過并行的方法實(shí)現(xiàn)加速,該方案需要考慮的應(yīng)用情況較多,實(shí)現(xiàn)邏輯復(fù)雜,特別是涉及底層的系統(tǒng)邏輯很難保證正確性和通用性。此外,在數(shù)據(jù)流式計(jì)算背景下,即便使用了多線程內(nèi)存池,在計(jì)算框架申請(qǐng)和釋放內(nèi)存時(shí),內(nèi)存池還是做了實(shí)際的內(nèi)存申請(qǐng)和釋放操作,效率方面仍有不足。
發(fā)明內(nèi)容
本發(fā)明的示例性實(shí)施例旨在克服現(xiàn)有流式計(jì)算中內(nèi)存分配的效率瓶頸問題。
根據(jù)本發(fā)明的示例性實(shí)施例,提供一種用于數(shù)據(jù)流式計(jì)算的內(nèi)存管理系統(tǒng),包括:內(nèi)存回收裝置,用于從數(shù)據(jù)流式計(jì)算的結(jié)尾回收原本應(yīng)被釋放給操作系統(tǒng)的內(nèi)存;內(nèi)存托管裝置,用于托管由內(nèi)存回收裝置回收的內(nèi)存;以及內(nèi)存分配裝置,用于響應(yīng)于來自數(shù)據(jù)流式計(jì)算的開端的申請(qǐng),向數(shù)據(jù)流式計(jì)算的開端分配由內(nèi)存托管裝置托管的內(nèi)存。
可選地,在所述內(nèi)存管理系統(tǒng)中,內(nèi)存分配裝置在內(nèi)存托管裝置托管的內(nèi)存之中不存在適于分配的可用內(nèi)存時(shí),向數(shù)據(jù)流式計(jì)算的開端分配從操作系統(tǒng)申請(qǐng)到的內(nèi)存或向數(shù)據(jù)流式計(jì)算的開端發(fā)送用于指示其直接向操作系統(tǒng)申請(qǐng)內(nèi)存的指示信號(hào)。
可選地,在所述內(nèi)存管理系統(tǒng)中,內(nèi)存回收裝置通過回收在數(shù)據(jù)流式計(jì)算的結(jié)尾得到的對(duì)象來回收內(nèi)存。
可選地,在所述內(nèi)存管理系統(tǒng)中,內(nèi)存托管裝置包括一個(gè)或多個(gè)內(nèi)存池,其中,每個(gè)內(nèi)存池包含一個(gè)或多個(gè)由針對(duì)相同類型的對(duì)象的容器組成的容器隊(duì)列。
可選地,在所述內(nèi)存管理系統(tǒng)中,每個(gè)容器具有一個(gè)互斥鎖。
可選地,在所述內(nèi)存管理系統(tǒng)中,每個(gè)內(nèi)存池包括兩個(gè)容器隊(duì)列,其中,所述兩個(gè)容器隊(duì)列之中的一個(gè)容器隊(duì)列用于回收對(duì)象,并且,所述兩個(gè)容器隊(duì)列之中的另一容器隊(duì)列用于分配對(duì)象。
可選地,在所述內(nèi)存管理系統(tǒng)中,每個(gè)容器隊(duì)列具有一個(gè)互斥鎖。
該專利技術(shù)資料僅供研究查看技術(shù)是否侵權(quán)等信息,商用須獲得專利權(quán)人授權(quán)。該專利全部權(quán)利屬于第四范式(北京)技術(shù)有限公司,未經(jīng)第四范式(北京)技術(shù)有限公司許可,擅自商用是侵權(quán)行為。如果您想購買此專利、獲得商業(yè)授權(quán)和技術(shù)合作,請(qǐng)聯(lián)系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201710311937.4/2.html,轉(zhuǎn)載請(qǐng)聲明來源鉆瓜專利網(wǎng)。
- 編碼裝置,編碼方法,程序和記錄媒體
- 網(wǎng)絡(luò)數(shù)據(jù)流識(shí)別系統(tǒng)及方法
- 一種數(shù)據(jù)流調(diào)度的方法、設(shè)備和系統(tǒng)
- 一種確定待清洗數(shù)據(jù)流的方法及裝置
- 用于分析儀器化軟件的數(shù)據(jù)流處理語言
- 用于數(shù)據(jù)流系統(tǒng)的數(shù)據(jù)流處理方法及裝置
- 數(shù)據(jù)流調(diào)度系統(tǒng)以及數(shù)據(jù)流調(diào)度方法
- 采用向量處理的同時(shí)分割
- 汽車數(shù)據(jù)流的監(jiān)控方法、系統(tǒng)及可讀存儲(chǔ)介質(zhì)
- 一種數(shù)據(jù)流類型識(shí)別模型更新方法及相關(guān)設(shè)備





