CN110888769B - 数据处理方法及计算机设备 - Google Patents
数据处理方法及计算机设备 Download PDFInfo
- Publication number
- CN110888769B CN110888769B CN201811044102.8A CN201811044102A CN110888769B CN 110888769 B CN110888769 B CN 110888769B CN 201811044102 A CN201811044102 A CN 201811044102A CN 110888769 B CN110888769 B CN 110888769B
- Authority
- CN
- China
- Prior art keywords
- storage area
- log
- storage
- level
- data
- 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.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/3089—Monitoring arrangements determined by the means or processing involved in sensing the monitored data, e.g. interfaces, connectors, sensors, probes, agents
- G06F11/3093—Configuration details thereof, e.g. installation, enabling, spatial arrangement of the probes
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/3065—Monitoring arrangements determined by the means or processing involved in reporting the monitored data
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0614—Improving the reliability of storage systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0638—Organizing or formatting or addressing of data
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0646—Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
- G06F3/0647—Migration mechanisms
- G06F3/0649—Lifecycle management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0673—Single storage device
- G06F3/068—Hybrid storage device
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)
- Quality & Reliability (AREA)
- Debugging And Monitoring (AREA)
Abstract
本申请提供了一种数据处理方法,计算机设备接收到目标应用的日志写入指令中包括该目标应用待写入第二存储介质的日志数据的级别,该级别用于指示计算机设备按照不同的刷新频率将日志数据写入第二存储介质。计算机设备将该日志数据存储至第一存储区域后,可根据该级别将日志数据从第一存储区域写入第二存储介质。对于级别较高的日志数据,可按照较高的刷新频率将其写入第二存储介质,以确保日志数据写入的实时性。而对于级别较低的日志数据,则可按照较低的刷新频率将其写入第二存储介质,以避免增加对第二存储介质的擦写次数,避免第二存储介质因擦写次数超过上限而故障。
Description
技术领域
本申请涉及存储技术领域,特别涉及一种数据处理方法及计算机设备。
背景技术
在嵌入式系统(embedded system,ES)中,每个业务应用可以将其运行过程中产生的各项数据写入至日志中。当业务应用出现故障时,日志中记录的日志数据可以作为故障定位的重要依据。
传统技术中,业务应用的日志一般存储在诸如闪存(FLASH)或固态硬盘(solidstate drives,SSD)等非易失性存储介质中。业务应用每次将日志数据写入至日志中时,需要对该非易失性存储介质执行一次输入/输出(input/output,IO)访问。
但是,嵌入式系统中所采用的非易失性存储介质的IO访问次数(也称为擦写次数)具有一定上限,当业务应用频繁向日志中写入日志数据,导致对非易失性存储介质的IO访问次数超过该上限时,可能导致非易失性存储介质故障,日志数据无法正常写入。
发明内容
本申请提供了一种数据处理方法及计算机设备,可以解决传统技术中频繁写入日志数据,对非易失性存储介质的IO访问次数容易超过其上限,导致非易失性存储介质故障的问题。
第一方面,提供了一种数据处理方法,该方法可以应用于计算机设备,该计算机设备包括第一存储介质和第二存储介质。该第一存储介质可以为内存,该第二存储介质可以为闪存或SSD等非易失性存储介质。计算机设备可以接收目标应用的日志写入指令,该日志写入指令包括目标应用待写入第二存储介质的日志数据的级别,该级别用于指示计算机设备按照不同的刷新频率将日志数据写入第二存储介质;然后,计算机设备可以从第一存储介质中确定用于缓存该目标应用的日志数据的第一存储区域,并将该日志数据存储至该第一存储区域;最后,计算机设备即可根据该日志数据的级别将该日志数据从第一存储区域写入第二存储介质。
本申请提供的方法,计算机设备可以根据日志数据的级别的不同,按照不同的刷新频率将日志数据写入第二存储介质。因此对于级别较高的日志数据,可以按照较高的刷新频率将其写入第二存储介质,以确保日志数据写入的实时性。而对于级别较低的日志数据,则可按照较低的刷新频率将其写入第二存储介质,以避免增加对第二存储介质的擦写次数,进而避免了第二存储介质因擦写次数超过上限而故障,确保了日志数据的正常写入。
可选的,该第一存储介质可以包括多个存储区域,计算机设备在确定第一存储区域时,可以将该多个存储区域中,日志级别与该级别相同的存储区域确定为第一存储区域。
计算机设备将相同级别的日志数据存储在同一存储区域中,从而可以按照固定的刷新频率将同一存储区域中的日志数据写入第二存储介质。
可选的,当该多个存储区域中不存在日志级别与该级别相同的存储区域时,该方法还可以包括:计算机设备从该多个存储区域中的空闲存储区域中确定第一存储区域,并将该级别配置为该第一存储区域的日志级别。
例如,计算机设备可以从空闲存储区域中随机选取一个存储区域作为第一存储区域,并为该第一存储区域配置级别。当后续再次接收到该目标应用发送的包括相同级别的日志写入指令时,计算机设备可以基于该级别直接确定出该第一存储区域。
可选的,计算机设备根据级别将该日志数据从第一存储区域写入第二存储介质的过程可以包括:
计算机设备获取该第一存储区域的剩余时间值,并检测该剩余时间值是否为零;当该计算机设备检测到该剩余时间值为零时,将该日志数据从该第一存储区域写入该第二存储介质;当该计算机设备检测到该剩余时间值大于零时,将该剩余时间值减预设差值,并继续执行检测该剩余时间值是否为零的步骤。
其中,该剩余时间值的初值由该计算机设备配置,且该剩余时间值的初值的大小与该级别的高低负相关。也即是,日志数据的级别越高,用于缓存该日志数据的第一存储区域的剩余时间值的初值越小。相应的,该第一存储区域中缓存的日志数据在被写入至第二存储介质之前所需等待的时长也就越短,即该第一存储区域中缓存的日志数据能够以较高的刷新频率写入至第二存储介质。
可选的,在计算机设备将该日志数据存储至该第一存储区域之后,计算机设备还可以将该第一存储区域的新增数据标识设置为第一标识。则计算机设备根据该级别将该日志数据从该第一存储区域写入该第二存储介质的过程可以包括:计算机设备检测该第一存储区域的新增数据标识是否为第一标识;当检测到该新增数据标识为第一标识时,计算机设备即可根据该级别将该日志数据从该第一存储区域写入该第二存储介质。
计算机设备将该日志数据从该第一存储区域写入该第二存储介质之后,还可以将该第一存储区域的新增数据标识设置为第二标识。
可选的,当计算机设备检测到该新增数据标识不为第一标识时,可以继续对下一个存储区域的新增数据表示进行检测。
计算机设备通过检测存储区域的新增数据标识是否为第一标识,可以快速确定出每个存储区域是否包括新写入的日志数据,进而提高了将新写入的日志数据按照其级别指示的刷新频率写入第二存储介质时的效率。
可选的,该第一存储介质可以包括多个存储区域,在计算机设备检测该第一存储区域的新增数据标识是否为第一标识之前,该方法还可以包括:计算机设备获取该多个存储区域中非空闲存储区域的描述信息,并基于该非空闲存储区域的描述信息,构建双向链表,该双向链表中的每个节点存储有一个非空闲存储区域的描述信息;该描述信息可以包括:非空闲存储区域的新增数据标识,该非空闲存储区域为未存储日志数据的存储区域。
相应的,计算机设备检测第一存储区域的新增数据标识是否为第一标识的过程可以包括:计算机设备通过遍历该双向链表,获取该第一存储区域的新增数据标识,并检测该第一存储区域的新增数据标识是否为第一标识。
基于非空闲存储区域的描述信息构建双向链表,并通过遍历该双向链表检测每个存储区域的新增数据标识,可以有效提高检测新增数据标识的效率,进而可以提高将日志数据写入第二存储介质的效率。
可选的,该日志写入指令可以包括该目标应用的标识,该第一存储介质包括多个存储区域,该计算机设备确定第一存储区域的过程可以包括:将该多个存储区域中,日志级别与该级别相同,且应用标识与该标识相同的存储区域确定为第一存储区域。
当该多个存储区域中不存在日志级别与该级别相同,且应用标识与该标识相同的存储区域时,该方法还可以包括:计算机设备从该多个存储区域中的空闲存储区域中确定第一存储区域,并将该级别配置为该第一存储区域的日志级别,将该标识配置为该第一存储区域的应用标识。
本申请提供的方法,计算机设备基于目标应用的标识和待写入的日志数据的级别确定第一存储区域,从而可以将不同业务应用生成的不同级别的日志数据存储至不同的存储区域。也即是,对于每个业务应用,计算机设备可以为该业务应用分配至少一个存储区域,每个存储区域可以用于存储该业务应用生成的一个级别的日志数据。由此,可以实现各个业务应用的日志数据的分区域存储,避免多个业务应用同时存储日志数据时出现冲突,保证多个业务应用可以并发存储日志数据。
第二方面,本申请提供了一种计算机设备,该计算机设备可以包括第一存储介质和第二存储介质,该计算机设备还可以包括至少一个模块,该至少一个模块可以用于实现上述方面所提供的数据处理方法。
第三方面,本申请提供了一种计算机设备,该计算机设备可以包括:存储器,处理器及存储在该存储器上并可在该处理器上运行的计算机程序,该存储器包括第一存储介质和第二存储介质,该处理器执行该计算机程序时实现上述方面所提供的数据处理方法。
第四方面,本申请提供了一种计算机可读存储介质,该计算机可读存储介质中存储有指令,当该计算机可读存储介质在计算机上运行时,使得计算机执行如上述方面所提供的数据处理方法。
第五方面,本申请提供了一种包含指令的计算机程序产品,当该计算机程序产品在计算机上运行时,使得计算机执行如上述方面所提供的数据处理方法。
综上所述,本申请提供了一种数据处理方法及计算机设备,该计算机设备可以将目标应用的日志数据存储至第一存储介质中的第一存储区域,并可以根据日志数据的级别的不同,按照不同的刷新频率将日志数据写入第二存储介质。因此对于级别较高的较为重要的日志数据,可以按照较高的刷新频率将其写入第二存储介质,以确保日志数据写入的实时性。而对于级别较低的非重要日志数据,则可以按照较低的刷新频率将其写入第二存储介质,以避免增加对第二存储介质的擦写次数,进而可以避免第二存储介质因擦写次数超过上限而故障,确保了日志数据的正常写入。
附图说明
图1是传统技术中的一种计算机设备的架构图;
图2是本发明实施例提供的一种计算机设备的架构图;
图3是本发明实施例提供的一种数据处理方法的流程图;
图4是本发明实施例提供的一种第一存储介质中的日志缓存区域的架构图;
图5是本发明实施例提供的一种存储数据块的结构示意图;
图6是本发明实施例提供的一种确定第一存储区域的方法流程图;
图7是本发明实施例提供的另一种确定第一存储区域的方法流程图;
图8是本发明实施例提供的一种为不同业务应用分配的存储数据块的示意图;
图9是本发明实施例提供的一种双向链表的结构示意图;
图10是本发明实施例提供的一种将日志数据从第一存储区域写入第二存储介质的方法流程图;
图11是本发明实施例提供的一种构建双向链表的方法流程图;
图12是本发明实施例提供的一种链表数组的结构示意图;
图13是本发明实施例提供的一种将日志数据从存储区域写入第二存储介质的方法流程图;
图14是本发明实施例提供的一种第二存储介质的架构图;
图15是本发明实施例提供的另一种计算机设备的架构图;
图16是本发明实施例提供的一种计算机设备的结构示意图;
图17是本发明实施例提供的另一种计算机设备的结构示意图;
图18是本发明实施例提供的又一种计算机设备的结构示意图。
具体实施方式
下面结合附图详细介绍本申请实施例提供的数据处理方法。
图1是传统技术中一种计算机设备的架构图。如图1所示,该计算机设备的架构可以划分为硬件、操作系统以及业务层。其中,硬件可以包括处理器和存储器等,该存储器可以包括非易失性存储介质,该非易失性存储介质可以为闪存或SSD。操作系统可以包括:磁盘高速缓存(disk cache)、文件系统以及块设备,该块设备为用于将磁盘高速缓存中存储的数据写入至非易失性存储介质中的驱动模块。业务层可以包括多个业务应用,例如,图1所示的业务应用1和业务应用2等。每个业务应用可以用于实现特定的功能,例如可以实现设备监控的功能或者故障诊断的功能。
图2是本发明实施例提供的一种数据处理方法所应用的计算机设备的架构图。该计算机设备可以为嵌入式系统设备,例如,该计算机设备可以为服务器、工业控制设备、监控设备或者智能家电设备等。在采用嵌入式系统的计算机设备中,计算机设备的控制程序存储在存储器中,该存储器包括只读内存(read-only memory,ROM)中。参考图2,在本发明实施例提供的计算机设备中可以包括第一存储介质和第二存储介质。该第一存储介质包括用于缓存数据的存储介质,例如可以为内存。该第二存储介质包括非易失性存储介质,例如可以为闪存或者SSD。可选地,第二存储介质也可以包括易失性存储介质。
对比图1和图2可以看出,在本发明实施例提供的计算机设备中,该第一存储介质中可以划分出固定大小的专用于存储日志数据的日志缓存区域,该日志缓存区域的大小可以为2N字节,N为大于1的整数。该日志缓存区域可以为第一存储介质中一块连续的区域,也可以为多块间断的区域,本发明实施例对此不作限定。并且,为了避免系统热重启(即不掉电重启)导致日志缓存区域中存储的日志数据丢失,计算机设备可以从第一存储介质中的保留存储区域中划分一部分区域作为该日志缓存区域。例如可以从内存中的保留内存区域中划分出该日志缓存区域。该保留存储区域中存储的数据在计算机设备热重启后不会丢失。如图2所示,该日志缓存区域可以划分为至少一个存储区域,例如可以划分为两个或两个以上的存储区域。
对比图1和图2还可以看出,本发明实施例提供的该计算机设备中还部署有日志管理模块,该日志管理模块可以对该至少一个存储区域进行统一管理。当该多个业务应用中的目标应用需要写入日志数据时,可以向日志管理模块发送日志写入指令,该日志写入指令中可以包括该目标应用待写入的日志数据的级别。日志管理模块可以根据该日志写入指令,从该至少一个存储区域中确定第一存储区域,并向目标应用发送该第一存储区域的地址信息。目标应用根据该地址信息将日志数据存储至该第一存储区域后,日志管理模块可以按照该日志写入指令中的级别所指示的刷新频率,将该日志数据从该第一存储介质的第一存储区域写入至第二存储介质中。
在本发明实施例中,该计算机设备中的日志管理模可以为一个软件模块,即该日志管理模块的逻辑功能可以由计算机设备的存储器中存储的一段程序代码实现。或者,该日志管理模块还可以为一个硬件模块,例如,该日志管理模块的逻辑功能可以由计算机设备中的集成电路或可编程逻辑器件实现。
图3是本发明实施例提供的一种数据处理方法的流程图,该方法可以应用于图2所示的计算机设备中。参考图3,该方法可以包括:
步骤101、目标应用向日志管理模块发送日志写入指令。
在本发明实施例中,计算机设备所包括的多个业务应用中的每个业务应用在其运行过程中均会生成日志数据。当该多个业务应用中的目标应用需要存储其生成的日志数据时,可以向日志管理模块发送日志写入指令。该目标应用可以是指计算机设备的多个业务应用中发送日志写入指令的业务应用。该日志写入指令中可以包括该目标应用待写入至第二存储介质的日志数据的级别,该级别是目标应用根据该待写入的日志数据的重要程度确定的,且该级别的高低与该重要程度的高低正相关。即待写入的日志数据的重要程度越高,该级别就越高。该日志数据的级别可以用于指示计算机设备的日志管理模块按照不同的刷新频率将日志数据写入第二存储介质,并且该刷新频率与该级别正相关,即日志数据的级别越高,该日志数据的刷新频率就越高。其中,该第二存储介质可以为计算机设备中的非易失性存储介质,例如可以为闪存或者SSD等。
示例的,每个业务应用生成的日志数据的类型包括:提示(info)、错误(error)和致命(critical)。其中,致命日志数据的级别可以为高级别,错误日志数据的级别可以为中等级别,提示日志数据的级别可以为低级别。假设目标应用待写入至第二存储介质的日志数据为提示日志数据,则该目标应用发送的日志写入指令中的级别可以为低级别,该低级别可以指示日志管理模块按照较低的刷新频率将日志数据写入第二存储介质。
步骤102、日志管理模块确定第一存储区域。
计算机设备中的日志管理模块接收到目标应用发送的日志写入指令后,可以从日志缓存区域所包括的至少一个存储区域中确定用于缓存该目标应用待写入的日志数据的第一存储区域。例如,当该日志缓存区域仅包括一个存储区域时,日志管理模块可以直接将该存储区域确定为第一存储区域。当该日志缓存区域包括多个存储区域时,日志管理模块可以从该多个存储区域中选取一个存储区域作为第一存储区域。
图4是本发明实施例提供的一种第一存储介质中的日志缓存区域的架构图。该第一存储介质可以为计算机设备中用于缓存数据的存储介质,例如可以为内存。如图4所示,该日志缓存区域可以被划分为多个存储区域,每个存储区域也称为一个数据块(datablock)。每个存储区域的大小可以与一个系统页(即内存页)的大小相同,例如可以为4096字节(byte)。并且,计算机设备的日志管理模块可以在系统掉电后首次启动前完成对数据块的大小的配置。若运维工程师在计算机设备在运行过程中对数据块的大小进行了调整,则该调整后的数据块的大小可以在计算机设备下次冷重启(即掉电重启)时生效。
可选的,参考图4,该日志缓存区域中的多个存储区域中可以包括:一个用于存储区域描述信息的存储区域(也可以称为超级数据块),至少一个用于存储数据块描述信息的存储区域(也可以称为描述数据块),以及M个用于存储日志数据的存储区域(也可以称为存储数据块)。其中,M为大于1的整数。
该超级数据块中存储的区域描述信息可以包括:存储数据块的总数,空闲的存储数据块的个数,每个存储数据块的大小以及每个存储数据块的使用情况中的至少一种。该使用情况可以为已使用或未使用。示例的,该区域描述信息的数据结构super_block_s可以设计如下:
其中,字段MAX_BLOCK_NUM可以用于指示该日志缓存区域所划分的存储数据块的总数,其取值为x,且该字段MAX_BLOCK_NUM为静态字段,其取值在计算机运行过程中不会改变。例如在图4所示的架构中,x=M。字段block_count用于指示当前正常的存储数据块的总数,其取值在计算机运行过程中可以变化。例如,在计算机设备的运行过程中,若M个存储数据块中出现了m1个不可用的存储数据块(即坏块),则该字段block_count的取值可以减小为M-m1。free_block_count用于指示空闲的存储数据块(即未存储日志数据的存储数据块)的个数。字段block_size用于指示每个存储数据块的大小。字段block_bitmap可以为长度为y的一维数组,y为大于或等于x的整数,且y满足: 表示向上取整。该一维数组中的第i个元素可以用于指示第i个存储数据块的使用情况,i为不大于x的正整数。示例的,第i个元素为1可以指示该第i个存储数据块已使用,第i个元素为零可以指示该第i个存储数据块未使用。u32用于指示字段为无符号32位整型数据。
该至少一个描述数据块中存储的每个存储数据块的描述信息可以包括:该存储数据块的块标识、有效数据量、应用标识、日志级别、新增数据标识、剩余时间值以及剩余时间值的初值中的至少一种。示例的,每个存储数据块的描述信息的数据结构data_block_s可以设计如下:
其中,字段block_id为该存储数据块的块标识,也可以称为块号或者块偏移,该块标识可以用于唯一标识存储数据块。例如该M个存储数据块中的第m个存储数据块的块标识可以为m。字段valid_data_size为该存储数据块的有效数据量,用于指示该存储数据块中已存储的日志数据的数据量。字段owner_id为应用标识,用于指示该存储数据块所属的业务应用,即该存储数据块中存储的日志数据所属的业务应用。字段level为日志级别,用于指示该存储数据块中存储的日志数据的重要程度。字段is_dirty为新增数据标识,用于指示该存储数据块中是否存储有新增的日志数据,即该存储数据块中存储的日志数据相对于第二存储介质中的日志数据是否有更新。字段timeout为剩余时间值,用于指示该存储数据块的刷新频率,该字段timeout的初值与字段default timeout的取值相等。字段defaulttimeout为剩余时间值的初值,该初值由日志管理模块根据日志数据的级别配置,该初值的大小与该级别的高低负相关,因此与该存储数据块的刷新频率的大小也负相关。u16用于指示对应的字段为无符号16位整型数据,u8用于指示对应的字段为无符号8位整型数据。
可选的,在本发明实施例中,该日志缓存区域也可以无需划分用于存储数据块描述信息的描述数据块,每个存储数据块可以直接存储自身的描述信息。例如,每个存储数据块中的前若干字节可以用于存储其自身的描述信息。参考图5,每个存储数据块的前20个字节可以用于存储自身的描述信息,剩余的字节可以用于存储日志数据。此外,区域描述信息的数据结构所包括的字段,以及存储数据块的描述信息的数据结构中所包括的字段均可以根据情况进行增加或者删减,例如存储数据块的描述信息中也可以无需设置字段valid_data_size,本发明实施例对该区域描述信息的数据结构和该描述信息的数据结构均不做限定。
作为一种可选的实现方式,对于该日志缓存区域包括多个存储区域的场景,参考图6,计算机设备中的日志管理模块确定第一存储区域的过程可以包括:
步骤1021a、检测多个存储区域中是否存在日志级别与该级别相同的存储区域。
在本发明实施例中,每个存储区域可以配置有一个日志级别,每个日志级别对应一个刷新频率,该刷新频率的高低与该日志级别的高低正相关,即存储区域的日志级别越高,该存储区域中存储的日志数据的刷新频率就越高。日志管理模块接收到目标应用发送的日志写入指令后,可以依次查询每个存储区域的日志级别,以检测是否存在日志级别与该日志写入指令中携带的级别相同的存储区域。当该多个存储区域中存在日志级别与该级别相同的存储区域时,日志管理模块可以执行步骤1022a。当该多个存储区域中不存在日志级别与该级别相同的存储区域时,日志管理模块可以执行步骤1023a。
示例的,假设在图4所示的M个存储数据块中,每个存储数据块的描述信息包括该存储数据块的日志级别,则日志管理模块在接收到日志写入指令后,可以获取M个存储数据块中每个存储数据块的描述信息,以查询该每个存储数据块的日志级别,进而检测该M个存储数据块中是否存在日志级别与该日志写入指令中携带的级别相同的存储区域。
步骤1022a、当检测多个存储区域中存在日志级别与该级别相同的存储区域时,将日志级别与该级别相同的存储区域确定为第一存储区域。
日志管理模块检测到该多个存储区域中存在日志级别与该级别相同的存储区域时,可以将该日志级别与该级别相同的存储区域确定为第一存储区域,该第一存储区域可以用于存储该目标应用待写入的日志数据。
日志管理模块根据目标应用待写入的日志数据的级别为目标应用分配第一存储区域,可以将不同级别的日志数据存储至不同的存储区域,将相同级别的日志数据存储在同一个存储区域,即不同业务应用生成的相同级别的日志数据可以存储在同一个存储区域中。日志管理模块在将日志缓存区域中存储的日志数据写入至第二存储介质时,对于同一个存储区域中存储的日志数据,该日志管理模块可以按照固定的刷新频率将其写入至第二存储介质。
示例的,假设目标应用待写入的日志数据为提示日志数据,其级别为低级别。则日志管理模块接收到的日志写入指令中的级别即为:低级别。对于图4所示的M个存储数据块,若日志管理模块检测到该M个存储数据块中的第1个存储数据块的级别为低级别,则可以将该第1个存储数据块确定为用于缓存目标应用的提示日志数据的第一存储数据块(即第一存储区域)。
步骤1023a、当检测多个存储区域中不存在日志级别与该级别相同的存储区域时,从该多个存储区域中的空闲存储区域中确定第一存储区域,并将该级别配置为该第一存储区域的日志级别。
日志管理模块检测到该多个存储区域中不存在日志级别与该级别相同的存储区域时,可以确定之前未分配过该级别的存储区域。此时,日志管理模块可以从该多个存储区域中的空闲存储区域中确定第一存储区域,例如可以随机选取一个或多个存储区域作为第一存储区域。之后,日志管理模块可以将该日志写入指令中的级别配置为该第一存储区域的日志级别。其中,空闲存储区域可以是指未存储日志数据的存储区域,该空闲存储区域未配置日志级别,或者配置的日志级别为缺省级别,该缺省级别与日志数据的任一级别均不相同。
示例的,对于图4所示的日志缓存区域,日志管理模块可以通过该超级数据块中存储的区域描述信息确定各个存储数据块的使用情况,并可以将使用情况为未使用的存储数据块确定为空闲存储数据块,进而即可从该空闲存储数据块中确定第一存储数据块。
例如,假设目标应用待写入的日志数据为错误日志数据,其级别为中等级别。则日志管理模块接收到的日志写入指令中的级别即为:中等级别。若日志管理模块检测到该M个存储数据块中不存在日志级别为中等级别的存储数据块,则可以从空闲存储数据块中随机选取一个作为第一存储数据块。并且,日志管理模块可以将该第一存储数据块的描述信息中的日志级别设置为中等级别,例如可以将该第一存储数据块的描述信息中的level字段设置为中等级别。
作为另一种可选的实现方式,对于该日志缓存区域包括多个存储区域的场景,该目标应用发送的日志写入指令还可以包括该目标应用的标识。参考图7,计算机设备中的日志管理模块确定第一存储区域的过程可以包括:
步骤1021b、检测该多个存储区域中是否存在日志级别与该级别相同,且应用标识与该标识相同的存储区域。
在本发明实施例中,每个存储区域可以配置有一个日志级别和一个应用标识,每个存储区域对应一个刷新频率,该刷新频率的高低与该日志级别的高低正相关。并且,日志级别相同,应用标识不同的两个存储区域的刷新频率可以相同也可以不同。日志管理模块接收到目标应用发送的日志写入指令后,可以依次查询每个存储区域的日志级别以及应用标识,以检测是否存在日志级别与该日志写入指令中携带的级别相同,且应用标识与该标识相同的存储区域。当检测到日志级别与该级别相同,且应用标识与该标识相同的存储区域时,日志管理模块可以执行步骤1022b。当未检测到日志级别与该级别相同,且应用标识与该标识相同的存储区域时,日志管理模块可以执行步骤1023b。
步骤1022b、当检测多个存储区域中存在日志级别与该级别相同,且应用标识与该标识相同的存储区域时,将该日志级别与该级别相同,且应用标识与该标识相同的存储区域确定为第一存储区域。
当日志管理模块检测到日志级别与该级别相同,且应用标识与该标识相同的存储区域时,可以将检测到的该存储区域确定为第一存储区域。该第一存储区域可以用于存储该目标应用待写入的日志数据。
日志管理模块根据目标应用待写入的日志数据的级别,以及目标应用的标识为目标应用分配第一存储区域,可以将不同业务应用生成的不同级别的日志数据存储至不同的存储区域。也即是,对于计算机设备中的每个业务应用,该日志管理模块可以为该业务应用分配至少一个存储区域,每个存储区域可以用于存储该业务应用生成的一个级别的日志数据。由此,可以实现各个业务应用的日志数据的分区域存储,避免多个业务应用同时存储日志数据时出现冲突,保证多个业务应用可以并发存储日志数据。
示例的,假设日志缓存区域的架构如图4所示,则参考图8,对于业务应用APP1,日志管理模块可以为其分配数据块1至数据块3共3个存储数据块。其中数据块1的日志级别可以为高级别,可以用于缓存业务应用APP1生成的致命日志数据。数据块2的日志级别可以为中等级别,可以用于缓存业务应用APP1生成的错误日志数据。数据块3的日志级别可以为低级别,可以用于缓存业务应用APP1生成的提示日志数据。对于业务应用APP3,日志管理模块可以为其分配数据块7和数据块8共2个存储数据块。其中数据块7的日志级别可以为中等级别,可以用于缓存业务应用APP3生成的错误日志数据,数据块8的日志级别可以为低级别,可以用于缓存业务应用APP3生成的提示日志数据。
步骤1023b、当检测多个存储区域中不存在日志级别与该级别相同,且应用标识与该标识相同的存储区域时,从该多个存储区域中的空闲存储区域中确定第一存储区域,并将该级别配置为该第一存储区域的日志级别,将该标识配置为该第一存储区域的应用标识。
当日志管理模块检测到该多个存储区域中不存在日志级别与该级别相同,且应用标识与该标识也相同的存储区域时,可以确定该目标应用为首次写入该级别的日志数据,因此可以从空闲存储区域中确定第一存储区域。该空闲存储区域未配置应用标识,或者配置的应用标识为缺省标识,该缺省标识与每个业务应用的标识均不相同。日志管理模块确定出第一存储区域后,即可将该日志写入指令中的级别配置为该第一存储区域的日志级别,将该目标应用的标识配置为该第一存储区域的应用标识。后续当日志管理模块再次接收到该目标应用发送的相同级别的日志写入指令时,日志管理模块即可将直接确定出该第一存储区域。
可选的,日志管理模块采用该日志写入指令中的级别为第一存储区域配置日志级别时,还可以根据该级别为该第一存储区域配置刷新频率,该刷新频率的高低与该级别的高低正相关。或者,目标应用发送的日志写入指令中还可以包括该刷新频率,日志管理模块可以直接根据该日志写入指令中携带的刷新频率为第一存储区域配置刷新频率。示例的,日志管理模块为第一存储区域配置刷新频率可以是指为该第一存储区域的描述信息中的剩余时间值配置初值。
在本发明实施例中,不同业务应用发送的日志写入指令中的级别相同时,刷新频率可以相同也可以不同。也即是,不同业务应用待写入的日志数据的级别即使相同,其刷新频率也可以不同。例如,系统管理应用(例如监控应用或诊断应用等)生成的错误日志数据的刷新频率可以高于普通业务应用(例如接口应用)生成的错误日志数据的刷新频率。
可选的,为了提高从空闲存储区域中确定第一存储区域的效率,日志管理模块还可以提前确定该多个存储区域中的空闲存储区域,然后基于空闲存储区域的描述信息,构建双向链表,该双向链表中的每个节点可以存储有一个空闲存储区域的描述信息。
其中,在确定空闲存储区域时,日志管理模块可以根据每个存储区域的描述信息中的有效数据量(例如字段valid_data_size)进行确定,即日志管理模块可以将描述信息中有效数据量为零的存储区域确定为空闲存储区域。或者,日志管理模块还可以根据区域描述信息中记录的各存储区域的使用情况(例如字段block_bitmap)进行确定,即日志管理模块可以将使用情况为未使用的存储区域确定为空闲存储区域。
示例的,如图9所述,假设日志管理模块确定出该M个存储数据块中包括M1个空闲数据块,则日志管理模块可以构建一个包括M1个节点的双向链表,其中每个节点可以存储有一个空闲数据块的描述信息。
步骤103、日志管理模块将该第一存储区域的地址信息发送至目标应用。
日志管理模块确定第一存储区域后,可以获取该第一存储区域的地址信息,并将该地址信息发送至目标应用。该地址信息可以用于指示该第一存储区域在该第一存储介质中的有效偏移地址。该有效偏移地址是指该第一存储区域中能够有效写入数据的区域的首地址。因此,当该第一存储区域为未存储日志数据的空闲存储区域时,该有效偏移地址可以为该第一存储区域的首地址。当该第一存储区域中已存储有日志数据时,该有效偏移地址可以为:该第一存储区域的首地址+已存储的日志数据的偏移地址。
步骤104、目标应用根据该地址信息,将日志数据存储至第一存储介质中的第一存储区域。
目标应用接收到该地址信息后,即可将日志数据存储至该第一存储介质中的第一存储区域,例如可以存储至该第一存储区域的有效偏移地址指示的区域(即有效偏移处)。示例的,目标应用可以将其生成的提示日志数据存储至第1个存储数据块中。
可选的,目标应用将日志数据存储至第一存储介质中的第一存储区域之后,当再次生成同等级别的日志数据时,若该目标应用还记录有该第一存储区域的地址信息,则可以直接将再次生成的日志数据存储至该第一存储区域。若该目标应用未记录该第一存储区域的地址信息,例如当计算机设备重启时,该目标应用可以再次执行上述步骤101所示的方法以获取该第一存储区域的地址信息。
在本发明实施例中,由日志管理模块为业务应用分配存储区域,并由业务应用将日志数据存储至分配的存储区域,可以将存储区域的分配操作与数据的存储操作分离,各个业务应用可以并发向对应的存储区域缓存日志数据,有效提高了日志数据的存储效率。
步骤105、日志管理模块根据该级别将日志数据从该第一存储区域写入第二存储介质。
目标应用将日志数据存储至第一存储区域后,日志管理模块即可根据该日志数据的级别指示的刷新频率,将该日志数据从第一存储区域写入第二存储介质。由于日志管理模块可以根据日志数据的级别的不同,按照不同的刷新频率将日志数据写入第二存储介质,因此对于级别较高的日志数据可以按照较高的刷新频率将其写入第二存储介质,对于级别较低的日志数据则可以按照较低的刷新频率将其写入第二存储介质。由此,不仅可以保证级别较高的日志数据可以及时写入第二存储介质,还可以避免增加对第二存储介质的擦写次数,保证第二存储介质的正常使用。
在一种可选的实现方式中,日志缓存区域中可以存储有每个存储区域的描述信息,该描述信息可以包括剩余时间值。该剩余时间值的初值由计算机设备的日志管理模块根据接收到的日志写入指令配置,该剩余时间值的初值可以用于指示存储区域中存储的日志数据的刷新频率,且该剩余时间值的初值的大小与该刷新频率的高低负相关,即刷新频率越高,该剩余时间值的初值越小。
示例的,日志管理模块为日志级别为低级别的存储区域配置的剩余时间值的初值可以为10分钟,为日志级别为中等级别的存储区域配置的剩余时间值的初值可以为1分钟,为日志级别为高级别的存储区域配置的剩余时间值的初值可以为10秒或者0。
图10是本发明实施例提供的一种将日志数据从第一存储区域写入第二存储介质的方法流程图,参考图10,该方法可以包括:
步骤1051a、获取第一存储区域的剩余时间值。
示例的,日志管理模块可以获取该第一存储区域的描述信息,进而获取该第一存储区域的剩余时间值。该剩余时间值可以用于指示当前该第一存储区域中的日志数据在被写入第二存储介质之前还需等待的时间。如前文所述,该剩余时间值的初值可以由日志管理模块根据日志写入指令中的日志数据的级别进行配置。该剩余时间值的单位可以与日志管理模块的检测周期的单位相同,例如可以为毫秒。
步骤1052a、检测该剩余时间值是否为零。
当检测到该剩余时间值为零时,日志管理模块可以执行步骤1053a;当该检测到该剩余时间值大于零时,日志管理模块可以执行步骤1054a。
示例的,日志管理模块可以读取第一存储区域的描述信息中的字段timeout,并检测该字段timeout的取值是否为零。
步骤1053a、将该日志数据从该第一存储区域写入该第二存储介质。
当日志管理模块检测到该第一存储区域的剩余时间值为零时,可以确定已到达该日志数据的刷新时间,因此可以将该日志数据从该第一存储区域写入该第二存储介质。
可选的,日志管理模块将该日志数据从该第一存储区域写入该第二存储介质之后,还可以将该第一存储区域的剩余时间值恢复至其初值,以确保后续检测的准确性。例如,日志管理模块可以将第一存储区域的描述信息中字段timeout的取值设置为与字段default timeout的取值相同的数值。
步骤1054a、将该剩余时间值减预设差值。执行步骤1052a。
当日志管理模块检测到该第一存储区域的剩余时间值不为零时,可以确定当前还未到达该第一存储区域的日志数据的刷新时间,因此可以将该剩余时间值减预设差值。之后,该日志管理模块可以立即执行步骤1052a,或者可以等待预设时长后执行步骤1052a。也即,日志管理模块可以周期性的对该第一存储区域的剩余时间值进行检测。相应的,该预设差值可以是根据该日志管理模块对该剩余时间值进行检测的检测周期确定的,例如,该预设差值可以等于该检测周期。
示例的,假设该检测周期为100毫秒,即日志管理模块每隔100毫秒检测一次该剩余时间值,则该预设差值可以为100毫秒。若日志管理模块检测到第一存储区域的描述信息中的字段timeout的取值为1000,则可以将该字段timeout的取值减100毫秒,此时该字段timeout的取值为900。
根据上述步骤1051a至步骤1054a可知,某个存储区域的剩余时间值的初值越大,该存储区域内的日志数据被写入至第二存储介质之前所需等待的时间就越长,即该存储区域内的日志数据刷新至第二存储介质的频率越低,由此可以有效降低对第二存储介质的擦写次数。并且,由于日志管理模块可以周期性的执行上述检测剩余时间值的步骤,因此当某个存储区域的剩余时间值的初值为零时,该日志管理模块可以及时检测到剩余时间值为零的存储区域,并将该存储区域内的日志数据及时刷新至第二存储介质。由于日志管理模块的检测周期一般较短,因此对于剩余时间值的初值为零的存储区域,日志管理模块也可以及时将该存储区域中的日志数据写入至第二存储介质,由此可以实现该日志数据的直写。
在一种可选的实现方式中,日志缓存区域中存储的每个存储区域的描述信息还可以包括新增数据标识。目标应用在执行上述步骤104所示的方法之后,还可以将该第一存储区域的新增数据标识设置为第一标识,例如可以将字段is_dirty设置为1。或者,目标应用还可以向日志管理模块发送新增提示信息,日志管理模块可以根据该新增提示信息,将第一存储区域的新增数据标识设置为第一标识。该第一标识可以用于指示该第一存储区域中有新的数据写入。
相应的,计算机设备中的日志管理模块根据将日志数据从该第一存储区域写入第二存储介质时,可以先检测该第一存储区域的新增数据标识是否为第一标识。在检测到该新增数据标识为第一标识时,日志管理模块即可根据该级别将该日志数据从该第一存储区域写入该第二存储介质。当检测到该第一存储区域的新增数据标识不为第一标识时,日志管理模块可以确定该第一存储区域没有新增数据写入,因此可以不执行数据写入的操作,并可以继续对其他存储区域的新增数据标识进行检测。
由于在本发明实施例中,日志管理模块可以按照指定的检测周期,周期性地检测每个存储区域的新增数据标识是否为第一标识。因此,为了保证日志管理模块周期性检测时的检测准确性,日志管理模块将日志数据从该第一存储区域写入该第二存储介质之后,还可以将该第一存储区域的新增数据标识设置为第二标识,例如可以将字段is_dirty设置为0。
可选的,为了进一步提高对各存储区域中新增数据的检测效率,如图11所示,日志管理模块在上述步骤105之前,还可以执行如下操作:
步骤106、获取非空闲存储区域的描述信息。
该描述信息可以包括:新增数据标识。该非空闲存储区域可以是指该多个存储区域中未存储日志数据的存储区域。
可选的,每个存储区域的描述信息还可以包括有效数据量,该有效数据量可以是业务应用在存储日志数据后设置的。或者,业务应用也可以在将日志数据存储至存储区域后,向日志管理模块发送新增提示信息,该新增提示信息可以包括该业务应用本次写入的日志数据的数据量。日志管理模块可以根据该数据量以及该存储区域之前已存储的数据量,确定并更新该存储区域的有效数据量。
日志管理模块可以分别检测每个存储区域的有效数据量,并可以将有效数据量不为零的存储区域确定为非空闲存储区域。或者,日志管理模块还可以检测区域描述信息中记录的各存储区域的使用情况,并可以将使用情况为已使用的存储区域确定为非空闲存储区域。
步骤107、基于该非空闲存储区域的描述信息,构建双向链表。
该双向链表中的每个节点可以存储有一个非空闲存储区域的描述信息。在上述步骤105中,日志管理模块可以通过遍历该双向链表,获取该第一存储区域的新增数据标识,并检测该第一存储区域的新增数据标识是否为第一标识。通过遍历双向链表的方式获取新增数据标识,可以有效提高日志管理模块检测新增数据的效率。
可选的,若每个存储区域的描述信息中还包括该存储区域的应用标识,也即,若日志管理模块为每个业务应用均分配了对应的存储区域,则日志管理模块在构建双向链表时,还可以依次检测每个非空闲存储区域的应用标识,然后基于应用标识相同的非空闲存储区域的描述信息构建一个双向链表。由此,日志管理模块可以构建得到与每个业务应用对应的一个双向链表。之后,日志管理模块可以根据各个业务应用对应的双向链表,构建链表数组。相应的,在上述步骤105中,日志管理模块可以通过遍历该链表数组获取该第一存储区域的新增数据标识。
示例的,如图12所示,日志管理模块可以分别构建业务应用APP1的双向链表、业务应用APP2的双向链表以及业务应用APP3的双向链表,该三个双向链表可以组成一个链表数组。其中,业务应用APP1的双向链表中的三个节点分别存储有数据块1至数据块3的描述信息;业务应用APP3的双向链表中的两个节点分别存储有数据块7的描述信息和数据块8的描述信息。
日志管理模块构建的每个双向链表还设置有访问接口,日志管理模块可以通过该访问接口遍历双向链表,获取双向链表中任一节点中存储的描述信息或者释放任一节点中存储的描述信息。也即是,日志管理模块可以通过该访问接口对双向链表进行增删改查等操作。
示例的,当日志管理模块检测到某个空闲存储区域中有日志数据写入后,即检测到新增的非空闲存储区域时,可以将该新增的非空闲存储区域的描述信息插入该双向链表。当日志管理模块检测到某个非空闲存储区域中的日志数据被清空后,可以将该非空闲存储区域的描述信息从该双向链表中删除。
图13是本发明实施例提供的一种日志管理模块将日志数据从存储区域写入第二存储介质的方法流程图,参考图13,该方法可以包括:
1051b、检测目标存储区域的新增数据标识是否为第一标识。
在本发明实施例中,日志管理模块可以从双向链表中的第一个节点开始逐个遍历该双向链表中的所有节点。因此,日志管理模块启动检测时,该目标存储区域即为该第一个节点所存储的描述信息对应的存储区域。当日志管理模块检测到该目标存储区域的新增数据标识不为第一标识时,可以执行步骤1052b;当日志管理模块检测到该目标存储区域的新增数据标识为第一标识时,可以执行步骤1053b。
1052b、将下一个非空闲存储区域确定为新的目标存储区域。执行步骤1051b。
当日志管理模块检测到该目标存储区域的新增数据标识不为第一标识时,可以确定该目标存储区域没有可写入第二存储介质的新增数据,因此可以将该下一个存储区域确定为新的目标存储区域,并继续执行步骤1051b。也即是,该日志管理模块可以继续对双向链表中下一个节点存储的描述信息中的新增数据标识进行检测。
1053b、检测目标存储区域的剩余时间值是否为零。
当日志管理模块检测到该目标存储区域的新增数据标识为第一标识时,可以确定该目标存储区域中存储有需要写入第二存储介质的新增数据,因此可以进一步检测该目标存储区域的剩余时间值是否为零。当检测到该目标存储区域的剩余时间值为零时,日志管理模块可以执行步骤1054b;当检测到该目标存储区域的剩余时间值不为零时,日志管理模块可以执行步骤1056b。其中,该新增数据可以是指上一次将目标存储区域内的日志数据写入至第二存储介质之后新存储的日志数据。
1054b、获取目标存储区域的新增数据。执行步骤1055b。
当检测到该目标存储区域的剩余时间值为零时,日志管理模块可以从第一存储介质中的该目标存储区域中获取该新增数据。
示例的,日志管理模块可以根据该目标存储区域上一次将新增数据写入第二存储介质后有效数据量的第一偏移地址,以及当前该目标存储区域中有效数据量的第二偏移地址,将该第一偏移地址和第二偏移地址之间存储的日志数据确定为该目标存储区域中的新增数据,并获取该新增数据。
1055b、将该新增数据写入第二存储介质。执行步骤1052b。
日志管理模块将获取到的新增数据写入第二存储介质后,可以继续执行步骤1052b。也即是,日志管理模块可以继续对下一个存储区域进行检测。可选的,在上述步骤1055b之后,日志管理模块还可以将该目标存储区域的新增数据标识设置为第二标识。
在本发明实施例中,在上述步骤1051b、步骤1055b和步骤1056b之后,日志管理模块可以立即执行步骤1052b,也可以等待预设时长后(例如延迟1秒)后再执行该步骤1052b。日志管理模块通过循环执行上述步骤1051b至步骤1056b所示的方法,可以保证能够按照不同的刷新频率及时将各个存储区域中的日志数据写入第二存储介质。
可选的,在本发明实施例中,在上述步骤1053a或者步骤1055b之后,日志管理模块还可以将存储区域中已写入至第二存储介质的日志数据删除,即清空该存储区域。由此不仅可以确保该存储区域能够预留足够的存储空间,还可以使得当日志管理模块再次将该存储区域中的新增数据写入第二存储介质时,无需再计算新增数据的偏移,而是可以直接将该存储区域中缓存的日志数据全部写入第二存储介质。相应的,每个存储区域中的描述信息中也无需再记录该有效数据量。
图14是本发明实施例提供的一种第二存储介质的架构图。如图14所示,该第二存储介质可以包括系统分区、数据分区和日志专用分区。其中,该系统分区可以用于存储系统代码等静态数据,数据分区可以用于存储配置数据,日志专用分区可以用于存储日志管理模块写入的日志数据。通过在第二存储介质中划分出专用于存储日志数据的日志专用分区,不仅可以避免该日志专用分区内的数据对其他分区的数据的影响,而且由于系统升级不会操作该日志专用分区,因此还可以避免系统升级对日志专用分区第一存储介质储的日志数据的影响。
在本发明实施例中,日志管理模块的各项功能可以均封装在日志库中,业务应用只需调用日志库提供的访问接口发送携带有级别(或者级别和业务应用的标识)的日志写入指令即可,而无需关心日志管理模块的处理逻辑。本发明实施例提供的方法的适用性较高,兼容性较强。
作为一种可选的实现方式,参考图2所示的架构,该第二存储介质中的日志专用分区可以格式化成标准的文件系统,日志管理模块可以通过传统的文件操作方式将存储区域中的日志数据写入到第二存储介质的日志专用分区中。
作为另一种可选的实现方式,参考图15所示的架构,该第二存储介质中的日志专用分区无需格式化成标准的文件系统,即该计算机设备的架构中无需部署用于供日志管理模块访问该日志专用分区的文件系统。该日志管理模块可以直接通过块设备访问第二存储介质的日志专用分区,即日志管理模块可以直接通过块设备将日志数据写入至该日志专用分区。
可选的,在本发明实施例中,日志管理模块还可以在系统启动后,检测第二存储介质的标识,并根据该标识确定该第二存储介质的可擦写次数。日志管理模块在为存储区域配置刷新频率时,除了参考日志写入指令中的级别,还可以参考该第二存储介质的可擦写次数进行配置,且该刷新频率的高低与该可擦写次数的多少正相关。即在日志写入指令中的级别相同的前提下,第二存储介质的可擦写次数越高,该日志管理模块为存储区域配置的刷新频率也越高。由此日志管理模块可以根据不同第二存储介质的擦写性能,灵活调整日志数据的刷新频率,从而在第二存储介质的擦写次数和日志数据写入的实时性之间达到一定程度的平衡。
需要说明的是,本发明实施例提供的数据处理方法的步骤的先后顺序可以进行适当调整,步骤也可以根据情况进行相应增减。例如步骤106和步骤107可以根据情况进行删除。任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到变化的方法,都应涵盖在本申请的保护范围之内,因此不再赘述。
本发明实施例提供的数据处理方法,计算机设备可以将目标应用的日志数据存储至第一存储介质中的第一存储区域,并可以根据日志数据的级别的不同,按照不同的刷新频率将日志数据写入第二存储介质。因此对于级别较高的较为重要的日志数据,可以按照较高的刷新频率将其写入第二存储介质,以确保日志数据写入的实时性。而对于级别较低的非重要日志数据,则可以按照较低的刷新频率将其写入第二存储介质,以避免增加对第二存储介质的擦写次数,进而可以避免第二存储介质因擦写次数超过上限而故障,确保了日志数据的正常写入。
图16是本发明实施例提供的一种计算机设备的结构示意图,该计算机设备可以包括第一存储介质和第二存储介质。参考图16,该计算机设备还可以包括:
接收模块201,用于接收目标应用的日志写入指令,该日志写入指令包括该目标应用待写入该第二存储介质的日志数据的级别,该级别用于指示该计算机设备按照不同的刷新频率将该日志数据写入该第二存储介质。
该接收模块201的功能可参考上述方法实施例中步骤101的相关描述,此处不再赘述。
确定模块202,可以用于实现上述方法实施例中步骤102所示的方法。
存储模块203,可以用于实现上述方法实施例中步骤104所示的方法。
写入模块204,可以用于实现上述方法实施例中步骤105所示的方法。
可选的,该第一存储介质可以包括多个存储区域,该确定模块202可以用于实现上述方法实施例中步骤1021a至步骤1023a所示的方法。
可选的,该写入模块204可以用于实现上述方法实施例中步骤1051a至步骤1054a所示的方法。
应理解的是,本发明实施例的计算机设备还可以用集成电路(application-specific integrated circuit,ASIC)实现,或可编程逻辑器件(programmable logicdevice,PLD)实现,上述PLD可以是复杂程序逻辑器件(complex programmable logicaldevice,CPLD),现场可编程门阵列(field-programmable gate array,FPGA),通用阵列逻辑(generic array logic,GAL)或其任意组合。也可以通过软件实现上述方法实施例提供的数据处理方法,当通过软件实现上述方法实施例提供的数据处理方法时,计算机设备中的各个模块也可以为软件模块。
根据本发明实施例的计算机设备可对应于执行本发明实施例中描述的方法,并且计算机设备中的各个模块的上述和其它操作和/或功能分别为了实现图3所示方法的相应流程,为了简洁,在此不再赘述。
本发明实施例提供了一种计算机设备,该计算机设备可以将目标应用的日志数据存储至第一存储介质中的第一存储区域,并可以根据日志数据的级别的不同,按照不同的刷新频率将日志数据写入第二存储介质。因此对于级别较高的较为重要的日志数据,该计算机设备可以按照较高的刷新频率将其写入第二存储介质,以确保日志数据写入的实时性。而对于级别较低的非重要日志数据,该计算机设备则可以按照较低的刷新频率将其写入第二存储介质,以避免增加对第二存储介质的擦写次数,进而可以避免第二存储介质因擦写次数超过上限而故障,确保了日志数据的正常写入。
图17是本发明实施例提供的另一种计算机设备的结构示意图,如图17所示,该计算机设备还可以包括:
设置模块205,可以用于在该存储模块203将该日志数据存储至该第一存储区域之后,将该第一存储区域的新增数据标识设置为第一标识。
该写入模块204可以用于:
检测该第一存储区域的新增数据标识是否为第一标识;
在检测到该新增数据标识为第一标识时,根据该级别将该日志数据从该第一存储区域写入该第二存储介质。
该写入模块204的功能还可以参考上述方法实施例中步骤1051b至步骤1056b的相关描述,此处不再赘述。
该设置模块204,还可以用于将该第一存储区域的新增数据标识设置为第二标识。
可选的,该第一存储介质可以包括多个存储区域,如图17所示,该计算机设备还可以包括:
获取模块206,可以用于实现上述方法实施例中步骤106所示的方法。
构建模块207,可以用于实现上述方法实施例中步骤107所示的方法。
该写入模块204可以用于:通过遍历该构建模块207构建得到的双向链表,获取该第一存储区域的新增数据标识,并检测该第一存储区域的新增数据标识是否为第一标识。
可选的,该日志写入指令包括该目标应用的标识,该第一存储介质包括多个存储区域,该确定模块202可以用于实现上述方法实施例中步骤1021b至步骤1023b所示的方法。
应理解的是,本发明实施例的计算机设备还可以用ASIC实现,或PLD实现,上述PLD可以是CPLD,FPGA,GAL或其任意组合。也可以通过软件实现图3所示的数据处理方法,当通过软件实现上述方法实施例提供的数据处理方法时,计算机设备中的各个模块也可以为软件模块。
根据本发明实施例的计算机设备可对应于执行本发明实施例中描述的方法,并且计算机设备中的各个模块的上述和其它操作和/或功能分别为了实现上述方法实施例提供的数据处理方法的相应流程,为了简洁,在此不再赘述。
本发明实施例提供了一种计算机设备,该计算机设备可以将目标应用的日志数据存储至第一存储介质中的第一存储区域,并可以根据日志数据的级别的不同,按照不同的刷新频率将日志数据写入第二存储介质。因此对于级别较高的较为重要的日志数据,该计算机设备可以按照较高的刷新频率将其写入第二存储介质,以确保日志数据写入的实时性。而对于级别较低的非重要日志数据,该计算机设备则可以按照较低的刷新频率将其写入第二存储介质,以避免增加对第二存储介质的擦写次数,进而可以避免第二存储介质因擦写次数超过上限而故障,确保了日志数据的正常写入。
本发明实施例还提供了一种计算机设备,参考图18,该计算机设备可以包括:处理器1201、存储器1202、网络接口1203和总线1204。其中,总线1204用于连接处理器1201、存储器1202和网络接口1203。存储器1202可以包括第一存储介质和第二存储介质,例如该第二存储介质可以为闪存或者SSD。通过网络接口1203(可以是有线或者无线)可以实现计算机设备与其他设备之间的通信连接。存储器1202中存储有计算机程序12021,该计算机程序12021用于实现各种应用功能。该处理器1201可以用于执行存储器1202中存储的计算机程序12021来实现上述方法实施例提供的数据处理方法。
应理解,在本发明实施例中,处理器1201可以是CPU,该处理器1201还可以是其他通用处理器、数字信号处理器(DSP)、专用集成电路(ASIC)、现场可编程门阵列(FPGA)、GPU或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者是任何常规的处理器等。
存储器1202可以是易失性存储器或非易失性存储器,或可包括易失性和非易失性存储器两者。其中,非易失性存储器可以是只读存储器(read-only memory,ROM)、可编程只读存储器(programmable ROM,PROM)、可擦除可编程只读存储器(erasable PROM,EPROM)、电可擦除可编程只读存储器(electrically EPROM,EEPROM)或闪存。易失性存储器可以是随机存取存储器(random access memory,RAM),其用作外部高速缓存。通过示例性但不是限制性说明,许多形式的RAM可用,例如静态随机存取存储器(static RAM,SRAM)、动态随机存取存储器(DRAM)、同步动态随机存取存储器(synchronous DRAM,SDRAM)、双倍数据速率同步动态随机存取存储器(double data date SDRAM,DDR SDRAM)、增强型同步动态随机存取存储器(enhanced SDRAM,ESDRAM)、同步连接动态随机存取存储器(synchlink DRAM,SLDRAM)和直接内存总线随机存取存储器(direct rambus RAM,DR RAM)。
总线1204除包括数据总线之外,还可以包括电源总线、控制总线和状态信号总线等。但是为了清楚说明起见,在图中将各种总线都标为总线1204。
应理解,本发明实施例提供的计算机设备可以执行本发明实施例中图3、图6、图7、图10、图11和图13所示的方法,并且计算机设备中的各个模块的上述和其它操作和/或功能分别为了实现图3、图6、图7、图10、图11和图13所示方法的相应流程,为了简洁,在此不再赘述。
上述实施例,可以全部或部分地通过软件、硬件、固件或其他任意组合来实现。当使用软件实现时,上述实施例可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令。在计算机上加载或执行所述计算机程序指令时,全部或部分地产生按照本发明实施例所述的流程或功能。所述计算机可以为通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(DSL))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集合的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质(例如,软盘、硬盘、磁带)、光介质(例如,DVD)、或者半导体介质。半导体介质可以是固态硬盘(solid state drive,SSD)。
以上所述仅为本申请的可选实施例,并不用以限制本申请,凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。
Claims (15)
1.一种数据处理方法,其特征在于,所述方法包括:
计算机设备接收目标应用的日志写入指令,所述计算机设备包括第一存储介质和第二存储介质,所述日志写入指令包括所述目标应用待写入所述第二存储介质的日志数据的级别,所述日志数据的级别与所述日志数据的类型相关,所述日志数据的级别用于指示所述计算机设备按照不同的刷新频率将所述日志数据写入所述第二存储介质;
所述计算机设备确定第一存储区域,所述第一存储区域用于缓存所述日志数据,所述第一存储区域为所述第一存储介质中用于存储所述目标应用的所述日志数据的区域;
所述计算机设备将所述日志数据存储至所述第一存储区域;
所述计算机设备获取所述第一存储区域的剩余时间值,所述剩余时间值的初值由所述计算机设备配置,且所述剩余时间值的初值的大小与所述日志数据的级别的高低负相关;
所述计算机设备检测所述剩余时间值是否为零;
当所述计算机设备检测到所述剩余时间值为零时,所述计算机设备将所述日志数据从所述第一存储区域写入所述第二存储介质;
当所述计算机设备检测到所述剩余时间值大于零时,所述计算机设备将所述剩余时间值减预设差值,并继续执行检测所述剩余时间值是否为零的步骤。
2.根据权利要求1所述的方法,其特征在于,所述第一存储介质包括多个存储区域,所述计算机设备确定第一存储区域,包括:
所述计算机设备将所述多个存储区域中,日志级别与所述日志数据的级别相同的存储区域确定为第一存储区域。
3.根据权利要求2所述的方法,其特征在于,当所述多个存储区域中不存在日志级别与所述日志数据的级别相同的存储区域时,所述方法还包括:
所述计算机设备从所述多个存储区域中的空闲存储区域中确定第一存储区域,并将所述日志数据的级别配置为所述第一存储区域的日志级别。
4.根据权利要求1至3任一所述的方法,其特征在于,在所述计算机设备将所述日志数据存储至所述第一存储区域之后,所述方法还包括:
所述计算机设备将所述第一存储区域的新增数据标识设置为第一标识;
所述计算机设备将所述日志数据从所述第一存储区域写入所述第二存储介质,包括:
所述计算机设备检测所述第一存储区域的新增数据标识是否为第一标识;
在所述计算机设备检测到所述新增数据标识为第一标识时,根据所述日志数据的级别将所述日志数据从所述第一存储区域写入所述第二存储介质;
在根据所述日志数据的级别将所述日志数据从所述第一存储区域写入所述第二存储介质之后,所述方法还包括:所述计算机设备将所述第一存储区域的新增数据标识设置为第二标识。
5.根据权利要求4所述的方法,其特征在于,所述第一存储介质包括多个存储区域,在所述计算机设备检测所述第一存储区域的新增数据标识是否为第一标识之前,所述方法还包括:
所述计算机设备获取所述多个存储区域中非空闲存储区域的描述信息,所述描述信息包括:所述非空闲存储区域的新增数据标识,所述非空闲存储区域为存储有日志数据的存储区域;
所述计算机设备基于所述非空闲存储区域的描述信息,构建双向链表,所述双向链表中的每个节点存储有一个所述非空闲存储区域的描述信息;
所述计算机设备检测所述第一存储区域的新增数据标识是否为第一标识,包括:
所述计算机设备通过遍历所述双向链表,获取所述第一存储区域的新增数据标识,并检测所述第一存储区域的新增数据标识是否为第一标识。
6.根据权利要求1至3任一所述的方法,其特征在于,所述日志写入指令包括所述目标应用的标识,所述第一存储介质包括多个存储区域,所述计算机设备确定第一存储区域,包括:
所述计算机设备将所述多个存储区域中,日志级别与所述日志数据的级别相同,且应用标识与所述目标应用的标识相同的存储区域确定为第一存储区域。
7.根据权利要求6所述的方法,其特征在于,当所述多个存储区域中不存在日志级别与所述日志数据的级别相同,且应用标识与所述目标应用的标识相同的存储区域时,所述方法还包括:
所述计算机设备从所述多个存储区域中的空闲存储区域中确定第一存储区域,并将所述日志数据的级别配置为所述第一存储区域的日志级别,将所述目标应用的标识配置为所述第一存储区域的应用标识。
8.一种计算机设备,其特征在于,所述计算机设备包括第一存储介质和第二存储介质,所述计算机设备还包括:
接收模块,用于接收目标应用的日志写入指令,所述日志写入指令包括所述目标应用待写入所述第二存储介质的日志数据的级别,所述日志数据的级别与所述日志数据的类型相关,所述日志数据的级别用于指示所述计算机设备按照不同的刷新频率将所述日志数据写入所述第二存储介质;
确定模块,用于确定第一存储区域,所述第一存储区域用于缓存所述日志数据,所述第一存储区域为所述计算机设备的第一存储介质中用于存储所述目标应用的所述日志数据的区域;
存储模块,用于将所述日志数据存储至所述第一存储区域;
写入模块,用于获取所述第一存储区域的剩余时间值,所述剩余时间值的初值由所述计算机设备配置,且所述剩余时间值的初值的大小与所述日志数据的级别的高低负相关;检测所述剩余时间值是否为零;当检测到所述剩余时间值为零时,将所述日志数据从所述第一存储区域写入所述第二存储介质;当检测到所述剩余时间值大于零时,将所述剩余时间值减预设差值,并继续执行检测所述剩余时间值是否为零的步骤。
9.根据权利要求8所述的计算机设备,其特征在于,所述第一存储介质包括多个存储区域,所述确定模块,用于:
将所述多个存储区域中,日志级别与所述日志数据的级别相同的存储区域确定为第一存储区域。
10.根据权利要求9所述的计算机设备,其特征在于,所述确定模块,还用于:
当所述多个存储区域中不存在日志级别与所述日志数据的级别相同的存储区域时,从所述多个存储区域中的空闲存储区域中确定第一存储区域,并将所述日志数据的级别配置为所述第一存储区域的日志级别。
11.根据权利要求8至10任一所述的计算机设备,其特征在于,所述计算机设备还包括:
设置模块,用于在所述存储模块将所述日志数据存储至所述第一存储区域之后,将所述第一存储区域的新增数据标识设置为第一标识;
所述写入模块,用于:
检测所述第一存储区域的新增数据标识是否为第一标识;
在检测到所述新增数据标识为第一标识时,根据所述日志数据的级别将所述日志数据从所述第一存储区域写入所述第二存储介质;
所述设置模块,还用于将所述第一存储区域的新增数据标识设置为第二标识。
12.根据权利要求11所述的计算机设备,其特征在于,所述第一存储介质包括多个存储区域,所述计算机设备还包括:
获取模块,用于在所述写入模块检测所述第一存储区域的新增数据标识是否为第一标识之前,获取所述多个存储区域中非空闲存储区域的描述信息,所述描述信息包括:所述非空闲存储区域的新增数据标识,所述非空闲存储区域为存储有日志数据的存储区域;
构建模块,用于基于所述非空闲存储区域的描述信息,构建双向链表,所述双向链表中的每个节点存储有一个所述非空闲存储区域的描述信息;
所述写入模块,用于:
通过遍历所述双向链表,获取所述第一存储区域的新增数据标识,并检测所述第一存储区域的新增数据标识是否为第一标识。
13.根据权利要求8至10任一所述的计算机设备,其特征在于,所述日志写入指令包括所述目标应用的标识,所述第一存储介质包括多个存储区域,所述确定模块,用于:
将所述多个存储区域中,日志级别与所述日志数据的级别相同,且应用标识与所述目标应用的标识相同的存储区域确定为第一存储区域。
14.根据权利要求13所述的计算机设备,其特征在于,所述确定模块,还用于:
当所述多个存储区域中不存在日志级别与所述日志数据的级别相同,且应用标识与所述目标应用的标识相同的存储区域时,从所述多个存储区域中的空闲存储区域中确定第一存储区域,并将所述日志数据的级别配置为所述第一存储区域的日志级别,将所述目标应用的标识配置为所述第一存储区域的应用标识。
15.一种计算机设备,其特征在于,所述计算机设备包括:存储器,处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述存储器包括第一存储介质和第二存储介质,所述处理器执行所述计算机程序时实现如权利要求1至7任一所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811044102.8A CN110888769B (zh) | 2018-09-07 | 2018-09-07 | 数据处理方法及计算机设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811044102.8A CN110888769B (zh) | 2018-09-07 | 2018-09-07 | 数据处理方法及计算机设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110888769A CN110888769A (zh) | 2020-03-17 |
CN110888769B true CN110888769B (zh) | 2021-09-07 |
Family
ID=69744632
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811044102.8A Active CN110888769B (zh) | 2018-09-07 | 2018-09-07 | 数据处理方法及计算机设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110888769B (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112306980A (zh) * | 2020-10-30 | 2021-02-02 | 深圳市元征科技股份有限公司 | 日志处理方法及终端设备 |
CN113204317A (zh) * | 2021-07-06 | 2021-08-03 | 深圳华云信息系统有限公司 | 数据存储方法、装置、电子设备和计算机可读存储介质 |
CN116719682A (zh) * | 2023-06-05 | 2023-09-08 | 珠海妙存科技有限公司 | 数据保持测试方法和系统、电子设备、存储介质 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102141955A (zh) * | 2011-03-30 | 2011-08-03 | 东方通信股份有限公司 | 一种基于Linux的内核日志系统及实现方法 |
CN103200037A (zh) * | 2013-04-11 | 2013-07-10 | 深圳市共进电子股份有限公司 | 一种syslog日志存储方法 |
CN104461844A (zh) * | 2014-10-31 | 2015-03-25 | 大唐移动通信设备有限公司 | 一种基于规则的日志服务方法 |
CN105868093A (zh) * | 2016-04-25 | 2016-08-17 | 上海斐讯数据通信技术有限公司 | 一种日志写入方法及服务端 |
CN107609120A (zh) * | 2017-09-13 | 2018-01-19 | 广东欧珀移动通信有限公司 | 日志信息上报方法、装置及存储介质、adsp和终端 |
CN107979490A (zh) * | 2017-11-17 | 2018-05-01 | 北京联想超融合科技有限公司 | 日志数据的记录方法及服务器集群 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8321433B1 (en) * | 2011-05-06 | 2012-11-27 | Sap Ag | Systems and methods for business process logging |
-
2018
- 2018-09-07 CN CN201811044102.8A patent/CN110888769B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102141955A (zh) * | 2011-03-30 | 2011-08-03 | 东方通信股份有限公司 | 一种基于Linux的内核日志系统及实现方法 |
CN103200037A (zh) * | 2013-04-11 | 2013-07-10 | 深圳市共进电子股份有限公司 | 一种syslog日志存储方法 |
CN104461844A (zh) * | 2014-10-31 | 2015-03-25 | 大唐移动通信设备有限公司 | 一种基于规则的日志服务方法 |
CN105868093A (zh) * | 2016-04-25 | 2016-08-17 | 上海斐讯数据通信技术有限公司 | 一种日志写入方法及服务端 |
CN107609120A (zh) * | 2017-09-13 | 2018-01-19 | 广东欧珀移动通信有限公司 | 日志信息上报方法、装置及存储介质、adsp和终端 |
CN107979490A (zh) * | 2017-11-17 | 2018-05-01 | 北京联想超融合科技有限公司 | 日志数据的记录方法及服务器集群 |
Also Published As
Publication number | Publication date |
---|---|
CN110888769A (zh) | 2020-03-17 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR101044220B1 (ko) | 비휘발성 메모리 캐시 성능 향상 | |
US8621144B2 (en) | Accelerated resume from hibernation in a cached disk system | |
US10838829B2 (en) | Method and apparatus for loading data from a mirror server and a non-transitory computer readable storage medium | |
US8775755B2 (en) | Peer-to-peer transcendent memory | |
US20150331624A1 (en) | Host-controlled flash translation layer snapshot | |
JP4808275B2 (ja) | ネットワークブートシステム | |
CN110888769B (zh) | 数据处理方法及计算机设备 | |
JP5290287B2 (ja) | ネットワークブートシステム | |
US20070067560A1 (en) | System for controlling spinning of disk | |
US20170075614A1 (en) | Memory system and host apparatus | |
CN110998562A (zh) | 在分布式集群系统中隔开节点 | |
WO2017050064A1 (zh) | 共享内存数据库的内存管理方法及装置 | |
CN107329704B (zh) | 一种缓存镜像方法及控制器 | |
US7085907B2 (en) | Dynamic reconfiguration of memory in a multi-cluster storage control unit | |
US10198180B2 (en) | Method and apparatus for managing storage device | |
CN115639971B (zh) | 数据写入方法、装置、电子设备、存储介质及程序产品 | |
CN112667422A (zh) | 内存故障处理方法及装置、计算设备、存储介质 | |
US11861349B2 (en) | Modular firmware updates in an information handling system | |
US10620867B2 (en) | System and method for performing wear leveling at a non-volatile firmware memory | |
CN113434470A (zh) | 数据分布方法、装置及电子设备 | |
US20170046304A1 (en) | Computing system management using shared memory | |
KR102123701B1 (ko) | 네트워크 부트 시스템 | |
US20220261354A1 (en) | Data access method and apparatus and storage medium | |
US9298602B2 (en) | Nonvolatile random access memory use | |
CN113722131A (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 |