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

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

Info

Publication number
CN105760283A
CN105760283A CN201410797577.XA CN201410797577A CN105760283A CN 105760283 A CN105760283 A CN 105760283A CN 201410797577 A CN201410797577 A CN 201410797577A CN 105760283 A CN105760283 A CN 105760283A
Authority
CN
China
Prior art keywords
task unit
daily record
unit
buffer zone
task
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
CN201410797577.XA
Other languages
English (en)
Other versions
CN105760283B (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

Landscapes

  • Debugging And Monitoring (AREA)

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 (8)

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

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108845866A (zh) * 2018-06-28 2018-11-20 阿里巴巴集团控股有限公司 处理分布式事务的方法和装置
CN112019617A (zh) * 2020-08-26 2020-12-01 支付宝(杭州)信息技术有限公司 一种数据存储方法、装置及设备
CN114237500A (zh) * 2021-12-09 2022-03-25 北京美信时代科技有限公司 一种通过缓存事务提高写入效率的方法及系统

Citations (4)

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

Patent Citations (4)

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

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108845866A (zh) * 2018-06-28 2018-11-20 阿里巴巴集团控股有限公司 处理分布式事务的方法和装置
CN108845866B (zh) * 2018-06-28 2021-06-29 创新先进技术有限公司 处理分布式事务的方法和装置
CN112019617A (zh) * 2020-08-26 2020-12-01 支付宝(杭州)信息技术有限公司 一种数据存储方法、装置及设备
CN114237500A (zh) * 2021-12-09 2022-03-25 北京美信时代科技有限公司 一种通过缓存事务提高写入效率的方法及系统

Also Published As

Publication number Publication date
CN105760283B (zh) 2018-11-09

Similar Documents

Publication Publication Date Title
JP6602435B2 (ja) 連続イベント処理(cep)クエリの並列の実行
US9031910B2 (en) System and method for maintaining a cluster setup
US9965364B2 (en) Fault tolerant listener registration in the presence of node crashes in a data grid
US8290994B2 (en) Obtaining file system view in block-level data storage systems
CN108153849B (zh) 一种数据库表切分方法、装置、系统和介质
US20160092570A1 (en) Sharing Configuration Information for Searches in Data Intake and Query Systems
WO2020181810A1 (zh) 应用于集群内多级缓存的数据处理方法和装置
US20160092558A1 (en) Hybrid Cluster-Based Data Intake and Query
CN109614262B (zh) 业务校验方法、装置及计算机可读存储介质
US20170147469A1 (en) Correlation of source code with system dump information
US20140081927A1 (en) Data node fencing in a distributed file system
US7792800B1 (en) Data repository upgrade process
CN108566290A (zh) 服务配置管理方法、系统、存储介质和服务器
US11609913B1 (en) Reassigning data groups from backup to searching for a processing node
US20080201333A1 (en) State transition controlled attributes
CN103782573A (zh) 对客户端和应用掩盖服务器停运
CN104778102A (zh) 一种主备切换方法及系统
JP2009288836A (ja) 仮想サーバのシステム障害回復方法及びそのシステム
WO2015149629A1 (zh) Dns行为的处理方法、装置及系统
CN108255620A (zh) 一种业务逻辑处理方法、装置、业务服务器及系统
CN108255994A (zh) 一种基于数据库快照的数据库版本管理方法
US8600960B2 (en) Processing proposed changes to data
US10083070B2 (en) Log file reduction according to problem-space network topology
CN110063042A (zh) 一种数据库故障的响应方法及其终端
CN105760283A (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

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.

TR01 Transfer of patent right