CN105760283B - 一种日志输出方法和装置 - Google Patents

一种日志输出方法和装置 Download PDF

Info

Publication number
CN105760283B
CN105760283B CN201410797577.XA CN201410797577A CN105760283B CN 105760283 B CN105760283 B CN 105760283B CN 201410797577 A CN201410797577 A CN 201410797577A CN 105760283 B CN105760283 B CN 105760283B
Authority
CN
China
Prior art keywords
task unit
unit
daily record
output
buffer zone
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
Application number
CN201410797577.XA
Other languages
English (en)
Other versions
CN105760283A (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.)
Advanced New Technologies Co Ltd
Advantageous New Technologies Co Ltd
Original Assignee
Alibaba Group Holding 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 Alibaba Group Holding Ltd filed Critical Alibaba Group Holding Ltd
Priority to CN201410797577.XA priority Critical patent/CN105760283B/zh
Publication of CN105760283A publication Critical patent/CN105760283A/zh
Application granted granted Critical
Publication of CN105760283B publication Critical patent/CN105760283B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Abstract

本申请提供一种日志输出方法和装置。所述方法包括:根据任务单元的执行参数和结果,将所述任务单元的日志输出到预设的缓存区域;监测所述任务单元所属的事务是否提交;如果所述任务单元所属的事务提交,则将所述缓存区域中的所述任务单元的日志输出到磁盘。通过本申请的技术方案,可以确保任务单元的日志与事务的执行结果一致,同时,内存占有率较小、程序可读性高且非常灵活。

Description

一种日志输出方法和装置
技术领域
本申请涉及数据处理技术领域,尤其涉及一种日志输出方法和装置。
背景技术
数据库事务是指作为单个逻辑工作单元执行一系列操作,要么完整地执行,要么完全地不执行。事务处理可以确保除非事务性单元内的所有操作都成功完成,否则不会更新数据库的任何数据。通过将一组相关操作组合为一个要么全部成功要么全部失败的单元,可以简化错误恢复并使应用程序的运行更加稳定可靠。
一个数据库事务通常会包括有多个任务单元,在执行事务时,需要输出每个任务单元的执行参数和结果等日志,以便于后续数据的备份和恢复。在日志输出的过程中,需要保证每个任务单元的日志与事务的执行结果一致。如果当前事务提交,则需要输出该事务包含的所有任务单元的日志。如果当前事务回滚,则需要确保该事务包含的所有任务单元的日志都回滚。
目前,为确保每个任务单元的日志与事务的执行结果一致,可以将每个任务单元的执行参数和结果回传,在事务提交时统一输出。然而,这种实现方式会导致回传参数过多,降低了程序的可读性。在其他的实现方式中,还可以将每个任务单元的执行参数和结果放入线程变量中,在事务提交后,统一从线程变量中获取每个任务单元的执行参数和结果并进行输出。然而,在线程变量中保存大量的执行参数和结果,会占用大量的内存。同时,这两种实现方式都只能在事务提交后进行日志的输出,不够灵活。
发明内容
有鉴于此,本申请提供一种日志输出方法和装置。
具体地,本申请是通过如下技术方案实现的:
一种日志输出方法,所述方法包括:
根据任务单元的执行参数和结果,将所述任务单元的日志输出到预设的缓存区域;
监测所述任务单元所属的事务是否提交;
如果所述任务单元所属的事务提交,则将所述缓存区域中的所述任务单元的日志输出到磁盘。
进一步地,所述方法包括:
如果所述任务单元所属的事务回滚,则删除所述缓存区域中的所述任务单元的日志。
进一步地,所述方法包括:
在将所述缓存区域中的所述任务单元的日志输出到磁盘之后,删除所述缓存区域中的所述任务单元的日志。
进一步地,在根据任务单元的执行参数和结果,将所述任务单元的日志输出到预设的缓存区域之前,所述方法还包括:
判断所述任务单元是否在本地事务内执行;
如果所述任务单元在本地事务内执行,则根据任务单元的执行参数和结果,将所述任务单元的日志输出到预设的缓存区域。
一种日志输出装置,所述装置包括:
第一输出单元,根据任务单元的执行参数和结果,将所述任务单元的日志输出到预设的缓存区域;
结果监测单元,监测所述任务单元所属的事务是否提交;
第二输出单元,在所述任务单元所属的事务提交时,将所述缓存区域中的所述任务单元的日志输出到磁盘。
进一步地,所述装置还包括:
第一删除单元,在所述任务单元所属的事务回滚时,删除所述缓存区域中的所述任务单元的日志。
进一步地,所述装置还包括:
第二删除单元,在将所述缓存区域中的所述任务单元的日志输出到磁盘之后,删除所述缓存区域中的所述任务单元的日志。
进一步地,所述装置还包括:
事务判断单元,判断所述任务单元是否在本地事务内执行;
所述第一输出单元,在所述任务单元在本地事务内执行时,根据任务单元的执行参数和结果,将所述任务单元的日志输出到预设的缓存区域。
由以上描述可以看出,本申请通过将任务单元的日志输出到预设的缓存区域,并在所述任务单元所属的事务提交时,将所述缓存区域中所述任务单元的日志输出到磁盘,进而确保任务单元的日志与事务的执行结果一致。同时,内存占有率较小、程序可读性高且非常灵活。
附图说明
图1是本申请一示例性实施例示出的一种日志输出方法的流程示意图。
图2是本申请一示例性实施例示出的一种服务端的结构示意图。
图3是本申请一示例性实施例示出的一种日志输出装置的结构示意图。
具体实施方式
这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本申请相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本申请的一些方面相一致的装置和方法的例子。
在本申请使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本申请。在本申请和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本文中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。
应当理解,尽管在本申请可能采用术语第一、第二、第三等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本申请范围的情况下,第一信息也可以被称为第二信息,类似地,第二信息也可以被称为第一信息。取决于语境,如在此所使用的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”。
针对上述问题,本申请提供一种日志输出方案,可以确保每个任务单元的日志与事务的执行结果一致。
请参考图1,本申请提供一种日志输出方法,所述方法可以应用在服务端上,包括以下步骤:
步骤101,根据任务单元的执行参数和结果,将所述任务单元的日志输出到预设的缓存区域。
一个事务通常包括有多个任务单元,在本实施例中,针对一个事务,分别将其包括的所述多个任务单元的日志输出到预设的缓存区域。具体地,所述任务单元的日志至少包括有:任务单元的执行参数和结果。
举例来说,以某个事务为用户取款500元为例,该事务至少包括有以下三个任务单元。其中,任务单元A对用户进行身份验证,任务单元B查询用户账户的余额,任务单元C执行对用户账户500元的扣款操作。可以理解的是,要完成这样一个事务的提交,任务单元A、任务单元B与任务单元C必须都要成功完成,即任务单元A验证用户身份合法,任务单元B查询用户账户的余额大于等于500元,任务单元C在用户账户中成功扣款500元。如果任务单元A、任务单元B和任务单元C中至少一个任务单元没有成功完成,则该事务执行失败,即事务回滚,比如:任务单元B查询用户账户的余额小于500元等情况。
以任务单元B为例,根据查询用户账户的余额这个任务单元的执行参数和结果,将所述任务单元的日志输出到预设的缓存区域。具体地,该任务单元B的执行参数至少包括有:用户账户信息、查询时间以及操作员等,该任务单元B的执行结果为用户账户的余额。在本步骤中,将任务单元B的日志B,即上述执行参数和执行结果输出到预设的缓存区域。同样,根据任务单元A以及任务单元C的执行参数和结果,将任务单元A以及任务单元C的日志A以及日志C输出到所述预设的缓存区域。
步骤102,监测所述任务单元所属的事务是否提交。如果所述任务单元所属的事务提交,则执行步骤103。如果所述任务单元所属的事务回滚,则执行步骤104。
在本实施例中,针对每个任务单元,监测所述任务单元所属的事务的执行结果,比如:可以通过注册当前事务的事务同步器实现类以监测所述事务的执行结果。其中,所述事务的执行结果包括有提交和回滚。如果所述任务单元所属的事务提交,则执行步骤103。如果所述任务的那样所属的事务回滚,则执行步骤104。
步骤103,将所述缓存区域中的所述任务单元的日志输出到磁盘。
基于前述步骤102,如果所述任务单元所属的事务提交,意味着各个任务单元的日志与事务一致,将所述缓存区域中的所述任务单元的日志输出到磁盘,已实现日志的存储。
仍以步骤101中的用户取款500元的事务为例,如果该事务提交,则在本步骤中,将输出到所述缓存区域中的任务单元A的日志A、任务单元B的日志B以及任务单元C的日志C分别输出到磁盘。
步骤104,删除所述缓存区域中的所述任务单元的日志。
基于前述步骤103,在将所述缓存区域中的所述任务单元的日志输出到磁盘之后,在本步骤中,删除所述缓存区域中所述任务单元的日志。
在另一实施例中,基于前述步骤102,如果所述任务单元所属的事务回滚,即该事务执行失败,则该事务已执行的任务单元的日志与事务的执行结果不一致,在本步骤中,删除所述缓存区域中所述任务单元的日志。
仍以步骤101中的用户取款500元的事务为例,如果该事务由于任务单元C执行失败,比如:由于网络故障导致在用户账户中扣款500元失败,则该事务回滚,进而任务单元A以及任务单元B的操作数据不会更新到数据库中,那么,输出到所述缓存区域中的任务单元A以及任务单元B的日志A和日志B已经与该事务的执行结果不一致,所以在本步骤中,将所述缓存区域中的日志A和日志B删除。
可选的,在本申请另一实施例中,在执行步骤101:根据任务单元的执行参数和结果,将所述任务单元的日志输出到预设的缓存区域之前,还需要判断所述任务单元是否在本地事务内执行。如果所述任务单元在本地事务内执行,则说明所述任务单元的日志需要和其所属的事务的执行结果保持一致,进而可以根据所述任务单元的执行参数和结果,将所述任务单元的日志输出到预设的缓存区域。如果所述任务单元不在本地事务内执行,则说明所述任务单元的日志不需要和其所属的事务的执行结果保持一致,将日志输出到磁盘即可。
由以上描述可以看出,本申请通过将任务单元的日志输出到预设的缓存区域,并在所述任务单元所属的事务提交时,将所述缓存区域中所述任务单元的日志输出到磁盘,进而确保任务单元的日志与事务的执行结果一致。同时,内存占有率较小、程序可读性高且非常灵活。
与本申请日志输出方法的实施例相对应,本申请还提供了一种日志输出装置。本申请所述的装置可以通过软件实现,也可以通过硬件或者软硬件结合的方式实现。以软件实现为例,本申请日志输出装置作为一个逻辑意义上的装置,是通过其所在设备的处理器将非易失性存储器中对应的计算机程序指令读取到内存中运行形成的。
请参考图2和图3,本申请提供一种日志输出装置200,所述装置可以应用在服务端上,包括有:第一输出单元201、结果监测单元202、第二输出单元203、第一删除单元204、第二删除单元205以及事务判断单元206。
其中,所述第一输出单元201,根据任务单元的执行参数和结果,将所述任务单元的日志输出到预设的缓存区域。
所述结果监测单元202,监测所述任务单元所属的事务是否提交。
所述第二输出单元203,在所述任务单元所属的事务提交时,将所述缓存区域中的所述任务单元的日志输出到磁盘。
所述第一删除单元204,在所述任务单元所属的事务回滚时,删除所述缓存区域中的所述任务单元的日志。
所述第二删除单元205,在将所述缓存区域中的所述任务单元的日志输出到磁盘之后,删除所述缓存区域中的所述任务单元的日志。
所述事务判断单元206,判断所述任务单元是否在本地事务内执行。
进一步地,所述第一输出单元201,在所述任务单元在本地事务内执行时,根据任务单元的执行参数和结果,将所述任务单元的日志输出到预设的缓存区域。
上述装置中各个单元的功能和作用的实现过程具体详见上述方法中对应步骤的实现过程,在此不再赘述。
以上所述仅为本申请的较佳实施例而已,并不用以限制本申请,凡在本申请的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本申请保护的范围之内。

Claims (6)

1.一种日志输出方法,其特征在于,所述方法包括:
根据任务单元的执行参数和结果,将所述任务单元的日志输出到预设的缓存区域;
监测所述任务单元所属的事务是否提交;
如果所述任务单元所属的事务提交,则将所述缓存区域中的所述任务单元的日志输出到磁盘;
如果所述任务单元所属的事务回滚,则删除所述缓存区域中的所述任务单元的日志。
2.根据权利要求1所述的方法,其特征在于,所述方法包括:
在将所述缓存区域中的所述任务单元的日志输出到磁盘之后,删除所述缓存区域中的所述任务单元的日志。
3.根据权利要求1所述的方法,其特征在于,在根据任务单元的执行参数和结果,将所述任务单元的日志输出到预设的缓存区域之前,所述方法还包括:
判断所述任务单元是否在本地事务内执行;
如果所述任务单元在本地事务内执行,则根据任务单元的执行参数和结果,将所述任务单元的日志输出到预设的缓存区域。
4.一种日志输出装置,其特征在于,所述装置包括:
第一输出单元,根据任务单元的执行参数和结果,将所述任务单元的日志输出到预设的缓存区域;
结果监测单元,监测所述任务单元所属的事务是否提交;
第二输出单元,在所述任务单元所属的事务提交时,将所述缓存区域中的所述任务单元的日志输出到磁盘;
第一删除单元,在所述任务单元所属的事务回滚时,删除所述缓存区域中的所述任务单元的日志。
5.根据权利要求4所述的装置,其特征在于,所述装置还包括:
第二删除单元,在将所述缓存区域中的所述任务单元的日志输出到磁盘之后,删除所述缓存区域中的所述任务单元的日志。
6.根据权利要求4所述的装置,其特征在于,所述装置还包括:
事务判断单元,判断所述任务单元是否在本地事务内执行;
所述第一输出单元,在所述任务单元在本地事务内执行时,根据任务单元的执行参数和结果,将所述任务单元的日志输出到预设的缓存区域。
CN201410797577.XA 2014-12-18 2014-12-18 一种日志输出方法和装置 Active CN105760283B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201410797577.XA CN105760283B (zh) 2014-12-18 2014-12-18 一种日志输出方法和装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201410797577.XA CN105760283B (zh) 2014-12-18 2014-12-18 一种日志输出方法和装置

Publications (2)

Publication Number Publication Date
CN105760283A CN105760283A (zh) 2016-07-13
CN105760283B true CN105760283B (zh) 2018-11-09

Family

ID=56340747

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201410797577.XA Active CN105760283B (zh) 2014-12-18 2014-12-18 一种日志输出方法和装置

Country Status (1)

Country Link
CN (1) CN105760283B (zh)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108845866B (zh) * 2018-06-28 2021-06-29 创新先进技术有限公司 处理分布式事务的方法和装置
CN112019617B (zh) * 2020-08-26 2022-09-27 蚂蚁胜信(上海)信息技术有限公司 一种数据存储方法、装置及设备
CN114237500A (zh) * 2021-12-09 2022-03-25 北京美信时代科技有限公司 一种通过缓存事务提高写入效率的方法及系统

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101320348A (zh) * 2008-06-25 2008-12-10 中兴通讯股份有限公司 一种嵌入式系统的日志功能实现方法
CN102945278A (zh) * 2012-11-09 2013-02-27 华为技术有限公司 一种数据库记录重做日志的方法和装置
CN103064779A (zh) * 2012-12-26 2013-04-24 北京思特奇信息技术股份有限公司 一种快速处理日志信息的方法

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100862661B1 (ko) * 2006-11-16 2008-10-10 삼성전자주식회사 지연된 로깅 방법 및 그 장치

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101320348A (zh) * 2008-06-25 2008-12-10 中兴通讯股份有限公司 一种嵌入式系统的日志功能实现方法
CN102945278A (zh) * 2012-11-09 2013-02-27 华为技术有限公司 一种数据库记录重做日志的方法和装置
CN103064779A (zh) * 2012-12-26 2013-04-24 北京思特奇信息技术股份有限公司 一种快速处理日志信息的方法

Also Published As

Publication number Publication date
CN105760283A (zh) 2016-07-13

Similar Documents

Publication Publication Date Title
US9129058B2 (en) Application monitoring through continuous record and replay
US11216342B2 (en) Methods for improved auditing of web sites and devices thereof
US10785320B2 (en) Managing operation of instances
US9898376B2 (en) Recovery of a transaction after XA end
US20130305227A1 (en) Streams debugging within a windowing condition
US20080313502A1 (en) Systems, methods and computer products for trace capability per work unit
US11144424B2 (en) System and method for recording the beginning and ending of job level activity in a mainframe computing environment
US10496999B2 (en) Method and apparatus of controlling network payment
CN105930226B (zh) 一种数据处理方法及装置
CN105760283B (zh) 一种日志输出方法和装置
US9817731B2 (en) Acquiring diagnostic data selectively
US20130174167A1 (en) Intelligent inclusion/exclusion automation
US9805038B2 (en) Efficient conflict resolution among stateless processes
US20240152444A1 (en) Online query execution using a big data framework
CN104123104B (zh) 日志控制系统及方法
CN116701053B (zh) 生产环境数据库的数据备份恢复方法、装置、设备及介质
US11221862B2 (en) Capturing data from a live web application to populate a demo application
US9977726B2 (en) System and method for smart framework for network backup software debugging
US9430338B2 (en) Method and computing device for recording log entries
CN106844634B (zh) 一种数据库事务优化方法及系统
US10318282B2 (en) Method and system for monitoring quality control activities during development of a software application
US20220058179A1 (en) Executing database transactions
CN101315683A (zh) 企业内使用者端的档案总管系统及其方法

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant
TR01 Transfer of patent right
TR01 Transfer of patent right

Effective date of registration: 20200922

Address after: Cayman Enterprise Centre, 27 Hospital Road, George Town, Grand Cayman Islands

Patentee after: Innovative advanced technology Co.,Ltd.

Address before: Cayman Enterprise Centre, 27 Hospital Road, George Town, Grand Cayman Islands

Patentee before: Advanced innovation technology Co.,Ltd.

Effective date of registration: 20200922

Address after: Cayman Enterprise Centre, 27 Hospital Road, George Town, Grand Cayman Islands

Patentee after: Advanced innovation technology Co.,Ltd.

Address before: A four-storey 847 mailbox in Grand Cayman Capital Building, British Cayman Islands

Patentee before: Alibaba Group Holding Ltd.