[發明專利]內存管理方法、裝置、設備及存儲介質有效
| 申請號: | 202110845682.6 | 申請日: | 2021-07-26 |
| 公開(公告)號: | CN113296962B | 公開(公告)日: | 2022-01-11 |
| 發明(設計)人: | 謝成亮 | 申請(專利權)人: | 阿里云計算有限公司 |
| 主分類號: | G06F9/50 | 分類號: | G06F9/50 |
| 代理公司: | 北京太合九思知識產權代理有限公司 11610 | 代理人: | 劉戈;孫明子 |
| 地址: | 310012 浙江省*** | 國省代碼: | 浙江;33 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 內存 管理 方法 裝置 設備 存儲 介質 | ||
1.一種內存管理方法,包括:
利用中央內存管理器獲取數據處理請求,建立所述數據處理請求所對應的至少一個待寫出線程,確定所述至少一個待寫出線程各自對應的本地內存管理器;
在本地內存管理器執行所述待寫出線程時,確定所述待寫出線程所對應的內存開銷信息,并將所述待寫出線程所對應的內存開銷信息發送至中央內存管理器;
利用中央內存管理器基于所有待寫出線程所對應的內存開銷信息進行內存管理操作;
所述方法還包括:
利用本地內存管理器獲取所述待寫出線程所對應的數據處理狀態,在所述數據處理狀態為處理完畢時,則生成全局內存查詢請求,并將所述全局內存查詢請求發送至中央內存管理器;
利用中央內存管理器基于所述全局內存查詢請求和所有待寫出線程所對應的內存開銷信息,確定全局內存信息,并基于所述全局內存信息進行內存管理操作;其中,基于所述全局內存信息進行內存管理操作包括:基于所述全局開銷信息控制至少一部分的待寫出線程執行數據刷盤操作。
2.根據權利要求1所述的方法,在本地內存管理器執行所述待寫出線程時,確定所述待寫出線程所對應的內存開銷信息,包括:
在利用所述本地內存管理器執行所述待寫出線程時,記錄所述待寫出線程所對應的數據寫出行數;
在所述數據寫出行數滿足設定閾值時,確定所述待寫出線程所對應的內存開銷信息。
3.根據權利要求2所述的方法,所述待寫出線程包括parquet寫出線程;確定所述待寫出線程所對應的內存開銷信息,包括:
利用反射機制調用parquet算法內包括的內存計算接口;
基于所述內存計算接口,確定所述待寫出線程所對應的內存開銷信息。
4.根據權利要求1所述的方法,建立所述數據處理請求所對應的至少一個待寫出線程,包括:
確定所述數據處理請求所對應的待處理數據;
對所述待處理數據進行批次劃分操作,獲得至少一批子數據;
基于所述至少一批子數據,建立至少一個待寫出線程。
5.根據權利要求1所述的方法,基于所述全局內存信息進行內存管理操作,包括:
在所述全局內存信息大于或等于預設內存閾值時,則獲取所有待寫出線程各自對應的全局內存占比信息;
基于所述全局內存占比信息,在所有待寫出線程中確定設定數量的目標處理線程,所有目標處理線程所對應的全局內存占比信息大于或等于預設閾值;
控制所述目標處理線程執行數據刷盤操作。
6.根據權利要求5所述的方法,控制所述目標處理線程執行數據刷盤操作,包括:
生成與所述目標處理線程相對應的線程列表,所述線程列表中包括所有目標處理線程所對應的目標文件句柄描述;
將所述線程列表發送至所有的本地內存管理器,以使所述本地內存管理器基于所述線程列表控制所述目標處理線程執行數據刷盤操作。
7.根據權利要求6所述的方法,基于所述線程列表控制所述目標處理線程執行數據刷盤操作,包括:
獲取本地待寫出線程所對應的文件句柄描述;
在所述線程列表中包括與所述文件句柄描述相匹配的目標文件句柄描述時,則控制與所述目標文件句柄描述相對應的目標處理線程執行數據刷盤操作;
在所述線程列表中不包括與所述文件句柄描述相匹配的目標文件句柄描述時,則忽略所述線程列表。
8.根據權利要求1-7中任意一項所述的方法,建立所述數據處理請求相對應的至少一個待寫出線程,包括:
獲取所述數據處理請求所對應的數據寫入方式;
在所述數據寫入方式為流式寫入方式時,則獲取所述數據處理請求相對應的臨時文件;
在所述臨時文件的數據量滿足文件切換閾值時,則將所述臨時文件轉換為parquet文件;
基于所述parquet文件生成所述數據處理請求相對應的至少一個待寫出線程。
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于阿里云計算有限公司,未經阿里云計算有限公司許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/202110845682.6/1.html,轉載請聲明來源鉆瓜專利網。





