[發明專利]一種讀寫日志的處理方法及裝置有效
| 申請號: | 201810897307.4 | 申請日: | 2018-08-08 |
| 公開(公告)號: | CN109189726B | 公開(公告)日: | 2020-12-22 |
| 發明(設計)人: | 金恒展 | 申請(專利權)人: | 奇安信科技集團股份有限公司 |
| 主分類號: | G06F16/13 | 分類號: | G06F16/13;G06F16/18 |
| 代理公司: | 北京路浩知識產權代理有限公司 11002 | 代理人: | 王瑩;李相雨 |
| 地址: | 100088 北京市西城區*** | 國省代碼: | 北京;11 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 一種 讀寫 日志 處理 方法 裝置 | ||
1.一種讀寫日志的處理方法,其特征在于,包括:
根據待寫入日志所需進程的寫入性能參數,確定所述進程的進程級別;
根據所述進程級別,確定所述進程分享數據緩沖區的分享方式;
根據所述分享方式,分配給與所述進程級別對應進程相對應的目標數據緩沖區;以使所述進程根據所述目標數據緩沖區執行寫入日志的寫操作;
在完成所述寫操作之后,基于最小堆按時序讀取日志的算法讀取已寫入的日志;
所述寫入性能參數包括日志寫入速率;相應的,所述根據待寫入日志所需進程的寫入性能參數,確定所述進程的進程級別,包括:
若判斷獲知所述日志寫入速率大于等于第一速率閾值;則確定所述進程級別為第一進程級別;
若判斷獲知所述日志寫入速率小于所述第一速率閾值,且大于等于第二速率閾值;則確定所述進程級別為第二進程級別;
若判斷獲知所述日志寫入速率小于所述第二速率閾值;則確定所述進程級別為第三進程級別;
所述根據所述進程級別,確定所述進程分享數據緩沖區的分享方式,包括:
若判斷獲知所述進程級別為所述第一進程級別,則確定所述分享方式為獨享數據緩沖區;
若判斷獲知所述進程級別為所述第二進程級別或所述第三進程級別,則確定所述分享方式為共享數據緩沖區。
2.根據權利要求1所述的方法,其特征在于,所述根據所述分享方式,分配給與所述進程級別對應進程相對應的目標數據緩沖區,包括:
分配與所述第一進程級別對應第一進程相對應的獨享數據緩沖區;
分配與所述第二進程級別對應第二進程相對應的第一共享數據緩沖區;
分配與所述第三進程級別對應第三進程相對應的第二共享數據緩沖區。
3.根據權利要求2所述的方法,其特征在于,所述方法還包括:
獲取所述數據緩沖區的讀取周期;
根據所述第一進程對應的日志寫入速率和所述讀取周期,計算所述獨享數據緩沖區的大小;
確定所述第二進程和所述第三進程分別對應的共享進程數上限;
根據所述第二進程對應的共享進程數上限、所述第一速率閾值和所述讀取周期,計算所述第一共享數據緩沖區的大小;
根據所述第三進程對應的共享進程數上限、所述第二速率閾值和所述讀取周期,計算所述第二共享數據緩沖區的大小。
4.根據權利要求1至3任一所述的方法,其特征在于,所述基于最小堆按時序讀取日志的算法讀取已寫入的日志,包括:
基于最小堆按時序讀取日志的算法按照日志生成時間的先后順序從日志所屬的數據緩沖區中讀取所述日志;
獲取當前讀取日志條目的計數器的計數值L;
若判斷獲知所述L不大于預設的從所述數據緩沖區中讀取的最大日志條目RMax,調用最小堆是否為空的判斷函數H_Empty(T);其中,T表示最小堆,所述最小堆中的元素屬性包括所述日志、所述日志生成時間和所述日志所屬的數據緩沖區;
若判斷獲知所述H_Empty(T)返回不為空的標志位,則調用獲取最小堆堆頂元素的函數H_Top(T),記錄包含所述堆頂元素對應的日志,使所述計數值加一,并將已記錄數據緩沖區鏈表R更新為包含所述堆頂元素的數據緩沖區;
若判斷獲知更新后的R不包含工作數據緩沖區鏈表W,且若判斷獲知所述H_Top(T)的數據緩沖區不為空,則讀取所述H_Top(T)的數據緩沖區中的日志S,并通過調用最小堆堆頂元素的替換函數H_PopWithPush(T)用所述日志S替換所述堆頂元素,并重復執行所述判斷所述L是否大于所述RMax的步驟。
5.根據權利要求4所述的方法,其特征在于,所述方法還包括:
若判斷獲知更新后的R包含所述W,則將所述H_Top(T)的數據緩沖區從所述W中遷移到空閑數據緩沖區鏈表F中,通過調用所述堆頂元素的刪除函數H_Pop(T)刪除所述堆頂元素;
繼續重讀所述F中可讀取的數據緩沖區下一條日志,并將所述下一條日志添加到所述T中;
調用最小堆重建函數H_Adjust(T)重建所述T;
從所述F遷移可讀取的數據緩沖區到所述W,并使所述R為空;
若判斷獲知所述H_Empty(T)返回不為空的標志位,重復執行所述判斷所述L是否大于所述RMax的步驟。
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于奇安信科技集團股份有限公司,未經奇安信科技集團股份有限公司許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201810897307.4/1.html,轉載請聲明來源鉆瓜專利網。





