[發明專利]一種日志記錄方法和裝置有效
| 申請號: | 201710147943.0 | 申請日: | 2017-03-14 |
| 公開(公告)號: | CN106951488B | 公開(公告)日: | 2021-03-12 |
| 發明(設計)人: | 唐永將 | 申請(專利權)人: | 海爾優家智能科技(北京)有限公司 |
| 主分類號: | G06F16/18 | 分類號: | G06F16/18;G06F16/172 |
| 代理公司: | 北京名華博信知識產權代理有限公司 11453 | 代理人: | 李冬梅;苗源 |
| 地址: | 100086 北京市海淀區知春*** | 國省代碼: | 北京;11 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 一種 日志 記錄 方法 裝置 | ||
技術領域
本發明涉及日志管理領域,尤其涉及一種日志記錄方法和裝置。
背景技術
在日常開發中,日志的記錄是必不可少的。對同一個文件進行寫日志只能單線程的去寫,通常會使用簡單的lock(鎖)來保證當前時刻只有一個線程對同一個日志文件進行寫操作,從而保證日志輸出的正確性。但是這種方式的缺點也很明顯,就是系統在高并發的情況下,效率會非常的差。很容易導致系統性能瓶頸,降低系統處理能力。
即便使用多線程的處理方式來避免系統處理能力的下降,但是在多線程寫日志記錄的時候,由于日志記錄需要與磁盤I/O交互,導致單一線程占用鎖的時間會加長,從而導致大量線程的阻塞與等待,降低系統的處理能力。
發明內容
本發明旨在解決上面描述的問題。
根據本發明的第一方面,一種日志記錄方法,包括:
為日志文件寫入任務分配緩存隊列組,所述緩存隊列組包含至少兩個緩存隊列;
選擇所述緩存隊列組中的至少一個緩存隊列作為當前緩存隊列;
將所述當前緩存隊列中的日志數據寫入磁盤中的日志文件,同時所述緩存隊列組中除所述當前緩存隊列外的緩存隊列獲取待寫入的日志數據。
優選的,將所述當前緩存隊列中的日志數據寫入磁盤中的日志文件,同時所述緩存隊列組中除所述當前緩存隊列外的緩存隊列獲取待寫入的日志數據包括:
創建I/O線程,進行所述當前緩存隊列中的日志數據向日志文件中的寫入,在寫入期間對所述日志文件添加同步鎖,在寫入完成后解除該同步鎖;
創建邏輯線程,進行所述緩存隊列組中除所述當前緩存隊列外的緩存隊列對待寫入的日志數據的獲取。
優選的,該方法還包括:
在所述當前緩存隊列中的日志數據全部寫入完成后,從所述緩存隊列組中重新選擇當前緩存隊列。
優選的,該方法還包括:
所述邏輯線程在所述當前緩存隊列中的日志數據全部寫入完成后,重新選擇當前緩存隊列完成之前,對待寫入的日志數據的獲取添加同步鎖。
優選的,該方法還包括:
對于多個日志文件寫入任務,為每個日志文件寫入任務分別分配對應的緩存隊列組。
根據本發明的另一方面,一種日志記錄裝置,包括:
隊列生成模塊,用于為日志文件寫入任務分配緩存隊列組,所述緩存隊列組包含至少兩個緩存隊列;
控制模塊,用于選擇所述緩存隊列組中的至少一個緩存隊列作為當前緩存隊列;
讀寫管理模塊,用于將所述當前緩存隊列中的日志數據寫入磁盤中的日志文件,同時所述緩存隊列組中除所述當前緩存隊列外的緩存隊列獲取待寫入的日志數據。
優選的,所述讀寫管理模塊包括:
第一線程管理單元,用于創建I/O線程,進行所述當前緩存隊列中的日志數據向日志文件中的寫入,在寫入期間對所述日志文件添加同步鎖,在寫入完成后解除該同步鎖;
第二線程管理單元,用于創建邏輯線程,進行所述緩存隊列組中除所述當前緩存隊列外的緩存隊列對待寫入的日志數據的獲取。
優選的,所述控制模塊,還用于在所述當前緩存隊列中的日志數據全部寫入完成后,從所述緩存隊列組中重新選擇當前緩存隊列。
優選的,所述隊列生成模塊,還用于對于多個日志文件寫入任務,為每個日志文件寫入任務分別分配對應的緩存隊列組。
本發明提供了一種日志記錄方法與裝置,為日志文件寫入任務分配緩存隊列組,所述緩存隊列組包含至少兩個緩存隊列,選擇所述緩存隊列組中的至少一個緩存隊列作為當前緩存隊列,將所述當前緩存隊列中的日志數據寫入磁盤中的日志文件,同時所述緩存隊列組中除所述當前緩存隊列外的緩存隊列獲取待寫入的日志數據,以雙緩存隊列或多緩存隊列的形式進行分工,緩存數據與寫入數據同步進行,實現了高效并行的日志數據緩存寫入,解決了系統處理能力低的問題。
參照附圖來閱讀對于示例性實施例的以下描述,本發明的其他特性特征和優點將變得清晰。
附圖說明
并入到說明書中并且構成說明書的一部分的附圖示出了本發明的實施例,并且與描述一起用于解釋本發明的原理。在這些附圖中,類似的附圖標記用于表示類似的要素。下面描述中的附圖是本發明的一些實施例,而不是全部實施例。對于本領域普通技術人員來講,在不付出創造性勞動的前提下,可以根據這些附圖獲得其他的附圖。
圖1示例性地示出了本發明的實施例一提供的一種日志記錄方法流程;
圖2示例性地示出了本發明的實施例二提供的一種日志記錄裝置的結構。
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于海爾優家智能科技(北京)有限公司,未經海爾優家智能科技(北京)有限公司許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.17sss.com.cn/pat/books/201710147943.0/2.html,轉載請聲明來源鉆瓜專利網。
- 上一篇:一種附帶隱藏式開關的實驗臺
- 下一篇:一種化學實驗臺





