CN108829342A - 一种日志存储方法、系统及存储装置 - Google Patents

一种日志存储方法、系统及存储装置 Download PDF

Info

Publication number
CN108829342A
CN108829342A CN201810435046.4A CN201810435046A CN108829342A CN 108829342 A CN108829342 A CN 108829342A CN 201810435046 A CN201810435046 A CN 201810435046A CN 108829342 A CN108829342 A CN 108829342A
Authority
CN
China
Prior art keywords
log
storage
buffer area
subscript
log buffer
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN201810435046.4A
Other languages
English (en)
Other versions
CN108829342B (zh
Inventor
雷鹏
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Hisense Broadband Multimedia Technology Co Ltd
Original Assignee
Hisense Broadband Multimedia Technology Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Hisense Broadband Multimedia Technology Co Ltd filed Critical Hisense Broadband Multimedia Technology Co Ltd
Priority to CN201810435046.4A priority Critical patent/CN108829342B/zh
Publication of CN108829342A publication Critical patent/CN108829342A/zh
Application granted granted Critical
Publication of CN108829342B publication Critical patent/CN108829342B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • G06F3/0679Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/0238Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
    • G06F12/0246Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0614Improving the reliability of storage systems
    • G06F3/0616Improving the reliability of storage systems in relation to life time, e.g. increasing Mean Time Between Failures [MTBF]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0629Configuration or reconfiguration of storage systems
    • G06F3/0635Configuration or reconfiguration of storage systems by changing the path, e.g. traffic rerouting, path reconfiguration
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0656Data buffering arrangements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/72Details relating to flash memory management
    • G06F2212/7211Wear leveling

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Debugging And Monitoring (AREA)

Abstract

本申请实施例公开了一种日志存储方法、系统及存储装置,包括:获取环形存储队列的第一下标;确定第一下标对应的第一存储偏移地址;如果日志缓存区内的当前存储容量等于日志缓存区的存储上限值,将日志缓存区内的系统日志存储到环形存储队列中由第一存储偏移地址所指示的存储块内,清空日志缓存区,基于第一下标确定第二下标及其所对应的第二存储偏移地址。当日志缓存区内的系统日志保存到第一存储偏移地址后,获取下一时刻日志缓存区达到存储上限值时用于保存系统日志的存储块对应的第二偏移地址,保证了flash写入的均衡,不会对flash中的同一个存储块多次擦除写入,提升了存储块的寿命。

Description

一种日志存储方法、系统及存储装置
技术领域
本申请涉及嵌入式系统技术领域,尤其涉及一种日志存储方法、系统及存储装置。
背景技术
嵌入式系统日志是记录嵌入式系统中硬件、软件和系统问题的信息,同时还可以监视嵌入式系统中发生的事件。用户可以通过系统日志来检查嵌入式系统错误发生的原因,或者寻找系统受到攻击时攻击者留下的痕迹。尤其针对一些BUG不易再现的嵌入式设备的跟踪和定位,提供强有力的依据。
现有的嵌入式系统日志保存一般依赖现有的文件系统分区,如嵌入式系统中的jsff2分区。由于嵌入式系统的日志保存只是嵌入式系统运行工作的一部分,为了保证嵌入式系统正常工作的运行,还需要增加额外系统资源的占用,因此在整个系统运行中需要做到均衡写入,又增加了许多不必要的写入。为了保证写入的均衡,通常的方案是用底层驱动在flash空间中开辟空间存放系统日志。
但是当总日志存储空间超出上限,则删除覆盖旧的系统日志,删除覆盖一般以存储块的形式操作,但是系统日志中的数据块在flash中的起始地址往往不是存储块的物理写入地址,这样可能需要对存储块多次擦除写入,进而使得存储块使用寿命缩短。
发明内容
本申请提供了一种日志存储方法、系统及存储装置,以解决传统的嵌入式系统日志存储方法由于存储块擦除次数多导致存储块寿命缩短的问题。
为了解决上述技术问题,本申请实施例公开了如下技术方案:
第一方面,本申请实施例提供了一种日志存储方法,包括:一种日志存储方法包括:获取环形存储队列的第一下标;根据第一下标确定第一下标对应的第一存储偏移地址;判断日志缓存区内的当前存储容量是否等于日志缓存区的存储上限值;若是,将存储于日志缓存区内的系统日志存储到环形存储队列中由第一存储偏移地址所指示的存储块内,清空日志缓存区,基于第一下标确定第二下标及其所对应的第二存储偏移地址。通过获取第一下标,确定环形存储队列的存储起始端,当日志缓存区内的当前存储容量等于日志缓存区的存储上限值,将日志缓存区存储的系统日志保存到第一存储偏移地址后清空,然后获取下一时刻日志缓存区达到存储上限值时用于保存系统日志的存储块对应的第二偏移地址,保证了flash写入的均衡,不会对flash中的同一个存储块多次擦除写入,提升了存储块的寿命。
第二方面,本申请实施例提供了一种日志存储系统,包括:获取模块,用于获取环形存储队列的第一下标;确定模块,用于根据第一下标确定第一下标对应的第一存储偏移地址;判断模块,用于判断日志缓存区内的当前存储容量是否等于日志缓存区的存储上限值;处理模块,用于若日志缓存区内的当前存储容量等于日志缓存区的存储上限值,将存储于日志缓存区内的系统日志存储到环形存储队列中由第一存储偏移地址所指示的存储块内,清空日志缓存区,基于第一下标确定第二下标及其所对应的第二存储偏移地址。通过获取模块获取第一下标,确定环形存储队列的存储起始端,当日志缓存区内的当前存储容量等于日志缓存区的存储上限值,处理模块将日志缓存区存储的系统日志保存到由确定模块确定的第一存储偏移地址后清空,然后获取下一时刻日志缓存区达到存储上限值时用于保存系统日志的存储块对应的第二偏移地址,保证了flash写入的均衡,不会对flash中的同一个存储块多次擦除写入,提升了存储块的寿命。
第三方面,本申请实施例提供了一种存储装置,包括:微处理器;用于存储微处理器处理可执行指令的存储器;微处理器执行日志存储方法,存储嵌入式系统运行过程中产生的系统日志。由于微处理器控制存储系统日志时,保证了flash写入的均衡,不会针对存储装置中的一个存储块反复擦除写入,进而提升了存储装置的寿命。
附图说明
为了更清楚地说明本申请的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,对于本领域普通技术人员而言,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本申请提供的一种日志存储方法的流程示意图;
图2为本申请提供的一种固定处理后的系统日志的结构示意图;
图3为本申请提供的一种日志存储系统的结构示意图;
图4为本申请提供的一种存储装置的结构示意图。
具体实施方式
下面结合附图对本申请进行详细说明。
如图1所示为本申请提供的一种日志存储方法的实施例,所述方法包括:
S101,获取环形存储队列的第一下标。
由于存储空间没有环形结构,因此本申请中的环形存储队列实际上通过数组的线性空间来实现,每个数组元素对应每一个存储块。如果当在环形存储队列中存储系统日志,当存储空间到达了环形存储队列的尾部存储块,则需要转回到环形存储队列的头部存储块。数组的取模操作则实现从尾部尾部存储块跳转头部存储块,由上述可以环形存储队列实质上是将多个存储块连接,行成的一个存放队列的flash环形空间。
为了方便读写,环形存储队列采用数组的线性空间,还要用下标来指明队列中falsh块的位置顺序。本申请中为了存储系统日志,需要首先获取环形存储队列的头部下标,将头部下标对应的falsh块作为存储系统日志的存储起始端。为了获得环形存储队列的头部下标,需要先获取环形存储队列中每个存储块对应的下标以及多个下标的排列顺序,通过二分查找法根据下标的排列顺序获得头部下标。
在示意性的实施例中,假设环形存储队列的下标数值如下:
12,13,14,15,16,1,2,3,4,5,6,7,8,9,10,11。可知环形存储队列中的flash总块数为16,采用二分查找法首先取现有下标排列顺序中的头部数值、尾部数值和中间数值,即:12,3,11。由于中间数值3<12+16/2-1,因此头部下标在头部数值12与中间数值3之间。
此时中间数值3变为尾部数据,flash总块数变为8,因此取头部数值12与尾部数值3之间中间数据15,即:12,15,3,由于15=12+8/2-1,所以头部下标在中间数值15与尾部数值3之间。
此时中间数值15变为头部数值,flash总块数变为4,取头部数值15与尾部数值3之间中间数据1,即:15,1,3,由于1<15+4/2-1,因此头部下标为下标15与16之间,按照取大数原则,选定16为头部下标,为本申请实施例中获取的第一下标。
本申请中的二分查找法可以降低查找头部下标的时间,假设环形存储队列中有1000个存储块,由二分查找法的时间复杂度为log2,因此只需要比较10次,就可以从1000个存储块对应的下标队列中精准获取头部下标。
S102,根据第一下标确定第一下标对应的第一存储偏移地址。
存储系统日志文件需要的是实实在在的物理地址,而偏移地址就是flash的内存分段后,在段内某一地址相对于段首地址的偏移量,也是物理地址。本申请中为了获取第一下标对应的偏移地址,首选确定出环形存储队列中的存储块总数,将获取的第一下标与存储块总数取余计算,获得一个余数值。其中,余数值即为第一下标对应的第一存储偏移地址。
在示意性的实施例中,以第一下标数为120为例,假设环形存储队列中的存储块总数为4,则120与4取余数为0,则确定第一下标120对应的第一存储偏移地址为0,在计算机系统中0一般通过十六进制数或其他类型的数进行表示。以S101中为例,如果第一下标为15,环形存储队列中的存储块总数为16,则此时第一下标15对应的第一存储偏移地址为15。需要说明的是,本申请中的存储块的下标是示意性的,而且存储块的下标数值与环形存储队列中的存储块总数没有直接的对应关系。
S103,判断日志缓存区内的当前存储容量是否等于日志缓存区的存储上限值。
本申请实施例中,为了保证系统的日志文件不被丢失,会实时监控日志缓存区中的日志文件的长度。例如可以设置存储预警值,如果在第一时刻获取到日志缓存区内的当前存储容量与日志缓存区的存储上限值之间的差值小于或等于存储预警值,提高对日志缓存区内日志文件长度的监控。这样一方面可以使得系统日志文件既可以得到完整的保存,也不会存在系统日志文件的丢失。
S104,如果日志缓存区内的当前存储容量等于日志缓存区的存储上限值,将存储于日志缓存区内的系统日志存储到环形存储队列中由第一存储偏移地址所指示的存储块内,清空日志缓存区,基于第一下标确定第二下标及其所对应的第二存储偏移地址。
如果日志缓存区内存储的日志文件长度小于日志缓存区存储上限值,则继续将系统日志文件存储到当前日志缓存区。当日志缓存区的系统日志达到存储上限,需要将系统日志存储到存储偏移地址对应的存储块之前需要将系统日志进行固定处理,因此本申请中的日志缓存区至少包括第一日志缓存区和第二日志缓存区。
如果第一日志缓存区内的日志文件长度达到第一日志缓存区存储上限时,为了保证后续的系统日志不会丢失,需要将将系统日志存储位置指向第二日志缓存区,此时第二日志缓存区开始写入新的系统日志。与此同时在第一日志缓存区内的日志缓存区头部插入第一下标数据,然后再对日志缓存区做CRC校验,获得校验和插入第一日志缓存区尾部,这样就形成了一个完成的第一日志缓存区结构,然后将第一日志缓存区内固定处理后的系统日志存储到第一存储偏移地址所指示的存储块。如图2所示为,固定处理后的系统日志的结构,包括第一下标、系统日志内容和校验和,第一下标、系统日志内容和校验和组成的数据长度等于第一存储偏移地址对应的存储块的大小。示意性的,本申请中固定处理后的系统日志中第一下标为整数型数据,需要占用4个字节,校验和需要占用2个字节,因此第一日志缓存区的存储上限最大为第一存储偏移地址对应的存储块大小减去6个字节的空间存储。
第一日志缓存区中的系统日志存储到第一存储偏移地址对应的存储块之后,将第一日志缓存区清空,等待写入新的系统日志。
为了保证第二日志缓存区达到存储上限时,将系统日志进行存储。此时将第一下标加一预设值获取第二下标,在示意性实施例中,预设值为1,根据获取的第二下标计算出第二存储偏移地址,作为下一时刻日志缓存区达到存储上限时用于保存系统日志的存储块的地址。
例如S102中第一下标为120,则第二下标为121,则121与4取余数为1,则确定第二下标121对应的第二存储偏移地址为1。则当第二日志缓存区达到存储上限时,将第二日志缓存区内的系统日志固定处理后存入到1对应的存区偏移地址。当然在操作存数第二日志缓存区内的日志之前,必须先将存数系统日志的日志缓存区位置指向进行修改,例如指向第一日志缓存区。但是如果存在更多的日志缓存区,也可以指向其他的日志缓存区,在此不再赘述。
由上述实施例可知,本实施例提供的日志存储方法,通过获取第一下标,确定环形存储队列的存储起始端,当日志缓存区内的当前存储容量等于日志缓存区的存储上限值,将日志缓存区存储的系统日志保存到第一存储偏移地址后清空,然后获取下一时刻日志缓存区达到存储上限值时用于保存系统日志的存储块对应的第二偏移地址,保证了flash写入的均衡,不会对flash中的同一个存储块多次擦除写入,提升了存储块的寿命。
与上述实施例提供的一种日志存储方法的实施例相对应,本申请还提供了一种日志存储系统的实施例,如图3所示,
本申请实施例提供的日志存储系统包括:获取模块201、确定模块202、判断模块203和处理模块204。其中,获取模块201,用于获取环形存储队列的第一下标。确定模块202,用于根据第一下标确定第一下标对应的第一存储偏移地址。判断模块203,用于判断日志缓存区内的当前存储容量是否等于日志缓存区的存储上限值。处理模块204,用于若日志缓存区内的当前存储容量等于日志缓存区的存储上限值,将存储于日志缓存区内的系统日志存储到环形存储队列中由第一存储偏移地址所指示的存储块内,清空日志缓存区,基于第一下标确定第二下标及其所对应的第二存储偏移地址。
进一步地,获取模块201包括:第一获取单元和查找单元。第一获取单元,用于获取环形存储队列中每个存储块对应的下标以及多个下标的排列顺序。查找单元,用于根据下标的排列顺序基于二分查找法获得第一下标。
确定模块202包括:第二获取单元和计算单元。其中第二获取单元,用于获取环形存储队列中的存储块总数。计算单元,用于将第一下标与存储块总数取余计算以确定余数值,余数值为第一下标对应的第一存储偏移地址。
处理模块204包括:修改单元、插入单元和存储单元。本申请实施例中日志缓存区至少包括第一日志缓存区和第二日志缓存区,修改单元,用于如果第一日志缓存区当前存储容量等于第一日志缓存区的存储上限值时,将系统日志存储位置指针由第一日志缓存区指向第二日志缓存区。插入单元,用于将第一日志缓存区内的系统日志插入系统日志标识,系统日志标识包括第一下标和校验和,其中第一下标插入第一日志缓存区的头部,固定在系统日志的数据起始端,校验和插入第一日志缓存区的尾部,固定在系统日志的数据末端。存储单元,用于将记载系统日志标识的系统日志存储到第一存储偏移地址对应的存储块。
由上述实施例可知,本实施例提供的日志存储系统通过通过获取模块201获取第一下标,确定环形存储队列的存储起始端,当日志缓存区内的当前存储容量等于日志缓存区的存储上限值,处理模块204将日志缓存区存储的系统日志保存到由确定模块202确定的第一存储偏移地址后清空,然后获取下一时刻日志缓存区达到存储上限值时用于保存系统日志的存储块对应的第二偏移地址,保证了flash写入的均衡,不会对flash中的同一个存储块多次擦除写入,提升了存储块的寿命。
与上述提供的实施例相对应,本申请还提供了一种存储装置的实施例,具体地,如图4所示,存储装置包括微处理器301和存储器302。存储器302用于存储微处理器301处理的可执行指令,存储器302存储的可执行指令包括程序代码,程序代码包括计算机操作指令。存储器302可能包含随机存取存储器(random access memory,简称RAM),也可能还包括非易失性存储器(non-volatile memory),例如至少一个磁盘存储器。
图中仅示出了一个微处理器301,当然,微处理器301也可以根据需要为多个。微处理器301,用于读取存储器302中存储的程序代码。执行上述实施例中的日志存储方法。微处理器301通常是控制存储装置的整体功能。此外,微处理器301可以包括一个或多个模块,微处理器301和其他组件之间的交互。
微处理器301在嵌入式系统运行过程中存储系统运行过程中产生的系统日志。由于微处理器301控制存储系统日志时,保证了flash写入的均衡,不会针对存储装置中的一个存储块反复擦除写入,进而提升了存储装置的寿命。
存储装置还包括内部电源组件,内部电源组件为存储装置的各种组件包括微处理器301和存储器302提供电力。电源组件可以包括电源管理系统,一个或多个电源,及其他与为存储装置生成、管理和分配电力相关联的组件。
在示例性实施例中,存储装置还可以配置I/O接口,I/O接口为微处理器301和外围接口模块之间提供接口,也可以是与存储器302提供的接口。
本申请可以在由计算机执行的计算机可执行指令的一般上下文中描述,例如程序模块。一般地,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、组件、数据结构等等。也可以在分布式计算环境中实践本申请,在这些分布式计算环境中,由通过通信网络而被连接的远程处理设备来执行任务。在分布式计算环境中,程序模块可以位于包括存储设备在内的本地和远程计算机存储介质中。
文中,诸如“第一”和“第二”等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
本申请说明书中各个实施例之间相同相似的部分互相参见即可。尤其,对日志存储系统和存储装置实施例而言,由于其中的日志存储方法基本相似于日志存储方法的实施例,所以描述的比较简单,相关之处参见日志存储方法实施例中的说明即可。
以上所述的本申请实施方式并不构成对本申请保护范围的限定。

Claims (9)

1.一种日志存储方法,其特征在于,所述方法包括:
获取环形存储队列的第一下标;
根据所述第一下标确定所述第一下标对应的第一存储偏移地址;
判断日志缓存区内的当前存储容量是否等于所述日志缓存区的存储上限值;
若是,将存储于所述日志缓存区内的系统日志存储到所述环形存储队列中由所述第一存储偏移地址所指示的存储块内,清空所述日志缓存区,基于所述第一下标确定第二下标及其所对应的第二存储偏移地址。
2.根据权利要求1所述的日志存储方法,其特征在于,所述获取环形存储队列的第一下标,包括:
获取所述环形队列中每个存储块对应的下标以及多个所述下标的排列顺序;
根据所述下标的排列顺序基于二分查找法获得所述第一下标。
3.根据权利要求2所述的日志存储方法,其特征在于,所述根据所述第一下标确定所述第一下标对应的第一存储偏移地址包括:
获取所述环形存储队列中的存储块总数;
将所述第一下标与所述存储块总数取余计算以确定余数值,所述余数值为所述第一下标对应的第一存储偏移地址。
4.根据权利要求1-3任一项所述日志存储方法,其特征在于,所述日志缓存区包括第一日志缓存区和第二日志缓存区:
所述第一日志缓存区当前存储容量等于所述第一日志缓存区的存储上限值时,将系统日志存储位置指针由所述第一日志缓存区指向所述第二日志缓存区;
将所述第一日志缓存区内的系统日志插入系统日志标识;
将记载所述系统日志标识的系统日志存储到所述第一存储偏移地址所指示的存储块。
5.一种日志存储系统,其特征在于,所述系统包括:
获取模块,用于获取环形存储队列的第一下标;
确定模块,用于根据所述第一下标确定所述第一下标对应的第一存储偏移地址;
判断模块,用于判断日志缓存区内的当前存储容量是否等于所述日志缓存区的存储上限值;
处理模块,用于若日志缓存区内的当前存储容量等于所述日志缓存区的存储上限值,将存储于所述日志缓存区内的系统日志存储到所述环形存储队列中由所述第一存储偏移地址所指示的存储块内,清空所述日志缓存区,基于所述第一下标确定第二下标及其所对应的第二存储偏移地址。
6.根据权利要求5所述的日志存储系统,其特征在于,所述获取模块,包括:
第一获取单元,用于获取所述环形存储队列中每个存储块对应的下标以及多个所述下标的排列顺序;
查找单元,用于根据所述下标的排列顺序基于二分查找法获得所述第一下标。
7.根据权利要求6所述的日志存储系统,其特征在于,所述确定模块包括:
第二获取单元,用于获取所述环形存储队列中的存储块总数;
计算单元,用于将所述第一下标与所述存储块总数取余计算以确定余数值,所述余数值为所述第一下标对应的第一存储偏移地址。
8.根据权利要求5-7任一项所述日志存储系统,其特征在于,所述日志缓存区包括第一日志缓存区和第二日志缓存区,所述处理模块包括:
修改单元,用于如果所述第一日志缓存区当前存储容量等于所述第一日志缓存区的存储上限值时,将系统日志存储位置指针由所述第一日志缓存区指向所述第二日志缓存区;
插入单元,用于将所述第一日志缓存区内的系统日志插入系统日志标识;
存储单元,用于将记载所述系统日志标识的系统日志存储到所述第一存储偏移地址对应的存储块。
9.一种存储装置,其特征在于,包括:
微处理器;
用于存储所述微处理器处理可执行指令的存储器;
所述微处理器执行如权利要求1-4任一项所述的日志存储方法,存储嵌入式系统运行过程中产生的系统日志。
CN201810435046.4A 2018-05-09 2018-05-09 一种日志存储方法、系统及存储装置 Active CN108829342B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201810435046.4A CN108829342B (zh) 2018-05-09 2018-05-09 一种日志存储方法、系统及存储装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201810435046.4A CN108829342B (zh) 2018-05-09 2018-05-09 一种日志存储方法、系统及存储装置

Publications (2)

Publication Number Publication Date
CN108829342A true CN108829342A (zh) 2018-11-16
CN108829342B CN108829342B (zh) 2021-06-25

Family

ID=64148583

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201810435046.4A Active CN108829342B (zh) 2018-05-09 2018-05-09 一种日志存储方法、系统及存储装置

Country Status (1)

Country Link
CN (1) CN108829342B (zh)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111433765A (zh) * 2018-11-30 2020-07-17 深圳市大疆创新科技有限公司 日志存储方法、日志读取方法、智能电池、无人机
CN111538711A (zh) * 2020-04-14 2020-08-14 中国人民财产保险股份有限公司 日志存储方法及装置
CN113111137A (zh) * 2021-04-30 2021-07-13 深圳壹账通智能科技有限公司 分布式系统日志实时展示方法、装置、设备及存储介质
CN113568872A (zh) * 2021-07-28 2021-10-29 歌尔科技有限公司 一种tws设备及其日志保存和读取方法、装置及介质
CN115827787A (zh) * 2023-02-15 2023-03-21 仁通融合(南京)信息技术有限公司 一种互联网云智库管理方法

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102012793A (zh) * 2010-11-12 2011-04-13 浪潮(北京)电子信息产业有限公司 镜像实现方法和装置
CN102567184A (zh) * 2011-12-27 2012-07-11 青岛海信宽带多媒体技术有限公司 一种基于Flash的日志存储方法
CN104252405A (zh) * 2013-06-26 2014-12-31 腾讯科技(深圳)有限公司 日志信息的输出方法及装置
CN104657366A (zh) * 2013-11-18 2015-05-27 深圳市腾讯计算机系统有限公司 海量日志写入数据库的方法、装置和日志容灾系统
CN105224444A (zh) * 2015-10-14 2016-01-06 深圳市金证科技股份有限公司 日志生成方法及装置
JP2017167654A (ja) * 2016-03-14 2017-09-21 株式会社日立ソリューションズ データ管理装置及びデータベースの管理方法

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102012793A (zh) * 2010-11-12 2011-04-13 浪潮(北京)电子信息产业有限公司 镜像实现方法和装置
CN102567184A (zh) * 2011-12-27 2012-07-11 青岛海信宽带多媒体技术有限公司 一种基于Flash的日志存储方法
CN104252405A (zh) * 2013-06-26 2014-12-31 腾讯科技(深圳)有限公司 日志信息的输出方法及装置
CN104657366A (zh) * 2013-11-18 2015-05-27 深圳市腾讯计算机系统有限公司 海量日志写入数据库的方法、装置和日志容灾系统
CN105224444A (zh) * 2015-10-14 2016-01-06 深圳市金证科技股份有限公司 日志生成方法及装置
JP2017167654A (ja) * 2016-03-14 2017-09-21 株式会社日立ソリューションズ データ管理装置及びデータベースの管理方法

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111433765A (zh) * 2018-11-30 2020-07-17 深圳市大疆创新科技有限公司 日志存储方法、日志读取方法、智能电池、无人机
CN111538711A (zh) * 2020-04-14 2020-08-14 中国人民财产保险股份有限公司 日志存储方法及装置
CN113111137A (zh) * 2021-04-30 2021-07-13 深圳壹账通智能科技有限公司 分布式系统日志实时展示方法、装置、设备及存储介质
CN113568872A (zh) * 2021-07-28 2021-10-29 歌尔科技有限公司 一种tws设备及其日志保存和读取方法、装置及介质
CN115827787A (zh) * 2023-02-15 2023-03-21 仁通融合(南京)信息技术有限公司 一种互联网云智库管理方法

Also Published As

Publication number Publication date
CN108829342B (zh) 2021-06-25

Similar Documents

Publication Publication Date Title
CN108829342A (zh) 一种日志存储方法、系统及存储装置
US8612488B1 (en) Efficient method for relocating shared memory
US8838875B2 (en) Systems, methods and computer program products for operating a data processing system in which a file delete command is sent to an external storage device for invalidating data thereon
CN106708423B (zh) 多模存储管理系统
US9710340B2 (en) Replacement of a corrupt driver variable record
EP3168735A1 (en) Apparatus, method, and multimode storage device for performing selective underlying exposure mapping on user data
US20080201544A1 (en) Storage system
CN104662552A (zh) 安全的盘访问控制
US8037529B1 (en) Buffer overflow vulnerability detection and patch generation system and method
JP2008508596A (ja) Nvramを使用するメモリ管理のためのシステム、方法、コンピュータ可読媒体、および装置
CN103559139B (zh) 一种数据存储方法及装置
CN103608866A (zh) 用于闪存存储器的数据擦除方法及装置
CN106527992A (zh) 一种存储设备数据销毁方法及装置
CN109684231A (zh) 用于识别固态盘中的热数据和流的系统及方法
CN107608860A (zh) 一种错误日志分类存储的方法、装置、设备
CN103559231A (zh) 一种文件系统配额管理方法、装置及系统
US11100047B2 (en) Method, device and computer program product for deleting snapshots
US11119657B2 (en) Dynamic access in flash system
JP2014515858A (ja) 実行中の命令を再結合する方法および装置
CN106033322A (zh) 一种数据存储方法及装置
CN106201652A (zh) 一种数据处理方法及虚拟机
CN108897859A (zh) 一种元数据检索方法、装置、设备及计算机可读存储介质
CN110147203A (zh) 一种文件管理方法、装置、电子设备及存储介质
CN111625482B (zh) 顺序流检测方法与装置
CN101154447B (zh) 一种闪存控制方法及闪存

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant