CN107180051B - 一种日志管理方法、服务器 - Google Patents
一种日志管理方法、服务器 Download PDFInfo
- Publication number
- CN107180051B CN107180051B CN201610140111.1A CN201610140111A CN107180051B CN 107180051 B CN107180051 B CN 107180051B CN 201610140111 A CN201610140111 A CN 201610140111A CN 107180051 B CN107180051 B CN 107180051B
- Authority
- CN
- China
- Prior art keywords
- buffer
- log
- state
- transaction
- buffer area
- 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
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/21—Design, administration or maintenance of databases
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/34—Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
- G06F11/3442—Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment for planning or managing the needed capacity
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/17—Details of further file system functions
- G06F16/1734—Details of monitoring file system events, e.g. by the use of hooks, filter drivers, logs
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/27—Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/28—Databases characterised by their database models, e.g. relational or object models
- G06F16/284—Relational databases
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2201/00—Indexing scheme relating to error detection, to error correction, and to monitoring
- G06F2201/80—Database-specific techniques
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2201/00—Indexing scheme relating to error detection, to error correction, and to monitoring
- G06F2201/87—Monitoring of transactions
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Databases & Information Systems (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- Computer Hardware Design (AREA)
- Quality & Reliability (AREA)
- Computing Systems (AREA)
- Debugging And Monitoring (AREA)
Abstract
本发明实施例公开一种日志管理方法、服务器,其中方法包括如下步骤:检测至少一个日志缓冲区的关联信息,每个日志缓冲区包括处于工作状态的第一缓冲区和处于归档状态的第二缓冲区,在工作状态下的缓冲区用于记录日志,在归档状态的缓冲区用于归档日志,当关联信息满足预设条件时,将每个日志缓冲区中的第一缓冲区的状态调整为归档状态,且将第二缓冲区的状态调整为工作状态,将每个日志缓冲区中处于归档状态的第一缓冲区的日志进行归档,且在处于工作状态的第二缓冲区中记录日志。采用本发明,能够在两个缓冲区中分别执行日志记录工作和日志归档、且可以并行操作,提高了服务器的日志记录和日志归档效率。
Description
技术领域
本发明涉及数据传输技术领域,尤其涉及一种日志管理方法、服务器。
背景技术
在数据库系统中,日志是事务对数据库进行的各种操作的记录,是撤销事务和出现故障时恢复事务的依据。现有技术中,完成一次日志管理需要包括:在事务执行时,将事务生成的日志记录到日志缓冲区,其中,一个事务可以产生一个或多个日志,在事务执行完毕时,将该事务在日志缓冲区中的日志写到磁盘中,或者在一些特定时刻(例如,日志缓冲区写满等情况下)将日志缓冲区中已经执行完毕的事务的日志写到磁盘中。
而现有的数据库系统大都采用集中式的日志缓冲区,这样在将日志缓冲区的日志写入磁盘的过程中,需要在日志缓冲区中暂停插入日志。因此,会存在事务中断,进而影响在数据库系统中的日志记录和日志归档的效率。
发明内容
本发明实施例提供一种日志管理方法、服务器,能够在两个缓冲区中分别执行日志记录工作和日志归档、且可以并行操作,提高了服务器的日志记录和日志归档效率。
本发明实施例第一方面提供了一种日志管理方法,包括:检测至少一个日志缓冲区的关联信息,每个日志缓冲区包括处于工作状态的第一缓冲区和处于归档状态的第二缓冲区,当所述关联信息满足预设条件时,将每个日志缓冲区中的所述第一缓冲区的状态调整为归档状态,且将所述第二缓冲区的状态调整为工作状态,将每个日志缓冲区中处于归档状态的所述第一缓冲区的日志进行归档,且在处于工作状态的所述第二缓冲区中记录日志。其中,在所述工作状态下的缓冲区用于记录日志,在所述归档状态的缓冲区用于日志进行归档,所述关联信息包括所述每个日志缓冲区中所述第一缓冲区和所述第二缓冲区的信息,所述预设条件与所述关联信息相对应。可选的,所述服务器将缓冲区划分为至少一个日志缓冲区,可按照预设时间间隔检测至少一个日志缓冲区的关联信息。可选的,所述服务器可处于归档状态的缓冲区的日志保存至非易失性器(non-volatile memory,NVM),NVM是当电源关掉后所存储的数据不会丢失的存储器,这样将日志归档到NVM后,能够长期保存日志。进一步,所述服务器将调整为归档状态的第一缓冲区中的日志进行归档,并在调整为工作状态的第二缓冲区中继续记录由新的事务产生的日志,这样能够在两个缓冲区中分别执行日志记录工作和日志归档、且可以并行操作,提高了服务器的日志记录和日志归档效率。
结合第一方面,在第一方面的第一种实现方式中,对每个检测到的事务分配一个日志缓冲区,将所述每个事务产生的日志记录于所述每个事务对应的处于工作状态的缓冲区中。其中,每个所述检测到的事务对应日志缓冲区与所述检测到的事务中的其他检测到的事务的日志缓冲区不同,即不同事务对应不同的日志缓冲区。这样,若有多个事务产生日志时,所述服务器可将各个事务所产生的日志分别写入所分配的日志缓冲区中。可行的方案中,所述服务器对划分的每一个日志缓冲区标记缓冲区编号,以区分各个日志缓冲区,当检测到至少一个事务时,对所述事务分配缓冲区编号,已将所述事务所产生的日志写入所分配的缓冲区编号对应的日志缓冲区中,以便于管理多个日志缓冲区。可选的,可以在记录日志的处于工作状态的缓冲区中加入时间戳信息,所述时间戳信息用于表示所述日志在所述处于工作状态的缓冲区中的记录时刻,以便于记录各个事务所产生日志的先后顺序,有助于提高服务器对多事务并发所产生日志的管理效率。
结合第一方面的第一种实现方式,在第一方面的第二种实现方式中,还包括:所述检测到的事务中的一目标事务产生的日志的占用空间大于所述目标事务对应的目标日志缓冲区的处于工作状态的缓冲区的容量,在所述目标日志缓冲区能够增加扩展空间情况下,在所述扩展空间中继续记录所述目标事务产生的日志。进一步,在所述目标日志缓冲区不能增加扩展空间情况下,对所述目标事务重新分配日志缓冲区,并在重新分配的所述日志缓冲区的处于工作状态的缓冲区中记录所述目标事务产生的日志。可以理解的是,所需增加的扩展空间是指能够满足所述目标事务产生的日志的占用空间的空间。这样能够对产生不同大小日志的事务进行及时处理,以保证事务的一致性。
结合第一方面的第一种实现方式或第一方面的第二种实现方式,在第一方面的第三种实现方式中,在记录由每个所述检测到的事务产生的日志的过程中,标记所述检测到的事务为待归档事务,所述待归档事务表示事务的日志已记录完毕,这样能够统计到待归档事务的数量等信息,便于所述服务器根据待归档事务的数量,确定是否调整第一缓冲区和第二缓冲区的状态。
结合第一方面、第一方面的第一种实现方式、第一方面的第二种实现方式或第一方面的第三种实现方式,在第一方面的第四种实现方式中,所述方法还包括:在将每个日志缓冲区中处于归档状态的所述第一缓冲区的日志进行归档之后,释放所述第一缓冲区。并且所述服务器在所述第一缓冲区释放完毕后,才有可能对第一缓冲区和第二缓冲区的工作状态进行调整。
结合第一方面、第一方面的第一种实现方式、第一方面的第二种实现方式、第一方面的第三种实现方式或第一方面的第四种实现方式,在第一方面的第五种实现方式中,所述关联信息包括连续时长和释放状态,所述连续时长用于记录所述每个日志缓冲区中所述第一缓冲区本次处于工作状态的时长或所述第二缓冲区本次处于归档状态的时长,所述释放状态表示所述每个日志缓冲区中所述第二缓冲区的日志是否释放完毕;所述预设条件包括所述连续时长大于第一阈值且所述释放状态为日志释放完毕。可行的方案中,所述服务器可通过记录每一次处于工作状态的缓冲区和处于归档状态的缓冲区的状态调整时刻,确定最近一次状态调整时刻和当前时刻之间的相隔时长,进而确定所述第一缓冲区本次处于工作状态的时长或所述第二缓冲区本次处于归档状态的时长;处于归档状态的缓冲区的日志释放完毕是指每个处于归档状态的缓冲区的日志被完全清除。
结合第一方面的第一种实现方式或第一方面的第二种实现方式或第一方面的第三种实现方式或第一方面的第四种实现方式或第一方面的第五种实现方式,在第一方面的第六种实现方式中,所述关联信息包括缓冲区占用率和释放状态,所述缓冲区占用率用于表示所述每个日志缓冲区中处于工作状态的所述第一缓冲区的存储空间占用率,所述释放状态表示所述每个日志缓冲区中所述第二缓冲区的日志是否释放完毕;所述预设条件包括所述占用率大于第二阈值且所述释放状态为日志释放完毕。其中,所述占用率可在记录由事务产生的日志过程中进行统计。
结合第一方面的第三种实现方式或第一方面的第四种实现方式,在第一方面的第七种实现方式中,所述关联信息包括事务数量和释放状态,所述事务数量用于表示所述至少一个日志缓冲区中的待归档事务的数量,所述释放状态表示每个日志缓冲区中所述第二缓冲区的日志是否释放完毕;所述预设条件包括所述事务数量大于第三阈值且所述释放状态为日志释放完毕。
结合第一方面的第一种实现方式、第一方面的第二种实现方式、第一方面的第三种实现方式、第一方面的第四种实现方式、第一方面的第五种实现方式、第一方面的第六种实现方式、第一方面的第七种实现方式中,在第一方面的第八种实现方式中,在调整为归档状态的所述第一缓冲区中存在未完成日志记录的事务的情况下,所述服务器完成对所述第一缓冲区中未完成日志记录的事务所产生的日志的记录;将每个日志缓冲区的所述第一缓冲区的日志进行归档,所述第一缓冲区中的事务均已完成日志记录。
本发明实施例第二方面提供了一种服务器,包括:
检测单元,用于检测至少一个日志缓冲区的关联信息,所述至少一个日志缓冲区中每个日志缓冲区包括处于工作状态的第一缓冲区和处于归档状态的第二缓冲区,在所述工作状态下的缓冲区用于记录日志,在所述归档状态的缓冲区用于归档日志,所述关联信息包括所述每个日志缓冲区中所述第一缓冲区和所述第二缓冲区的信息;
调整单元,用于当所述关联信息满足预设条件时,将每个日志缓冲区中的所述第一缓冲区的状态调整为归档状态,且将所述第二缓冲区的状态调整为工作状态;
处理单元,用于将每个日志缓冲区中处于归档状态的所述第一缓冲区的日志进行归档,且在处于工作状态的所述第二缓冲区中记录日志。
在一些实现的方式中,该服务器的具体实施方式可参见第一方面所提供的日志管理方法中的各种实现方式。所述功能可以通过硬件实现,也可以通过硬件执行相应地软件实现。所述硬件或软件包括一个或多个与上述功能相对应的模块。
本发明实施例第三方面提供了一种服务器,包括处理器和存储器,其中,所述服务器可例如数据库服务器,可应用于大规模处理的数据库处理系统,所述数据库处理系统包括但不限于:分布式磁盘数据库系统、集群数据库系统和MPP数据库系统。且所述服务器可以为普通服务器,也可以为云服务器;所述存储器用于存储日志管理的程序代码,所述处理器用于调用所述存储器存储的程序代码执行上述第一方面或第一方面任一种实现方式所描述的日志管理方法。所述服务器还可以包括通信接口,用于服务器与存储设备、客户端或通信网络通信。
本发明实施例第四方面提供了一种计算机存储介质,用于储存为上述服务器所用的计算机软件指令,其包含用于执行上述方面为服务器所设计的程序。
本发明实施例中,服务器、存储设备的名字对设备本身不构成限定,在实际实现中,这些设备可以以其他名称出现。只要各个设备的功能和本发明类似,属于本发明权利要求及其等同技术的范围之内。
相较于现有技术,本发明实施例中,通过将一个日志缓冲区划分为处于工作状态的第一缓冲区和处于归档状态的第二缓冲区,这样能够在两个缓冲区中分别执行日志记录工作和日志归档,且可以并行操作,这样避免了集中式日志缓冲区中日志记录工作和日志归档无法并行的情况发生,提高了服务器的日志记录和日志归档效率。
本发明的这些方面或其他方面在以下实施例的描述中会更加简明易懂。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明实施例的一种可能的系统网络示意图;
图2是本发明实施例提供的一种日志管理方法的流程示意图;
图3是本发明实施例提供的另一种日志管理方法的流程示意图;
图4是本发明实施例提供的一种服务器的结构示意图;
图5是本发明实施例提供的另一种服务器的结构示意图;
图6是本发明实施例提供的另一种服务器的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有付出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
需要说明的是,在本发明实施例中使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本发明。在本发明实施例和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本文中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。另外,本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”、“第三”和“第四”等是用于区别不同对象,而不是用于描述特定顺序。此外,术语“包括”和“具有”以及它们任何变形,意图在于覆盖不排他的包含。例如包含了一系列步骤或单元的过程、方法、系统、产品或设备没有限定于已列出的步骤或单元,而是可选地还包括没有列出的步骤或单元,或可选地还包括对于这些过程、方法、产品或设备固有的其它步骤或单元。
请参见图1,是本发明实施例提供的一种可能的系统网络示意图。如图1所示,该系统网络示意图包括:客户端、服务器和存储设备。当客户端通过服务器访问存储设备中的数据时,例如,对数据的追加、删除、更新、查询等操作时,服务器对客户端访问数据过程中所产生的日志进行记录,日志的记录空间为日志缓冲区,日志缓冲区是小型的、用于短期存储将写入到存储设备上的日志的临时区域。可行的方案中,客户端对数据的访问可能是一个事务,事务是更新各种数据一个程序执行单元,因此一个事务可以产生一个或多个日志,在事务执行完毕时,将该事务在日志缓冲区中的日志写到存储设备中,或者在一些特定时刻(例如,日志缓冲区写满等情况下)将日志缓冲区中已经执行完毕的事务的日志写到存储设备中。
其中,客户端可以通过广域网(Wide Area Network,WAN)、局域网(Local AreaNetwork,LAN)、无线局域网(Wireless LAN,WLAN)与服务器通信连接。可选的,存储设备可以与服务器合设、也可以单独设立,当存储设备与服务器单独设立时,服务器和存储设备可以以直连式存储(Direct Attached Storage,DAS)、网络存储技术(Network StorageTechnologies,NAS)、存储区域网络(Storage Area Network,SAN)等网络架构进行通信连接,本发明实施例对此不做限定。在图1所示的可能的系统网络示意图,客户端可以包括移动手机、平板电脑、个人数字助理(Personal Digital Assistant,PDA)、移动互联网设备(Mobile Internet Device,MID)、智能穿戴设备(如智能手表、智能手环)等各类客户端设备;服务器可以包括数据库服务器、文件服务器、邮件服务器等各类服务器,且所述服务器可以为普通服务器,也可以为云服务器;存储设备可以包括光盘机、磁盘阵列、磁带库等各类存储设备,对于客户端、服务器和存储设备本发明实施例不作限定。
请参见图2,为本发明实施例提供了一种日志管理方法的流程示意图。如图2所示,本发明实施例的所述方法可以包括以下步骤S201-步骤S203。可行的方案中,该日志管理方法可应用于图1所示的系统网络示意图的服务器中,该日志管理方法包括但不限于以下步骤。
S201,检测至少一个日志缓冲区的关联信息,所述至少一个日志缓冲区中每个日志缓冲区包括处于工作状态的第一缓冲区和处于归档状态的第二缓冲区。
具体的,服务器检测至少一个日志缓冲区的关联信息,所述至少一个日志缓冲区中每个日志缓冲区包括处于工作状态的第一缓冲区和处于归档状态的第二缓冲区。其中,在所述工作状态下的缓冲区用于记录日志,在所述归档状态的缓冲区用于日志进行归档,所述关联信息包括所述每个日志缓冲区中所述第一缓冲区和所述第二缓冲区的信息,例如,所述第一缓冲区的工作进度、缓冲区的空间容量的占用率,已进行日志记录的日志缓冲区的数量,所述第二缓冲区的归档进度等等。可行的方案中,所述服务器可按照预设时间间隔检测至少一个日志缓冲区的关联信息。
可选的,所述至少一个日志缓冲区对应的日志缓冲区的数量和每一个日志缓冲区的空间容量是所述服务器确定,例如,所述至少一个日志缓冲区可以由多个具备相同空间容量的缓冲区组成;或者,所述至少一个日志缓冲区可以由具备不同空间容量的多个缓冲区组成。进一步,由于每一个日志缓冲区包括用于记录日志的缓冲区和用于将日志进行归档的缓冲区,因此,每一个日志缓冲区在运行过程中必然存在第一缓冲区和第二缓冲区,其中,第一缓冲区和第二缓冲区的名字对缓冲区本身不构成限定,还可以以其他名称出现。
S202,当所述关联信息满足预设条件时,将每个日志缓冲区中的所述第一缓冲区的状态调整为归档状态,且将所述第二缓冲区的状态调整为工作状态。
具体的,当所述关联信息满足预设条件时,将每个日志缓冲区中的所述第一缓冲区的状态调整为归档状态,且将所述第二缓冲区的状态调整为工作状态。可以理解的是,调整所述第一缓冲区和所述第二缓冲区的状态可以表示为,对记录日志的缓冲区调整为执行对日志进行归档,将完成日志归档的缓冲区调整为记录日志。
举例来说,所述关联信息包括连续时长和释放状态,所述连续时长用于记录所述每个日志缓冲区中所述第一缓冲区本次处于工作状态的时长或所述第二缓冲区本次处于归档状态的时长,所述释放状态表示所述每个日志缓冲区中所述第二缓冲区的日志是否释放完毕。相应地,所述预设条件包括所述连续时长大于第一阈值且所述释放状态为日志释放完毕。可行的方案中,所述服务器可通过记录每一次处于工作状态的缓冲区和处于归档状态的缓冲区的状态调整时刻,确定最近一次状态调整时刻和当前时刻之间的相隔时长,进而确定所述第一缓冲区本次处于工作状态的时长或所述第二缓冲区本次处于归档状态的时长。其中,所述第一阈值是由所述服务器设定的,处于归档状态的缓冲区的日志释放完毕是指每个处于归档状态的缓冲区的日志被完全清除,可行的方案中,所述处于归档状态的缓冲区的日志是否释放完毕可通过表示释放完毕的标识进行区分,例如,用“1”表示处于归档状态的缓冲区的日志释放完毕,用“0”表示处于归档状态的缓冲区的日志未释放完毕。
又举例来说,所述关联信息包括缓冲区占用率和释放状态,所述缓冲区占用率用于表示所述每个日志缓冲区中处于工作状态的所述第一缓冲区的存储空间占用率,所述释放状态请参见上述介绍。相应地,所述预设条件包括所述占用率大于第二阈值且所述释放状态为日志释放完毕。其中,所述占用率可在记录由事务产生的日志过程中进行统计。
又举例来说,所述关联信息包括事务数量和释放状态,所述事务数量用于表示所述至少一个日志缓冲区中的待归档事务的数量,所述释放状态请参见上述介绍。相应地,所述预设条件包括所述事务数量大于第三阈值且所述释放状态为日志释放完毕。
需要说明的是,对于所述关联信息和所述预设条件,以上仅为举例说明,本发明实施例对此不做限定。
S203,将每个日志缓冲区中处于归档状态的所述第一缓冲区的日志进行归档,且在处于工作状态的所述第二缓冲区中记录日志。
具体的,所述服务器将每个日志缓冲区中处于归档状态的所述第一缓冲区的日志进行归档,且在处于工作状态的所述第二缓冲区中记录日志。可以理解为,缓冲区在调整后的状态中分别继续工作。由于每个日志缓冲区包括两个状态的缓冲区,因此可以实现日志记录工作和日志归档并行执行,提高了服务器的日志记录和日志归档效率。
可选的,所述服务器对所述第一缓冲区的日志进行归档可以是将日志所保存到的非易失性器(non-volatile memory,NVM),该非易失存储器可以是所述服务器内部的存储器,也可以是单独设立的存储器,NVM可以分为只读存储器(read-only memory,ROM)和闪存(Flash memory)。其中,ROM又包括:可编程只读存储器(programmable read-only memory,PROM)、电可改写只读存储器(electrically alterable read-only memory,EAROM)、可擦可编程只读存储器(erasable programmable read-only memory,EPROM)和电可擦可编程只读存储器(electrically erasable programmable read-only memory,EEPROM)。这样将日志归档到NVM后,能够长期保存日志。本发明实施例对存储设备的类型不做限定。
需要说明的是,所述服务器可设置多个进程执行步骤S201-步骤S203,举例来说,所述服务器可以设置管理进程和后台守护进行分别执行,所述管理进程可执行步骤S201、步骤S202和步骤S203中的在处于工作状态的缓冲区中记录日志,负责管理在缓冲区中记录日志并检测日志缓冲区的关联信息,在所述至少一个日志缓冲区满足预设条件时,将所述至少一个日志缓冲区中的第一缓冲区和第二缓冲区的状态进行调整;所述后台守护进程可执行步骤S203中的将每个日志缓冲区中处于归档状态的所述第一缓冲区的日志进行归档,即为将日志进行归档的工作。以上仅为举例说明,本发明实施例采用单线程或者多线程以及对进程工作的划分不做限定。
在本发明实施例中,通过将一个日志缓冲区划分为处于工作状态的第一缓冲区和处于归档状态的第二缓冲区,这样能够在两个缓冲区中分别执行日志记录工作和日志归档,且可以并行操作,这样避免了集中式日志缓冲区中日志记录工作和日志归档无法并行的情况发生,提高了服务器的日志记录和日志归档效率。
请参见图3,为本发明实施例提供了另一种日志管理方法的流程示意图。如图3所示,本发明实施例的所述方法可以包括以下步骤S301-步骤S312。可行的方案中,该日志管理方法可应用于图1所示的系统网络示意图的服务器中,该日志管理方法包括但不限于以下步骤。
S301,对每个检测到的事务分配一个日志缓冲区。
具体的,服务器对每个检测到的事务分配一个日志缓冲区,每个所述检测到的事务对应日志缓冲区与所述检测到的事务中的其他检测到的事务的日志缓冲区不同。可行的方案中,所述服务器可以对每一个日志缓冲区标记缓冲区编号,以区分各个日志缓冲区,当检测到至少一个事务时,对所述事务分配缓冲区编号,将所述事务所产生的日志写入所分配的缓冲区编号对应的日志缓冲区中。
这样,若有多个事务对同一数据块执行操作时,所述服务器可将各个事务执行操作时所产生的日志分别写入所分配的日志缓冲区的处于工作状态的缓冲区中。可行的方案中,可以在记录日志的处于工作状态的缓冲区中加入时间戳信息,所述时间戳信息用于表示所述日志在所述处于工作状态的缓冲区中的记录时刻,以便于记录各个事务所产生日志的先后顺序,有助于提高服务器对多事务并发所产生日志的管理效率。
可选的,所述至少一个日志缓冲区对应的日志缓冲区的数量和每一个日志缓冲区的空间容量是所述服务器确定,例如,所述至少一个日志缓冲区可以由多个具备相同空间容量的缓冲区组成;或者,所述至少一个日志缓冲区可以由具备不同空间容量的多个缓冲区组成。进一步,由于每一个日志缓冲区包括用于记录日志的缓冲区和用于将日志进行归档的缓冲区,因此,每一个日志缓冲区在运行过程中必然存在第一缓冲区和第二缓冲区,其中,第一缓冲区和第二缓冲区的名字对缓冲区本身不构成限定,还可以以其他名称出现。
S302,将所述每个事务产生的日志记录于所述每个事务对应的处于工作状态的缓冲区中。
具体的,所述服务器将所述每个事务产生的日志记录于所述每个事务对应的处于工作状态的缓冲区中。其中,对应的处于工作状态的缓冲区是指所述服务器对该事务所分配的日志缓冲区中工作状态的缓冲区。
S303,检测到的事务中的一目标事务产生的日志的占用空间大于所述目标事务对应的目标日志缓冲区的处于工作状态的缓冲区的容量时,判断所述目标日志缓冲区能否增加扩展空间。
具体的,当检测到的事务中的目标事务产生的日志的占用空间大于对应的目标日志缓冲区的处于工作状态的缓冲区的容量时,所述服务器判断所述目标日志缓冲区能否增加扩展空间以继续记录所述目标事务产生的日志;当判断结果为否时,执行步骤S304,当判断结果为是时,执行步骤S305。其中目标事务是检测到的事务中的任意一个事务。可行的方案中,由于各个缓冲区编号对应的日志缓冲区之间有可能存在可以存放数据的缓冲空间,因此,当目标事务产生的日志的占用空间大于对应的目标日志缓冲区的处于工作状态的缓冲区的容量时,通过能否增加扩展空间的方式进行处理。
S304,对所述目标事务重新分配日志缓冲区,并在重新分配的所述日志缓冲区的处于工作状态的缓冲区中记录所述目标事务产生的日志。
具体的,在所述目标日志缓冲区不能增加扩展空间情况下,服务器对所述目标事务重新分配日志缓冲区,并在重新分配的所述日志缓冲区的处于工作状态的缓冲区中记录所述目标事务产生的日志。可行的方案中,当所述服务器不能对所述目标缓冲区扩展时,则确定所述目标日志缓冲区为不能增加扩展空间的情况;当所述服务器能够对所述目标缓冲区扩展但无法满足所述目标事务产生的日志的占用空间时,则确定所述目标日志缓冲区为不能增加扩展空间的情况。可以理解的是,所需增加的扩展空间是指能够满足所述目标事务产生的日志的占用空间。
S305,在所述扩展空间中继续记录所述目标事务产生的日志。
具体的,在所述目标日志缓冲区能够增加扩展空间情况下,在所述扩展空间中继续记录所述目标事务产生的日志。可行的方案中,当所述服务器能够对所述目标缓冲区扩展且能够满足所述目标事务产生的日志的占用空间时,则确定所述目标日志缓冲区为能增加扩展空间的情况。
需要说明的是,步骤S303、步骤S304和步骤S305是对目标事务产生的日志的占用空间大于目标日志缓冲区的处于工作状态的缓冲区的容量的情况进行的具体说明,而步骤S303中的判断所述目标日志缓冲区能否增加扩展空间可作为可选步骤进行执行,本发明实施例对此不做限定。
S306,在记录由每个所述检测到的事务产生的日志的过程中,标记所述检测到的事务为待归档事务。
具体的,在记录由每个所述检测到的事务产生的日志的过程中,所述服务器标记所述检测到的事务为待归档事务,所述待归档事务表示事务的日志已记录完毕。
可行的方案中,一个事务对应于一个唯一识别所述事务的事务标识,待归档事务通过待归档标识表示,一种方式是:所述服务器可创建事务列表,所述事务列表包括在所述至少一个日志缓冲区中进行日志记录的事务对应的事务标识,当某一个事务的日志记录完毕时,将事务列表中的这一事务对应的事务标识对应增加待归档标识;另一种方式是:所述服务器可创建待归档事务列表,当某一个事务的日志记录完毕时,在待归档事务列表中的增加这一事务对应的事务标识,以上仅为举例说明,本发明实施例对在所述日志记录完毕时标记所述事务为待归档事务的具体方式不做限定。
S307,检测至少一个日志缓冲区的关联信息。
具体的,服务器检测至少一个日志缓冲区的关联信息,所述至少一个日志缓冲区中每个日志缓冲区包括处于工作状态的第一缓冲区和处于归档状态的第二缓冲区。其中,在所述工作状态下的缓冲区用于记录日志,在所述归档状态的缓冲区用于日志进行归档,所述关联信息包括所述每个日志缓冲区中所述第一缓冲区和所述第二缓冲区的信息,例如,所述第一缓冲区的工作进度、缓冲区的空间容量的占用率,已进行日志记录的日志缓冲区的数量,所述第二缓冲区的归档进度等等。可行的方案中,所述服务器可按照预设时间间隔检测至少一个日志缓冲区的关联信息。
S308,当所述关联信息满足预设条件时,将每个日志缓冲区中的所述第一缓冲区的状态调整为归档状态,且将所述第二缓冲区的状态调整为工作状态。
具体的,当所述关联信息满足预设条件时,将每个日志缓冲区中的所述第一缓冲区的状态调整为归档状态,且将所述第二缓冲区的状态调整为工作状态。可以理解的是,调整所述第一缓冲区和所述第二缓冲区的状态可以表示为,对记录日志的缓冲区调整为执行将日志进行归档,将完成日志归档的缓冲区调整为记录日志。
举例来说,所述关联信息包括连续时长和释放状态,所述连续时长用于记录所述每个日志缓冲区中所述第一缓冲区本次处于工作状态的时长或所述第二缓冲区本次处于归档状态的时长,所述释放状态表示所述每个日志缓冲区中所述第二缓冲区的日志是否释放完毕。相应地,所述预设条件包括所述连续时长大于第一阈值且所述释放状态为日志释放完毕。可行的方案中,所述服务器可通过记录每一次处于工作状态的缓冲区和处于归档状态的缓冲区的状态调整时刻,确定最近一次状态调整时刻和当前时刻之间的相隔时长,进而确定所述第一缓冲区本次处于工作状态的时长或所述第二缓冲区本次处于归档状态的时长。其中,所述第一阈值是由所述服务器设定的,处于归档状态的缓冲区的日志释放完毕是指每个处于归档状态的缓冲区的日志被完全清除,可行的方案中,所述处于归档状态的缓冲区的日志是否释放完毕可通过表示释放完毕的标识进行区分,例如,用“1”表示处于归档状态的缓冲区的日志释放完毕,用“0”表示处于归档状态的缓冲区的日志未释放完毕。
又举例来说,所述关联信息包括缓冲区占用率和释放状态,所述缓冲区占用率用于表示所述每个日志缓冲区中处于工作状态的所述第一缓冲区的存储空间占用率,所述释放状态请参见上述介绍。相应地,所述预设条件包括所述占用率大于第二阈值且所述释放状态为日志释放完毕。其中,所述占用率可在记录由事务产生的日志过程中进行统计。
又举例来说,所述关联信息包括事务数量和释放状态,所述事务数量用于表示所述至少一个日志缓冲区中的待归档事务的数量,所述释放状态表示每个日志缓冲区中所述第二缓冲区的日志是否释放完毕;所述预设条件包括所述事务数量大于第三阈值且所述释放状态为日志释放完毕。
需要说明的是,对于所述关联信息和所述预设条件,以上仅为举例说明,本发明实施例对此不做限定。
S309,判断调整为归档状态的第一缓冲区中是否存在未完成日志记录的事务。
具体的,所述服务器判断调整为归档状态的第一缓冲区中是否存在未完成日志记录的事务。由于处于工作状态的第一缓冲区和处于归档状态的第二缓冲区是在满足以上预设条件的情况下进行调整状态的,因此存在调整为归档状态的第一缓冲区中存在处于正在记录日志的事务。因此,当判断结果为是时,表示存在未完成日志记录的事务,执行步骤S310;当判断结果为否时,表示不存在未完成日志记录的事务,则执行步骤S311。
举例来说,所述服务器可通过统计在调整状态之前在处于工作状态的第一缓冲区中记录日志的全部事务的数量,以及统计该处于工作状态的第一缓冲区中待提交事务的数量,若两者的数值不一致,表示还存在未完成日志记录的事务,否则,表示不存在未完成日志记录的事务。实际中还存在事务撤回的情况,上述可行的方案中,还可以增加执行撤回的事务的数量进行检测是否存在未完成日志记录的事务。这里仅为举例说明,本发明实施例对如何判断是否存在未完成日志记录的事务的具体方式不做限定。
S310,完成对所述第一缓冲区中未完成日志记录的事务所产生的日志的记录。
具体的,当所述服务器在调整为归档状态的所述第一缓冲区中存在未完成日志记录的事务时,将所述未完成日志记录的事务产生的日志记录完毕,并在日志记录完毕后,执行步骤S311。
S311,将所述每个日志缓冲区中调整后的处于归档状态的缓冲区的日志进行归档。
具体的,当所述服务器判断在调整为归档状态的所述第一缓冲区中不存在未完成日志记录的事务时,或者,所述服务器将未完成日志记录的事务产生的日志记录完毕之后,所述服务器将所述每个日志缓冲区中调整后的处于归档状态的缓冲区的日志进行归档。另外,当所述日志归档完毕时,释放第一缓冲区中的全部日志。
需要说明的是,步骤S309、步骤S310和步骤S311是对调整状态后是否存在未完成日志记录的事务的具体说明,步骤S309判断调整为归档状态的第一缓冲区中是否存在未完成日志记录的事务可作为可选步骤进行执行,本发明实施例对此不做限定。
S312,在处于工作状态的所述第二缓冲区中记录日志。
具体的,在所述服务器在步骤S308将每个日志缓冲区中的所述第一缓冲区的状态调整为归档状态,且将所述第二缓冲区的状态调整为工作状态之后,在处于工作状态的所述第二缓冲区中记录日志。
需要说明的是,所述服务器可设置多个进程执行步骤S301-步骤S312,举例来说,可设置管理进程和后台守护进程,所述管理进程可执行步骤S301到步骤S308的全部步骤以及步骤S312,负责将事务产生的日志记录于分配的日志缓冲区中,并在所述至少一个日志缓冲区满足预设条件时,调整缓冲区的状态;所述后台守护进程可执行在调整缓冲区的状态之后处于归档状态的缓冲区中的归档工作,包括步骤S309到步骤S311的全部步骤,可选的方案中,所述后台守护进程在这次归档工作完成之后,还可以按照预设时间间隔判断处于工作状态的缓冲区和处于归档状态的缓冲区的状态是否又一次发生调整,如若发生调整,则执行步骤S309-步骤S311完成归档工作。以上仅为举例说明,本发明实施例采用单线程或者多线程以及对进程工作的划分不做限定。
在本发明实施例中,通过将缓冲区划分为多个日志缓冲区,能够将各个事务执行操作时所产生的日志分别写入所分配的日志缓冲区的处于工作状态的缓冲区中,减少了由于多个事务需要记录日志所产生的冲突,另外,通过将一个日志缓冲区划分为处于工作状态的第一缓冲区和处于归档状态的第二缓冲区,这样能够在两个缓冲区中分别执行日志记录工作和日志归档,且可以并行操作,这样避免了集中式日志缓冲区中日志记录工作和日志归档无法并行的情况发生,提高了服务器的日志记录和日志归档效率。
为了便于更好地实施本发明实施例的日志管理方法,本发明还提供了用于实现实施上述方法的服务器。
请参见图4,为本发明实施例提供了一种服务器的结构示意图。如图4所示,本发明实施例的所述服务器4可以包括:检测单元401、调整单元402和处理单元403。
检测单元401,用于检测至少一个日志缓冲区的关联信息,所述至少一个日志缓冲区中每个日志缓冲区包括处于工作状态的第一缓冲区和处于归档状态的第二缓冲区,在所述工作状态下的缓冲区用于记录日志,在所述归档状态的缓冲区用于日志进行归档,所述关联信息包括所述每个日志缓冲区中所述第一缓冲区和所述第二缓冲区的信息;
调整单元402,用于当所述关联信息满足预设条件时,将每个日志缓冲区中的所述第一缓冲区的状态调整为归档状态,且将所述第二缓冲区的状态调整为工作状态;
处理单元403,用于将每个日志缓冲区中处于归档状态的所述第一缓冲区的日志进行归档,且在处于工作状态的所述第二缓冲区中记录日志。
需要说明的是,本发明实施例所描述的服务器4中各功能单元的功能可根据上述图2所示方法实施例中的方法具体实现,此处不再赘述。
请参见图5,为本发明实施例提供了另一种服务器的结构示意图。如图4所示,其中,图5所示的服务器是由图4所示的服务器进行优化得到的。与图4所示的服务器相比较,图5所示的服务器4除包括图4所示的服务器4的所有单元之外,还可以包括第一记录单元404、分配单元405和第二记录单元406。
若检测到的事务中的一目标事务产生的日志的占用空间大于所述目标事务对应的目标日志缓冲区的处于工作状态的缓冲区的容量,第一记录单元404,用于在所述目标日志缓冲区能够增加扩展空间情况下,在所述扩展空间中继续记录所述目标事务产生的日志。
分配单元405,用于在所述目标日志缓冲区不能增加扩展空间情况下,对所述目标事务重新分配日志缓冲区;所述第一记录单元404,还用于在重新分配的所述日志缓冲区的处于工作状态的缓冲区中记录所述目标事务产生的日志。
第二记录单元406,用于在调整为归档状态的所述第一缓冲区中存在未完成日志记录的事务的情况下,完成对所述第一缓冲区中未完成日志记录的事务所产生的日志的记录;
所述处理单元403具体用于将每个日志缓冲区的所述第一缓冲区的日志进行归档,所述第一缓冲区中的事务均已完成日志记录。
需要说明的是,本发明实施例所描述的服务器4中各功能单元的功能可根据上述图3所示方法实施例中的方法具体实现,此处不再赘述。
请参见图6,为本发明实施例提供了另一种服务器的结构示意图。图2至图5中的服务器可以以图6中的通用计算机设备的方式来实现。如图6所示,所述服务器6可以包括但不限于:至少一个处理器601,通信总线602,存储器603以及至少一个通信接口604。
处理器601可以是一个通用中央处理器(CPU),微处理器,特定应用集成电路(application-specific integrated circuit,ASIC),或一个或多个用于控制本发明方案程序执行的集成电路。在具体实现中,作为一种实施例,处理器601可以包括一个或多个CPU,例如图6中的CPU0和CPU1。
通信总线602表示几类总线结构中的一种或多种,包括存储器总线或者存储器控制器,外围总线,图形加速端口,处理器或者使用多种总线结构中的任意总线结构的局域总线。举例来说,这些体系结构包括但不限于工业标准体系结构(Industry StandardArchitecture,ISA)总线,微通道体系结构(Micro Channel Architecture,MAC)总线,增强型ISA总线、视频电子标准协会(Video Electronics Standards Association,VESA)局域总线以及外围组件互连(Peripheral Component Interconnect,PCI)总线。
所述通信接口604通常由诸如载波或其它传输机制等已调制数据信号中的计算机可读指令、数据结构、程序模块或其它数据来体现,并包括任何信息传递介质。术语“已调制数据信号”指的是其一个或多个特征以在信号中编码信息的方式被设定或更改的信号。作为示例而非限制,通信介质包括有线介质,诸如有线网络或直接线连接,以及无线介质,诸如声学、RF(Radio Frequency,射频)、红外线和其它无线介质。此处所使用的术语计算机可读介质包括存储介质和通信介质两者。
存储器603可以包括易失性存储器形式的计算机系统可读介质,例如随机存取存储器(Random Access Memory,RAM)和/或高速缓存存储器。在本发明实施例中,所述至少一个缓冲区可以是RAM或高速缓存存储器中的部分空间。服务器6可以进一步包括其它易失性/非易失性计算机系统存储介质,例如,非易失性磁介质(通常称为“硬盘驱动器”),可选的,在本发明实施例中,可将缓冲区中的日志归档到非易失性磁介质中,以对日志进行保存。存储器603用于存储数据,具体包括应用程序数据、处理器执行的结果数据或处理器执行需要的数据。存储器可以是独立存在,通过总线与处理器相连接。存储器也可以和处理器集成在一起。
服务器6也可以与一个或多个外部设备(例如键盘、鼠标、语音输入设备、触摸输入设备等输入设备,以及显示器、扬声器、打印机等输出设备等)连接。服务器6还可以与至少一个单独设立的存储设备连接。可选的,在本发明实施例中,可将缓冲区中的日志归档到这类存储设备中,以对日志进行保存。
其中,所述存储器603用于存储执行本发明方案的应用程序代码,并由处理器601来控制执行。所述处理器601用于执行所述存储器603中存储的应用程序代码。可行的方案中,附图4和附图5所示的服务器所包括的单元(检测单元401、调整单元405、处理单元403等等)可通过在存储器603中存储对应的程序代码进行实现。
处理器601用于读取存储器604存储的程序代码,并执行如下操作:
处理器601检测至少一个日志缓冲区的关联信息,所述至少一个日志缓冲区中每个日志缓冲区包括处于工作状态的第一缓冲区和处于归档状态的第二缓冲区,在所述工作状态下的缓冲区用于记录日志,在所述归档状态的缓冲区用于日志进行归档,所述关联信息包括所述每个日志缓冲区中所述第一缓冲区和所述第二缓冲区的信息;
当所述关联信息满足预设条件时,处理器601将每个日志缓冲区中的所述第一缓冲区的状态调整为归档状态,且将所述第二缓冲区的状态调整为工作状态;
处理器601将每个日志缓冲区中处于归档状态的所述第一缓冲区的日志进行归档,且在处于工作状态的所述第二缓冲区中记录日志。
可选的,若检测到的事务中的一目标事务产生的日志的占用空间大于所述目标事务对应的目标日志缓冲区的处于工作状态的缓冲区的容量,处理器601在所述目标日志缓冲区能够增加扩展空间情况下,在所述扩展空间中继续记录所述目标事务产生的日志。
可选的,若检测到的事务中的一目标事务产生的日志的占用空间大于所述目标事务对应的目标日志缓冲区的处于工作状态的缓冲区的容量,处理器601在所述目标日志缓冲区不能增加扩展空间情况下,对所述目标事务重新分配日志缓冲区,并在重新分配的所述日志缓冲区的处于工作状态的缓冲区中记录所述目标事务产生的日志。
可选的,所述关联信息包括连续时长和释放状态,所述连续时长用于记录所述每个日志缓冲区中所述第一缓冲区本次处于工作状态的时长或所述第二缓冲区本次处于归档状态的时长,所述释放状态表示所述每个日志缓冲区中所述第二缓冲区的日志是否释放完毕;所述预设条件包括所述连续时长大于第一阈值且所述释放状态为日志释放完毕。
可选的,所述关联信息包括缓冲区占用率和释放状态,所述缓冲区占用率用于表示所述每个日志缓冲区中处于工作状态的所述第一缓冲区的存储空间占用率,所述释放状态表示所述每个日志缓冲区中所述第二缓冲区的日志是否释放完毕;所述预设条件包括所述占用率大于第二阈值且所述释放状态为日志释放完毕。
可选的,所述关联信息包括事务数量和释放状态,所述事务数量用于表示所述至少一个日志缓冲区中的待归档事务的数量,所述释放状态表示每个日志缓冲区中所述第二缓冲区的日志是否释放完毕;所述预设条件包括所述事务数量大于第三阈值且所述释放状态为日志释放完毕,其中,所述待归档事务表示事务的日志已记录完毕。
可选的,处理器601在调整为归档状态的所述第一缓冲区中存在未完成日志记录的事务的情况下,完成对所述第一缓冲区中未完成日志记录的事务所产生的日志的记录;处理器601将每个日志缓冲区的所述第一缓冲区的日志进行归档,所述第一缓冲区中的事务均已完成日志记录。
需要说明的是,本发明实施例所描述的处理器601所执行的操作可根据上述图2或图3所示方法实施例中的方法具体实现,此处不再赘述。
本发明实施例还提供了一种计算机存储介质,用于储存为上述图2或图3所示的服务器所用的计算机软件指令,其包含用于执行上述方面为服务器所设计的程序。通过将一个日志缓冲区划分为处于工作状态的第一缓冲区和处于归档状态的第二缓冲区,这样能够在两个缓冲区中分别执行日志记录工作和日志归档,且可以并行操作,这样避免了集中式日志缓冲区中日志记录工作和日志归档无法并行的情况发生,提高了服务器的日志记录和日志归档效率。
尽管在此结合各实施例对本发明进行了描述,然而,在实施所要求保护的本发明过程中,本领域技术人员通过查看所述附图、公开内容、以及所附权利要求书,可理解并实现所述公开实施例的其他变化。在权利要求中,“包括”(comprising)一词不排除其他组成部分或步骤,“一”或“一个”不排除多个的情况。单个处理器或其他单元可以实现权利要求中列举的若干项功能。相互不同的从属权利要求中记载了某些措施,但这并不表示这些措施不能组合起来产生良好的效果。
本领域技术人员应明白,本发明的实施例可提供为方法、装置(设备)、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。计算机程序存储/分布在合适的介质中,与其它硬件一起提供或作为硬件的一部分,也可以采用其他分布形式,如通过Internet或其它有线或无线电信系统。
本发明是参照本发明实施例的方法、装置(设备)和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
尽管结合具体特征及其实施例对本发明进行了描述,显而易见的,在不脱离本发明的精神和范围的情况下,可对其进行各种修改和组合。相应地,本说明书和附图仅仅是所附权利要求所界定的本发明的示例性说明,且视为已覆盖本发明范围内的任意和所有修改、变化、组合或等同物。显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。
Claims (18)
1.一种日志管理方法,其特征在于,包括:
检测至少一个日志缓冲区的关联信息,所述至少一个日志缓冲区中每个日志缓冲区包括处于工作状态的第一缓冲区和处于归档状态的第二缓冲区,在所述工作状态下的缓冲区用于记录日志,在所述归档状态的缓冲区用于归档日志,所述关联信息包括所述每个日志缓冲区中所述第一缓冲区和所述第二缓冲区的信息;
当所述关联信息满足预设条件时,将每个日志缓冲区中的所述第一缓冲区的状态调整为归档状态,且将所述第二缓冲区的状态调整为工作状态;
将每个日志缓冲区中处于归档状态的所述第一缓冲区的日志进行归档,且在处于工作状态的所述第二缓冲区中记录日志。
2.根据权利要求1所述的方法,其特征在于,若检测到目标事务产生的日志的占用空间大于所述目标事务对应的目标日志缓冲区的处于工作状态的缓冲区的容量,所述方法还包括:
在所述目标日志缓冲区能够增加扩展空间情况下,在所述扩展空间中继续记录所述目标事务产生的日志。
3.根据权利要求2所述的方法,其特征在于,所述方法还包括:
在所述目标日志缓冲区不能增加扩展空间情况下,对所述目标事务重新分配日志缓冲区,并在重新分配的所述日志缓冲区的处于工作状态的缓冲区中记录所述目标事务产生的日志。
4.根据权利要求1-3任一项所述的方法,其特征在于,所述关联信息包括连续时长和释放状态,所述连续时长用于记录所述每个日志缓冲区中所述第一缓冲区本次处于工作状态的时长或所述第二缓冲区本次处于归档状态的时长,所述释放状态表示所述每个日志缓冲区中所述第二缓冲区的日志是否释放完毕;所述预设条件包括所述连续时长大于第一阈值且所述释放状态为日志释放完毕。
5.根据权利要求1-3任一项所述的方法,其特征在于,所述关联信息包括缓冲区占用率和释放状态,所述缓冲区占用率用于表示所述每个日志缓冲区中处于工作状态的所述第一缓冲区的存储空间占用率,所述释放状态表示所述每个日志缓冲区中所述第二缓冲区的日志是否释放完毕;所述预设条件包括所述占用率大于第二阈值且所述释放状态为日志释放完毕。
6.根据权利要求1-3任一项所述的方法,其特征在于,所述关联信息包括事务数量和释放状态,所述事务数量用于表示所述至少一个日志缓冲区中的待归档事务的数量,所述释放状态表示每个日志缓冲区中所述第二缓冲区的日志是否释放完毕;所述预设条件包括所述事务数量大于第三阈值且所述释放状态为日志释放完毕,其中,所述待归档事务表示事务的日志已记录完毕。
7.根据权利要求1-3任一项所述的方法其特征在于,还包括:
在调整为归档状态的所述第一缓冲区中存在未完成日志记录的事务的情况下,完成对所述第一缓冲区中未完成日志记录的事务所产生的日志的记录;
将每个日志缓冲区的所述第一缓冲区的日志进行归档,所述第一缓冲区中的事务均已完成日志记录。
8.根据权利要求4所述的方法其特征在于,还包括:
在调整为归档状态的所述第一缓冲区中存在未完成日志记录的事务的情况下,完成对所述第一缓冲区中未完成日志记录的事务所产生的日志的记录;
将每个日志缓冲区的所述第一缓冲区的日志进行归档,所述第一缓冲区中的事务均已完成日志记录。
9.根据权利要求5所述的方法其特征在于,还包括:
在调整为归档状态的所述第一缓冲区中存在未完成日志记录的事务的情况下,完成对所述第一缓冲区中未完成日志记录的事务所产生的日志的记录;
将每个日志缓冲区的所述第一缓冲区的日志进行归档,所述第一缓冲区中的事务均已完成日志记录。
10.根据权利要求6所述的方法其特征在于,还包括:
在调整为归档状态的所述第一缓冲区中存在未完成日志记录的事务的情况下,完成对所述第一缓冲区中未完成日志记录的事务所产生的日志的记录;
将每个日志缓冲区的所述第一缓冲区的日志进行归档,所述第一缓冲区中的事务均已完成日志记录。
11.一种服务器,其特征在于,包括:
检测单元,用于检测至少一个日志缓冲区的关联信息,所述至少一个日志缓冲区中每个日志缓冲区包括处于工作状态的第一缓冲区和处于归档状态的第二缓冲区,在所述工作状态下的缓冲区用于记录日志,在所述归档状态的缓冲区用于归档日志,所述关联信息包括所述每个日志缓冲区中所述第一缓冲区和所述第二缓冲区的信息;
调整单元,用于当所述关联信息满足预设条件时,将每个日志缓冲区中的所述第一缓冲区的状态调整为归档状态,且将所述第二缓冲区的状态调整为工作状态;
处理单元,用于将每个日志缓冲区中处于归档状态的所述第一缓冲区的日志进行归档,且在处于工作状态的所述第二缓冲区中记录日志。
12.根据权利要求11所述的服务器,其特征在于,若检测到的事务中的一目标事务产生的日志的占用空间大于所述目标事务对应的目标日志缓冲区的处于工作状态的缓冲区的容量,所述服务器还包括第一记录单元:
所述第一记录单元,用于在所述目标日志缓冲区能够增加扩展空间情况下,在所述扩展空间中继续记录所述目标事务产生的日志。
13.根据权利要求12所述的服务器,其特征在于,所述服务器还包括分配单元:
所述分配单元,用于在所述目标日志缓冲区不能增加扩展空间情况下,对所述目标事务重新分配日志缓冲区;
所述第一记录单元,还用于在重新分配的所述日志缓冲区的处于工作状态的缓冲区中记录所述目标事务产生的日志。
14.根据权利要求11-13任一项所述的服务器,其特征在于,所述关联信息包括连续时长和释放状态,所述连续时长用于记录所述每个日志缓冲区中所述第一缓冲区本次处于工作状态的时长或所述第二缓冲区本次处于归档状态的时长,所述释放状态表示所述每个日志缓冲区中所述第二缓冲区的日志是否释放完毕;所述预设条件包括所述连续时长大于第一阈值且所述释放状态为日志释放完毕。
15.根据权利要求11-13任一项所述的服务器,其特征在于,所述关联信息包括缓冲区占用率和释放状态,所述缓冲区占用率用于表示所述每个日志缓冲区中处于工作状态的所述第一缓冲区的存储空间占用率,所述释放状态表示所述每个日志缓冲区中所述第二缓冲区的日志是否释放完毕;所述预设条件包括所述占用率大于第二阈值且所述释放状态为日志释放完毕。
16.根据权利要求11-13任一项所述的服务器,其特征在于,所述关联信息包括事务数量和释放状态,所述事务数量用于表示所述至少一个日志缓冲区中的待归档事务的数量,所述释放状态表示每个日志缓冲区中所述第二缓冲区的日志是否释放完毕;所述预设条件包括所述事务数量大于第三阈值且所述释放状态为日志释放完毕,其中,所述待归档事务表示事务的日志已记录完毕。
17.根据权利要求14所述的服务器,其特征在于,所述服务器还包括第二记录单元:
所述第二记录单元,用于在调整为归档状态的所述第一缓冲区中存在未完成日志记录的事务的情况下,完成对所述第一缓冲区中未完成日志记录的事务所产生的日志的记录;
所述处理单元具体用于将每个日志缓冲区的所述第一缓冲区的日志进行归档,所述第一缓冲区中的事务均已完成日志记录。
18.一种服务器,其特征在于,包括处理器和存储器,其中,所述存储器用于存储日志管理的程序代码,所述处理器用于调用所述存储器存储的程序代码执行权利要求1-10任一项所述的日志管理方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610140111.1A CN107180051B (zh) | 2016-03-11 | 2016-03-11 | 一种日志管理方法、服务器 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610140111.1A CN107180051B (zh) | 2016-03-11 | 2016-03-11 | 一种日志管理方法、服务器 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN107180051A CN107180051A (zh) | 2017-09-19 |
CN107180051B true CN107180051B (zh) | 2021-02-12 |
Family
ID=59829656
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201610140111.1A Active CN107180051B (zh) | 2016-03-11 | 2016-03-11 | 一种日志管理方法、服务器 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN107180051B (zh) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110311817B (zh) * | 2019-06-28 | 2021-09-28 | 四川长虹电器股份有限公司 | 用于Kubernetes集群的容器日志处理系统 |
CN110737649B (zh) * | 2019-09-25 | 2023-01-06 | 苏州浪潮智能科技有限公司 | 一种数据库的事务日志的处理方法、设备以及存储介质 |
CN113064752B (zh) * | 2019-12-16 | 2023-11-21 | 华晨宝马汽车有限公司 | 用于将日志归档的方法、系统和计算机可读介质 |
CN113407503A (zh) * | 2020-03-16 | 2021-09-17 | 北京金山云网络技术有限公司 | 一种日志空间管理方法、装置、电子设备及介质 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6131094A (en) * | 1998-04-24 | 2000-10-10 | Unisys Corp. | Method for performing asynchronous writes to database logs using multiple insertion points |
CN102609484A (zh) * | 2012-01-19 | 2012-07-25 | 北京神州数码思特奇信息技术股份有限公司 | 一种通用系统日志管理方法 |
CN103309767A (zh) * | 2012-03-08 | 2013-09-18 | 阿里巴巴集团控股有限公司 | 一种客户端日志处理方法和装置 |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2001101044A (ja) * | 1999-09-29 | 2001-04-13 | Toshiba Corp | トランザクショナルファイル管理方法、トランザクショナルファイルシステム及び複合トランザクショナルファイルシステム |
CN101179436B (zh) * | 2007-11-23 | 2010-10-27 | 上海华为技术有限公司 | 实现调试日志的关联方法及装置 |
CN102073578A (zh) * | 2009-11-23 | 2011-05-25 | 英业达股份有限公司 | 系统事件日志记录方法 |
US9092475B2 (en) * | 2011-11-07 | 2015-07-28 | Sap Se | Database log parallelization |
CN103885726B (zh) * | 2014-03-20 | 2017-07-21 | 东蓝数码股份有限公司 | 一种高效的多线程日志写入方法 |
-
2016
- 2016-03-11 CN CN201610140111.1A patent/CN107180051B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6131094A (en) * | 1998-04-24 | 2000-10-10 | Unisys Corp. | Method for performing asynchronous writes to database logs using multiple insertion points |
CN102609484A (zh) * | 2012-01-19 | 2012-07-25 | 北京神州数码思特奇信息技术股份有限公司 | 一种通用系统日志管理方法 |
CN103309767A (zh) * | 2012-03-08 | 2013-09-18 | 阿里巴巴集团控股有限公司 | 一种客户端日志处理方法和装置 |
Also Published As
Publication number | Publication date |
---|---|
CN107180051A (zh) | 2017-09-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP3640799B1 (en) | Determining an allocation of computing resources for a job | |
US9619378B2 (en) | Dynamically optimizing memory allocation across virtual machines | |
CN107180051B (zh) | 一种日志管理方法、服务器 | |
JP6026738B2 (ja) | 重複排除記憶システムのスケーラビリティを向上させるシステムおよび方法 | |
WO2018099299A1 (zh) | 一种图数据处理的方法、装置及系统 | |
JP2013509658A (ja) | 将来の使用推量に基づく記憶メモリの割り当て | |
US8140600B2 (en) | Memory power control method and memory power control program | |
CN104516678A (zh) | 用于数据存储的方法和设备 | |
CN104111867B (zh) | 一种虚拟机迁移装置及方法 | |
US10203879B2 (en) | Control device and control method | |
CN106020984B (zh) | 电子设备中进程的创建方法及装置 | |
CN104580194A (zh) | 面向视频应用的虚拟化资源管理方法及装置 | |
CN108475201A (zh) | 一种虚拟机启动过程中的数据获取方法和云计算系统 | |
CN113590329A (zh) | 资源处理方法及装置 | |
CN104484132A (zh) | 数据缩减的方法及装置 | |
US9971785B1 (en) | System and methods for performing distributed data replication in a networked virtualization environment | |
US10007434B1 (en) | Proactive release of high performance data storage resources when exceeding a service level objective | |
US20190173770A1 (en) | Method and system for placement of virtual machines using a working set computation | |
CN109840151B (zh) | 一种用于多核处理器的负载均衡方法和装置 | |
WO2024148864A1 (zh) | 虚拟机内存的调整方法和装置、非易失性可读存储介质及电子装置 | |
US10002173B1 (en) | System and methods for dynamically adjusting between asynchronous and synchronous data replication policies in a networked virtualization environment | |
CN116089477B (zh) | 分布式训练方法及系统 | |
CN112631994A (zh) | 数据迁移方法及系统 | |
US11416152B2 (en) | Information processing device, information processing method, computer-readable storage medium, and information processing system | |
CN112835967B (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 |