CN117493389A - 基于日志的处理方法及相关设备 - Google Patents
基于日志的处理方法及相关设备 Download PDFInfo
- Publication number
- CN117493389A CN117493389A CN202310565861.3A CN202310565861A CN117493389A CN 117493389 A CN117493389 A CN 117493389A CN 202310565861 A CN202310565861 A CN 202310565861A CN 117493389 A CN117493389 A CN 117493389A
- Authority
- CN
- China
- Prior art keywords
- communication connection
- execution
- executed
- environment
- statement
- 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.)
- Pending
Links
- 238000003672 processing method Methods 0.000 title claims abstract description 28
- 238000004891 communication Methods 0.000 claims abstract description 277
- 238000000034 method Methods 0.000 claims abstract description 62
- 230000008569 process Effects 0.000 claims abstract description 40
- 238000004458 analytical method Methods 0.000 claims abstract description 38
- 238000012545 processing Methods 0.000 claims description 26
- 238000003860 storage Methods 0.000 claims description 21
- 238000004590 computer program Methods 0.000 claims description 17
- 238000012423 maintenance Methods 0.000 abstract description 7
- 238000010586 diagram Methods 0.000 description 16
- 230000006870 function Effects 0.000 description 11
- 238000005516 engineering process Methods 0.000 description 4
- 230000003993 interaction Effects 0.000 description 4
- 230000005540 biological transmission Effects 0.000 description 3
- 238000002955 isolation Methods 0.000 description 3
- 238000003491 array Methods 0.000 description 2
- 238000013500 data storage Methods 0.000 description 2
- 238000011161 development Methods 0.000 description 2
- 238000007726 management method Methods 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000007639 printing Methods 0.000 description 2
- RYGMFSIKBFXOCR-UHFFFAOYSA-N Copper Chemical compound [Cu] RYGMFSIKBFXOCR-UHFFFAOYSA-N 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000008901 benefit Effects 0.000 description 1
- 230000000903 blocking effect Effects 0.000 description 1
- 230000001413 cellular effect Effects 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 229910052802 copper Inorganic materials 0.000 description 1
- 239000010949 copper Substances 0.000 description 1
- 238000013523 data management Methods 0.000 description 1
- 239000000835 fiber Substances 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 238000011835 investigation Methods 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 238000012544 monitoring process Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000005457 optimization Methods 0.000 description 1
- 230000002688 persistence Effects 0.000 description 1
- 230000008439 repair process Effects 0.000 description 1
- 238000011160 research Methods 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 238000012163 sequencing technique Methods 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 230000007704 transition Effects 0.000 description 1
- 230000007723 transport mechanism Effects 0.000 description 1
- 238000012384 transportation and delivery Methods 0.000 description 1
- 238000012800 visualization Methods 0.000 description 1
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/24—Querying
- G06F16/245—Query processing
- G06F16/2455—Query execution
-
- 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/24—Querying
- G06F16/242—Query formulation
- G06F16/2433—Query languages
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Computational Linguistics (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请提供了一种基于日志的处理方法及相关设备,属于数据库技术领域。该基于日志的处理方法包括:获取由客户端通过通信连接发送到位于服务器端的数据库的至少一个待执行语句,待执行语句用于执行目标操作;确定通信连接所处执行环境的环境类型,并根据环境类型确定通信连接的执行标识;获取通信连接的线程上下文信息,并根据线程上下文信息确定各个待执行语句的链路标识;获取各个待执行语句的执行信息,执行信息用于反映待执行语句执行目标操作的执行过程和执行结果;基于执行标识、链路标识和执行信息,生成通信连接的日志文件。根据本申请的实施例能够获得更加全面的日志文件,从而便于基于日志文件进行故障分析和运营维护等处理。
Description
技术领域
本申请涉及数据库技术领域,特别涉及一种基于日志的处理方法及相关设备。
背景技术
随着计算机技术的不断发展,数据库被广泛应用在各类软件应用中。通过数据库可以实现数据存储、查询、修改等多种数据处理,极大方便了对数据的集中管理。通常情况下,可以通过日志文件记录数据库使用过程中的各类记录信息,以便在发生故障或者需要运维等情况下,通过分析日志文件获取数据库的运行状态,从而进行故障修复和运营维护等处理。但是,在相关技术中,记录的日志信息较为单一,因此基于日志信息进行分析时,分析结果可能并不全面准确。因此,如何生成信息全面的日志文件成为计算机处理技术领域研究的热点问题之一。
发明内容
本申请提供一种基于日志的处理方法及相关设备,可以获得更加全面的日志文件,从而便于基于日志文件进行故障分析和运营维护等处理。
第一方面,本申请提供了一种基于日志的处理方法,该基于日志的处理方法包括:获取由客户端通过通信连接发送到位于服务器端的数据库的至少一个待执行语句,所述待执行语句用于执行目标操作;确定所述通信连接所处执行环境的环境类型,并根据所述环境类型确定所述通信连接的执行标识,所述执行标识用于表征所述通信连接所处执行环境的环境类型;获取所述通信连接的线程上下文信息,并根据所述线程上下文信息确定各个所述待执行语句的链路标识,所述线程上下文信息包括与所述通信连接关联的各个线程的信息,所述链路标识为用于反映待执行语句在执行过程中由于线程调用关系而生成的请求调用链路的标识;获取各个所述待执行语句的执行信息,所述执行信息用于反映所述待执行语句执行所述目标操作的执行过程和执行结果;基于所述执行标识、所述链路标识和所述执行信息,生成所述通信连接的日志文件。
第二方面,本申请提供了一种基于日志的处理装置,该基于日志的处理装置包括:第一获取模块,用于获取由客户端通过通信连接发送到位于服务器端的数据库的至少一个待执行语句,所述待执行语句用于执行目标操作;第一确定模块,用于确定所述通信连接所处执行环境的环境类型,并根据所述环境类型确定所述通信连接的执行标识,所述执行标识用于表征所述通信连接所处的执行环境的环境类型;第二确定模块,用于获取所述通信连接的线程上下文信息,并根据所述线程上下文信息确定各个所述待执行语句的链路标识,所述线程上下文信息包括与所述通信连接关联的各个线程的信息,所述链路标识为用于反映待执行语句在执行过程中由于线程调用关系而生成的请求调用链路的标识;第二获取模块,用于获取各个所述待执行语句的执行信息,所述执行信息用于反映所述待执行语句执行所述目标操作的执行过程和执行结果;生成模块,用于基于所述执行标识、所述链路标识和所述执行信息,生成所述通信连接的日志文件。
第三方面,本申请提供了一种电子设备,该电子设备包括:至少一个处理器;以及与所述至少一个处理器通信连接的存储器;其中,所述存储器存储有可被所述至少一个处理器执行的一个或多个计算机程序,一个或多个所述计算机程序被所述至少一个处理器执行,以使所述至少一个处理器能够执行上述的基于日志的处理方法。
第四方面,本申请提供了一种计算机可读存储介质,其上存储有计算机程序,其中,所述计算机程序在被处理器执行时实现上述的基于日志的处理方法。
本申请所提供的实施例,首先,获取由客户端通过通信连接发送到位于服务器端的数据库的至少一个待执行语句,待执行语句用于执行目标操作,待执行语句是由客户端通过通信连接发送的语句,通过数据库与客户端之间的通信连接,为两者进行数据交互提供了通信基础,使得客户端可以向数据库发送待执行语句,以获得相应的执行反馈结果;其次,确定通信连接所处执行环境的环境类型,并根据环境类型确定通信连接的执行标识,执行标识用于表征通信连接所处执行环境的环境类型,通过该步骤,可以根据通信连接所处的环境类型,为本次通信连接赋予相应的执行标识,以便后续基于该执行标识快速准确地锁定当前通信连接;然后,获取通信连接的线程上下文信息,并根据线程上下文信息确定各个待执行语句的链路标识,线程上下文信息包括与通信连接关联的各个线程的信息,链路标识为用于反映待执行语句在执行过程中由于线程调用关系而生成的请求调用链路的标识,基于此,通过线程上下文信息明确了通信连接的线程调用情况,从而可以为该通信连接所对应的执行性语句生成相应的链路标识,便于基于该链路标识将具有调用关系的待执行语句串联起来,以进行相应的故障分析等处理;进一步地,获取各个待执行语句的执行信息,执行信息用于反映待执行语句执行目标操作的执行过程和执行结果,从而可以明确每个待执行语句的执行情况;最后,基于执行标识、链路标识和执行信息,生成通信连接的日志文件,该日志文件中保留了执行标识、链路标识和执行信息等信息,便于基于该日志文件进行各类分析,提高了日志的利用价值。
应当理解,本部分所描述的内容并非旨在标识本申请的实施例的关键或重要特征,也不用于限制本申请的范围。本申请的其它特征将通过以下的说明书而变得容易理解。
附图说明
附图用来提供对本申请的进一步理解,并且构成说明书的一部分,与本申请的实施例一起用于解释本申请,并不构成对本申请的限制。通过参考附图对详细示例实施例进行描述,以上和其他特征和优点对本领域技术人员将变得更加显而易见,在附图中:
图1为本申请实施例提供的一种基于日志的处理方法的流程图;
图2为本申请实施例提供的一种基于日志的处理方法的处理过程示意图;
图3为本申请实施例提供的一种基于日志的处理方法的流程示意图;
图4为本申请实施例提供的一种基于日志的处理装置的框图;
图5为本申请实施例提供的一种电子设备的框图。
具体实施方式
为使本领域的技术人员更好地理解本申请的技术方案,以下结合附图对本申请的示范性实施例做出说明,其中包括本申请实施例的各种细节以助于理解,应当将它们认为仅仅是示范性的。因此,本领域普通技术人员应当认识到,可以对这里描述的实施例做出各种改变和修改,而不会背离本申请的范围和精神。同样,为了清楚和简明,以下的描述中省略了对公知功能和结构的描述。
在不冲突的情况下,本申请各实施例及实施例中的各特征可相互组合。
如本文所使用的,术语“和/或”包括一个或多个相关列举条目的任何和所有组合。
本文所使用的术语仅用于描述特定实施例,且不意欲限制本申请。如本文所使用的,单数形式“一个”和“该”也意欲包括复数形式,除非上下文另外清楚指出。还将理解的是,当本说明书中使用术语“包括”和/或“由……制成”时,指定存在所述特征、整体、步骤、操作、元件和/或组件,但不排除存在或添加一个或多个其它特征、整体、步骤、操作、元件、组件和/或其群组。“连接”或者“相连”等类似的词语并非限定于物理的或者机械的连接,而是可以包括电性的连接,不管是直接的还是间接的。
除非另外限定,否则本文所用的所有术语(包括技术和科学术语)的含义与本领域普通技术人员通常理解的含义相同。还将理解,诸如那些在常用字典中限定的那些术语应当被解释为具有与其在相关技术以及本申请的背景下的含义一致的含义,且将不解释为具有理想化或过度形式上的含义,除非本文明确如此限定。
在软件系统的开发过程中,数据作为软件系统的核心要素之一,显得尤为重要。作为数据的载体,数据库属于必不可少的数据管理工具。例如,关系型数据库作为常用的数据存储载体,可能会涉及到大量的基于结构化查询语言(Structured Query Language,SQL)语句的数据处理,SQL语句记录对于数据库优化和问题排查非常重要。在相关技术中,通常在执行SQL语句时,打印SQL语句相关日志,并将相关日志存储于指定的系统文件中。
但是,当前的这种数据处理方式,无法关联请求调用链路,因此无法有效定位SQL语句属于哪个请求,而且,也无法确定SQL语句对应哪个事务,不利于分析与解决死锁问题,另外,由于日志中记录的信息较少,因此,难以分析事务的大小及耗时。
有鉴于此,本申请实施例提供一种基于日志的处理方法、基于日志的处理装置、设备及介质。
本申请所提供的实施例,首先,获取由客户端通过通信连接发送到位于服务器端的数据库的至少一个待执行语句,待执行语句用于执行目标操作,待执行语句是由客户端通过通信连接发送的语句,通过数据库与客户端之间的通信连接,为两者进行数据交互提供了通信基础,使得客户端可以向数据库发送待执行语句,以获得相应的执行反馈结果;其次,确定通信连接所处执行环境的环境类型,并根据环境类型确定通信连接的执行标识,执行标识用于表征通信连接所处执行环境的环境类型,通过该步骤,可以根据通信连接所处的环境类型,为本次通信连接赋予相应的执行标识,以便后续基于该执行标识快速准确地锁定当前通信连接;然后,获取通信连接的线程上下文信息,并根据线程上下文信息确定各个待执行语句的链路标识,线程上下文信息包括与通信连接关联的各个线程的信息,链路标识为用于反映待执行语句在执行过程中由于线程调用关系而生成的请求调用链路的标识,基于此,通过线程上下文信息明确了通信连接的线程调用情况,从而可以为该通信连接所对应的执行性语句生成相应的链路标识,便于基于该链路标识将具有调用关系的待执行语句串联起来,以进行相应的故障分析等处理;进一步地,获取各个待执行语句的执行信息,执行信息用于反映待执行语句执行目标操作的执行过程和执行结果,从而可以明确每个待执行语句的执行情况;最后,基于执行标识、链路标识和执行信息,生成通信连接的日志文件,该日志文件中保留了执行标识、链路标识和执行信息等信息,便于基于该日志文件进行各类分析,提高了日志的利用价值。
根据本申请实施例的基于日志的处理方法可以由终端设备或服务器等电子设备执行,终端设备可以为用户设备(User Equipment,UE)、移动设备、用户终端、蜂窝电话、无绳电话、个人数字助理(Personal Digital Assistant,PDA)、手持设备、计算设备、车载设备、可穿戴设备等,所述方法可以通过处理器调用存储器中存储的计算机可读程序指令的方式来实现。服务器可以是独立的物理服务器、由多个服务器组成的服务器集群或者能够进行云计算的云服务器。
第一方面,本申请实施例提供一种基于日志的处理方法。
图1为本申请实施例提供的一种基于日志的处理方法的流程图。参照图1,该基于日志的处理方法包括:
在步骤S11中,获取由客户端通过通信连接发送到位于服务器端的数据库的至少一个待执行语句,待执行语句用于执行目标操作。
在一些可选的实现方式中,待执行语句是由客户端通过通信连接(Connection)发送的语句。
示例性地,客户端与数据库之间建立通信连接之后,基于该通信连接向数据库发送一个或多个待执行语句,待执行语句可以指示数据库执行相应的操作(即目标操作),并可根据需要要求数据库返回相应的反馈结果。例如,基于待执行语句可以执行的目标操作可以包括增删改查,具体可以是数据添加操作、数据删除操作、数据修改操作、以及数据查询操作,且执行完数据查询操作之后,可以向客户端返回相应的查询结果。
进一步地,考虑到频繁的创建、断开数据库通信连接,会增加数据库系统在性能及响应时间上的开销,因此,可以采用数据库连接池的方式实现客户端与数据库之间的通信连接。其中,数据库连接池可以用来分配、管理和释放数据库通信连接,其允许客户端重复使用一个现有的数据库通信连接,不需要重新创建,还可以释放空闲时间超过最大空闲时间的数据库通信连接,以避免因为没有释放数据库通信连接而引起数据库连接遗漏,提高数据库操作的性能。
示例性地,数据库连接池在初始化过程中创建一定数量的数据库通信连接放于连接池中,当客户端需要访问数据库时,不需要建立新的通信连接,直接从连接池中取出一个已建立的空闲通信连接使用,在使用完毕后,将通信连接归还到连接池中,以供其他客户端使用,从而实现资源的共享。
在一些可选的实现方式中,基于待执行语句对数据库的一系列操作,分别可以对应事务(Transaction)或者非事务。其中,事务是一个不可分割的数据库操作序列,也是数据库并发控制的基本单位,其具有原子性、一致性、隔离性、持久性。其中,原子性是指事务包含的所有操作要么全部成功,要么全部失败回滚;一致性是指事务必须使数据库从一个一致性状态变换到另一个一致性状态;隔离性是当多个用户并发访问数据库时(例如,多个用户操作同一张表时),数据库为每一个用户开启的事务,不能被其他事务的操作所干扰,多个并发事务之间要相互隔离;持久性是指一个事务一旦被提交,则其对数据库中的数据的改变就是永久性的。
换言之,事务是逻辑上的一组操作,要么都执行,要么都不执行。针对多个待执行语句组成的一个事务,只有在该多个待执行语句均操作成功的情况下,才会认为完成该事务,否则(只要有至少一个待执行语句操作失败,则其他待执行语句也均认为操作失败),确定未完成该事务。与之相应的,非事务则可以是一个或多个相对独立的数据库操作,当前待执行语句是否操作成功不影响后续待执行语句的执行。
基于事务和非事务的上述特性,在一些可选的实现方式中,在确定要处理事务时,客户端建立与数据库的通信连接,并基于该通信连接发送该事务对应的所有待执行语句,以便基于同一个通信连接执行事务;在确定要处理非事务时,客户端建立与数据库的通信连接,并基于该通信连接发送一条或多条非事务性的待执行语句。
例如,事务A对应待执行语句1、待执行语句2和待执行语句3,客户端通过数据库连接池中的通信连接a,与数据库建立通信连接,并基于该通信连接a将待执行语句1、待执行语句2和待执行语句3发送到数据库。
例如,待执行语句4和待执行语句5对应非事务,则客户端可以通过数据库连接池中的通信连接b,与数据库建立通信连接,并基于该通信连接b将待执行语句4和待执行语句5发送到数据库;或者,客户端也可以通过数据库连接池中的通信连接b和通信连接c,分别与数据库建立通信连接,并基于通信连接b将待执行语句4发送到数据库,通过通信连接c将待执行语句5发送到数据库。
在一些可选的实现方式中,上述通信连接可以通过线程(Thread)的方式实现,即客户端和数据库之间建立通信连接时,承载数据库的电子设备或者其他电子设备会为该通信连接分配一定的线程资源,建立相应的线程来承载该通信连接。通常情况下,一个事务在同一时间会单独占用一条线程,以保障事务的隔离性。
在步骤S12中,确定通信连接所处执行环境的环境类型,并根据环境类型确定通信连接的执行标识,执行标识用于表征通信连接所处执行环境的环境类型。
在一些可选的实现方式中,环境类型可用于表征通信连接所处的执行环境的类型。
在一些可选的实现方式中,通信连接所处的环境类型包括事务环境和非事务环境。换言之,即客户端可以针对事务与数据库建立连接,此时该通信连接处于事务环境,表示当前通信连接需要显式提交(Commit)或者回滚(Rollback);当客户端针对非事务与数据库建立通信连接时,该通信连接处于非事务环境,无需显式提交和回滚。
在一些可选的实现方式中,可以通过注解的方式说明处于何种执行环境中。
示例性地,确定通信连接所处的环境类型,包括:获取通信连接的环境注解,环境注解是对通信连接所处的执行环境的解释;根据环境注解,确定通信连接所处的执行环境的环境类型。
例如,如果由待执行语句组成的代码中,在类(Class)或者方法(Method)前面,存在注解“@Transactional”,则说明当前属于事务环境(即处于该注解范围内的类或者方法,均属于事务)。
在一些可选的实现方式中,在确定通信连接所处的环境类型之后,根据环境类型确定通信连接的执行标识,包括:
在通信连接处于事务环境的情况下,根据事务环境对应的事务的全局标识,确定通信连接的执行标识;在通信连接处于非事务环境的情况下,根据预设规则生成通信连接的执行标识,预设规则为用于针对非事务环境下的通信连接生成执行标识的规则。通过执行标识,可以快速确定与当前通信连接对应的事务或者非事务,便于进行死锁分析等处理。
示例性地,在确定通信连接处于事务环境的情况下,判断该通信连接对应的事务是否存在全局标识,若存在,则将该全局标识作为当前通信连接的执行标识,若不存在,则生成一个全局标识,将该全局标识绑定当前通信连接,并将其作为当前通信连接的执行标识;在确定通信连接处于非事务环境的情况下,可以根据预设规则生成一个非事务全局标识,并将其作为该通信连接的执行标识。其中,预设规则中可以规定生成执行标识的长度、元素(例如,是否可以使用数字、大小写字母、特殊符号等)、生成算法等内容,只要能生成可以唯一标识通信连接的标识即可,本申请实施例对此不作限制。
在步骤S13中,获取通信连接的线程上下文信息,并根据线程上下文信息确定各个待执行语句的链路标识。
在一些可选的实现方式中,线程上下文(Context)信息包括与通信连接关联的各个线程的信息,链路标识为用于反映待执行语句在执行过程中由于线程调用关系而生成的请求调用链路的标识。
在一些可选的实现方式中,可以将与通信连接关联的线程的信息存储到线程上下文中,其中,与通信连接关联的线程至少包括通信连接的承载线程以及与该承载线程存在调用关系的线程。
在一些可选的实现方式中,根据线程上下文信息确定各个待执行语句的链路标识,包括:针对每个待执行语句,根据通信连接的线程上下文信息,确定每个待执行语句对应的当前线程,以及用于标识当前线程的第一标识信息;确定当前线程的上一级线程,以及用于标识上一级线程的第二标识信息;根据每个待执行语句当前线程的第一标识信息,以及上一级线程的第二标识信息,得到通信连接对应的每个待执行语句的链路标识。
示例性地,链路标识可以由两部分组成,第一部分为当前线程(即承载通信连接的线程)的身份标识,第二部分为当前线程的上一级线程的身份标识,基于这两部分内容,可以明确线程之间的调用关系。
示例性地,可以基于映射诊断环境(Mapped Diagnostic Context,MDC),获取插件pinpoint(一种应用性能管理工具,可以监测链路的调用先后顺序,以记录链路关系)中的追踪标识(例如,PtxId或者其他自定义的标识),基于此确定各个待执行语句的链路标识。
换言之,通信连接由相应的线程承载,在确定通信连接的线程上下文信息之后,即可明确承载该通信连接的当前线程的标识信息、以及与当前线程存在调用关系的上一级线程的标识信息,将这两部分标识信息进行组合,即可确定该通信连接所对应的各个待执行语句的链路标识。基于此,可以将待执行语句赋予相应的链路标识,通过该链路标识,可以将待执行语句串联起来,形成请求调用链路,某一条请求调用链路对应的所有待执行语句可以视为与某一个请求相关的语句。由于请求调用链路包括多个通信连接,每个通信连接均由相应的线程承载,而线程由相应的接口建立,因此,通过分析请求调用链路相关的日志记录,可以反映对应的请求的执行情况,还可以明确该请求调用链路上建立线程的各个接口的运行状态,有助于改进待执行语句的撰写方式、以及定位故障和分析故障原因。
在步骤S14中,获取各个待执行语句的执行信息,执行信息用于反映待执行语句执行目标操作的执行过程和执行结果。
示例性地,待执行语句的执行信息可以包括待执行语句的执行结果、执行开始时间、执行结束时间中的至少一种。
示例性地,在确定执行事务时,当执行该事务的第一个待执行语句时,相应的执行信息中可以包括事务开始标识、执行结果、执行开始时间、执行结束时间等,其中,事务开始标识用于表征开始执行新的事务。类似的,在执行该事务的最后一个待执行语句时,相应的执行信息中可以包括事务结束标识、执行结果、执行开始时间、执行结束时间等,其中,事务结束标识用于表征结束当前事务。通过事务开始标识和事务结束标识,可以明确事务的范围。
需要说明的是,以上对于执行信息仅是举例说明,本申请实施例对此不作限制。
在步骤S15中,基于执行标识、链路标识和执行信息,生成通信连接的日志文件。
在一些可选的实现方式中,将执行标识、链路标识和执行信息按照一定的格式进行整理,即可形成通信连接的日志文件。通过日志文件,可以明确各个通信连接对应的事务或者非事务,事务或者非事务的各个待执行语句的链路标识,以及各个待执行语句的执行信息。进一步地,根据执行信息中的执行开始时间和执行结束时间,可以计算出各个事务的耗时以及各个非事务的耗时,进而根据耗时分析可能存在的问题或者进行相应的改进以减少耗时。
示例性地,基于执行标识、链路标识和执行信息,生成通信连接的日志文件之后,可以将日志文件存储于相应的log(日志)文件中,并可通过Filebeat(一种轻量型日志采集器,可以定时采集指定目录下的日志文件内容)或者其他方式采集日志文件中的内容到ElasticSearch(一种分布式搜索和分析引擎),以便进行分析和问题查询,另外,还可以使用kibana(一个开源的分析和可视化平台,可以将原始数据转换成各种图形、表格等可视化数据)等工具生成监控图表实时地监控事务耗时。
在一些可选的实现方式中,基于执行标识、链路标识和执行信息,生成通信连接的日志文件之后,还包括:根据各个待执行语句的链路标识,确定至少一个请求调用链路,其中,请求调用链路包括多个具有调用关系的线程;从日志文件中获取与各个请求调用链路关联的日志记录;对与各个请求调用链路关联的日志记录进行分析,获得日志分析结果,其中,日志分析结果用于反映请求调用链路上各个线程的运行状态。
换言之,可以通过链路标识,将具有线程调用关系的线程串联起来,形成了请求调用链路,同时,通过该请求调用链路,也可以将基于这些线程处理的待执行语句串联起来,通过分析与该请求调用链路相关的日志记录,即可确定这些线程的运行状态、各个线程上的待执行语句的执行情况,从而实现故障定位、故障分析、维护升级等处理。
在一些可选的实现方式中,对与各个请求调用链路关联的日志记录进行分析,获得日志分析结果,包括:确定与多条日志记录对应的多个待执行语句,并确定多个待执行语句对应的至少一个通信连接;确定各个通信连接的执行标识;根据各个通信连接的执行标识,确定各个通信连接所处执行环境的环境类型;根据各个通信连接所处执行环境的环境类型,确定至少一个目标事务;确定至少一个目标事务的资源占用信息,资源占用信息用于表征各项资源是否处于被占用状态;对资源占用信息进行分析,得到日志分析结果,日志分析结果用于表征各个目标事务之间是否存在死锁以及死锁原因。
死锁是指两个或两个以上的进程在执行过程中,由于资源抢占或者相互通信而造成的一种阻塞现象。换言之,由于资源占用是互斥的,当某个进程提出申请资源后,使得有关进程在无外力协助下,永远分配不到必需的资源而无法继续运行,从而出现死锁情况。在本申请实施例中,由于日记记录与实务及其对应待执行语句相关联,因此,通过分析相应的日志记录,即可确定哪些事务处于等待状态,这些事务即为可以发生死锁的目标事务,针对这些目标事务,分析其资源占用情况,可以明确哪些资源被占用,并进一步分析是否存在目标事务之间抢占资源的情况,若不存在,则可以初步确定并非死锁导致事务处于等待状态,若存在抢占资源的情况,则通过分析哪些资源被抢占、被哪些事务抢占,可以分析出发生死锁的原因,并制定相应的解决方案。
在本申请实施例中,首先,获取由客户端通过通信连接发送到位于服务器端的数据库的至少一个待执行语句,待执行语句用于执行目标操作,待执行语句是由客户端通过通信连接发送的语句,通过数据库与客户端之间的通信连接,为两者进行数据交互提供了通信基础,使得客户端可以向数据库发送待执行语句,以获得相应的执行反馈结果;其次,确定通信连接所处执行环境的环境类型,并根据环境类型确定通信连接的执行标识,执行标识用于表征通信连接所处执行环境的环境类型,通过该步骤,可以根据通信连接所处的环境类型,为本次通信连接赋予相应的执行标识,以便后续基于该执行标识快速准确地锁定当前通信连接;然后,获取通信连接的线程上下文信息,并根据线程上下文信息确定各个待执行语句的链路标识,线程上下文信息包括与通信连接关联的各个线程的信息,链路标识为用于反映待执行语句在执行过程中由于线程调用关系而生成的请求调用链路的标识,基于此,通过线程上下文信息明确了通信连接的线程调用情况,从而可以为该通信连接所对应的执行性语句生成相应的链路标识,便于基于该链路标识将具有调用关系的待执行语句串联起来,以进行相应的故障分析等处理;进一步地,获取各个待执行语句的执行信息,执行信息用于反映待执行语句执行目标操作的执行过程和执行结果,从而可以明确每个待执行语句的执行情况;最后,基于执行标识、链路标识和执行信息,生成通信连接的日志文件,该日志文件中保留了执行标识、链路标识和执行信息等信息,便于基于该日志文件进行各类分析,提高了日志的利用价值。
图2为本申请实施例提供的一种基于日志的处理方法的处理过程示意图。参照图2,事务A对应的待执行语句包括SQL11、SQL12、…、SQL1n,事务B对应的待执行语句包括SQL21、SQL22、…、SQL2m,非事务C对应语句SQL31,非事务D对应SQL41,事务E对应的待执行语句包括SQL51、SQL52、…、SQL5k,其中,n、m、k均为大于或等于1的整数。
针对SQL11、SQL12、…、SQL1n,其对应的通信连接处于事务环境,因此,获取事务A的全局标识txid1,将其作为该通信连接的执行标识;类似的,可以确定SQL21、SQL22、…、SQL2m所对应的通信连接的执行标识为事务B的全局标识txid2,可以确定SQL51、SQL52、…、SQL5k所对应的通信连接的执行标识为事务E的全局标识txid3。
对于SQL31,由于其为非事务语句,因此,其对应的通信连接处于非事务环境,基于此,根据预设规则为SQL31所对应的通信连接生成执行标识nontxid1;类似的,可以为SQL41所对应的通信连接生成执行标识nontxid2。
进一步地,对于事务A而言,获取其通信连接的线程上下文信息,从而明确承载该通信连接的线程为线程11,且线程11的上一级线程为线程12,因此可以得到事务A中各个待执行语句的链路标识为(id11,id12),其中,id11为线程11的标识,id12为线程12的标识。由于线程12也存在相应的线程调用关系,因此,可以根据该线程调用关系确定线程12的上一级线程,以此类推,可以得到多个具有调用关系的线程,从而得到一条请求调用链路。在出现故障或者达到维护周期等情况下,可以从日志文件中获取与该请求调用链路关联的日志记录,并通过对该关联的日志记录进行分析,可以获得日志分析结果,通过该日志分析结果,可以获知该请求调用链路上各个线程的运行状态,从而能够快速准确地定位故障,便于进行故障分析,或者判断是否存在改进数据库的需求。
对于事务B,可以基于类似的方式,获取事务B对应的通信连接的上下文信息,从而确定事务B的各个待执行语句的链路标识为(id21,id22),其中,id21为线程21的标识,id22为线程12的标识,线程21为承载事务B对应的通信连接的线程,线程22为线程21的上一级线程。
对于非事务C,可以获取非事务C对应的通信连接的上下文信息,从而确定SQL31的链路标识为(id31,id32),其中,id31为线程31的标识,id32为线程32的标识,线程31为承载非事务C对应的通信连接的线程,线程32为线程31的上一级线程。
对于非事务D,可以获取非事务D对应的通信连接的上下文信息,从而确定SQL41的链路标识为(id41,id42),其中,id41为线程41的标识,id42为线程42的标识,线程41为承载非事务D对应的通信连接的线程,线程42为线程41的上一级线程。
对于事务E,可以获取事务E对应的通信连接的上下文信息,从而确定事务E的各个待执行语句的链路标识为(id51,id52),其中,id51为线程51的标识,id52为线程52的标识,线程51为承载事务E对应的通信连接的线程,线程52为线程51的上一级线程。
类似的,针对事务B、非事务C、非事务D以及事务E,均可通过其待执行语句的链路标识,得到相应的请求调用链路,以基于请求调用链路的关联日志记录,进行故障分析和运营维护。
图3为本申请实施例提供的一种基于日志的处理方法的流程示意图。参照图3,该基于日志的处理方法包括:
步骤S301,与客户端建立通信连接,并基于该通信连接接收客户端发送的至少一个待执行语句。
示例性地,客户端存在数据处理请求时,向连接池发起连接获取请求,并在连接获取请求中说明请求类型,请求类型用于表征当前请求属于事务类型还是非事务类型。连接池根据连接获取请求的类型,向客户端返回相应的通信连接(例如,若请求类型为事务类型,则返回事务类型的通信连接,即处于事务环境的通信连接),客户端基于该通信连接向数据库发送待执行语句。
步骤S302,确定通信连接所处执行环境的环境类型是否为事务环境。
在通信连接处于事务环境的情况下,跳转至步骤S303,在通信连接处于非事务环境的情况下,跳转至步骤S306。
步骤S303,确定该事务环境对应事务是否存在全局标识。
在存在全局标识的情况下,跳转至步骤S304,否则,跳转至步骤S305。
步骤S304,获取该事务的全局标识,并将该全局标识作为通信连接的执行标识。
步骤S305,为事务环境对应的事务生成全局标识,并将该全局标识与通信连接绑定,作为该通信连接的执行标识。
步骤S306,根据预设规则生成该通信连接的执行标识。
在确定通信连接的执行标识之后,执行步骤S307。
步骤S307,打印开始日志。
其中,开始日志可以是用于表征开始执行某一项事务或者非事务的标识。在一堆日志文件中,通过开始日志,即可以明确从该开始日志开始,对应一个新的事务或者非事务的执行过程。
步骤S308,执行待执行语句,得到执行信息,并根据执行信息打印执行日志。
步骤S309,确定是否执行完成待执行语句。
针对事务类型,当事务被提交或回滚,或者进入非事务环境的情况下,确定执行完成所有的待执行语句;针对非事务类型,执行完接收的所有待执行语句之后,即确定执行完成。
在确定执行完成的情况下,跳转至步骤S310,否则,跳转至步骤S308。
步骤S310,打印结束日志,获得通信连接的日志文件。
其中,结束日志可以用于表征结束对某一项事务或者非事务的执行过程,且结束日志与开始日志通常成对出现。
在一些可选的实现方式中,通信连接的日志文件中可以包括开始日志、执行日志和结束日志三部分,开始日志表示开始执行一个新的事务或者非事务,执行信息为执行过程中产生的各类信息,结束日志表示该事务或者非事务被执行完毕。
在一些可选的实现方式中,在执行完事务的所有待执行语句的情况下,还可以删除该事务的全局标识。
可以理解,本申请提及的上述各个方法实施例,在不违背原理逻辑的情况下,均可以彼此相互结合形成结合后的实施例,限于篇幅,本申请不再赘述。本领域技术人员可以理解,在具体实施方式的上述方法中,各步骤的具体执行顺序应当以其功能和可能的内在逻辑确定。
第二方面,本申请实施例提供一种基于日志的处理装置。
图4为本申请实施例提供的一种基于日志的处理装置的框图。
参照图4,本申请实施例提供了一种基于日志的处理装置,该基于日志的处理装置400包括:
第一获取模块401,用于获取由客户端通过通信连接发送到位于服务器端的数据库的至少一个待执行语句,待执行语句用于执行目标操作;
第一确定模块402,用于确定通信连接所处执行环境的环境类型,并根据环境类型确定通信连接的执行标识,执行标识用于表征通信连接所处执行环境的环境类型;
第二确定模块403,用于获取通信连接的线程上下文信息,并根据线程上下文信息确定各个待执行语句的链路标识,线程上下文信息包括与通信连接关联的各个线程的信息,链路标识为用于反映待执行语句在执行过程中由于线程调用关系而生成的请求调用链路的标识;
第二获取模块404,用于获取各个待执行语句的执行信息,执行信息用于反映待执行语句执行目标操作的执行过程和执行结果;
生成模块405,用于基于执行标识、链路标识和执行信息,生成通信连接的日志文件。
在一些可选的实现方式中,第一确定模块402在确定通信连接所处执行环境的环境类型时,执行以下步骤:获取通信连接的环境注解,环境注解是对通信连接所处的执行环境的解释;根据环境注解,确定通信连接所处执行环境的环境类型,其中,通信连接所处的环境类型包括事务环境和非事务环境。
在一些可选的实现方式中,第一确定模块402在根据环境类型确定通信连接的执行标识时,执行以下步骤:在通信连接处于事务环境的情况下,根据事务环境对应的事务的全局标识,确定通信连接的执行标识;在通信连接处于非事务环境的情况下,根据预设规则生成通信连接的执行标识,预设规则为用于针对非事务环境下的通信连接生成执行标识的规则。
在一些可选的实现方式中,第一确定模块402在根据事务环境对应的事务的全局标识,确定通信连接的执行标识时,执行以下步骤:在确定通信连接处于事务环境的情况下,判断通信连接对应的事务是否存在全局标识;若通信连接对应的事务存在全局标识,则将全局标识作为通信连接的执行标识;若通信连接对应的事务不存在全局标识,则生成一个全局标识,并在将生成的全局标识绑定通信连接后,作为通信连接的执行标识。
在一些可选的实现方式中,第二确定模块403在根据线程上下文信息确定各个待执行语句的链路标识时,执行以下步骤:针对每个待执行语句,根据通信连接的线程上下文信息,确定每个待执行语句对应的当前线程,以及用于标识当前线程的第一标识信息;确定当前线程的上一级线程,以及用于标识上一级线程的第二标识信息;根据每个待执行语句当前线程的第一标识信息,以及上一级线程的第二标识信息,得到通信连接对应的每个待执行语句的链路标识。
在一些可选的实现方式中,日志文件包括多条日志记录;生成模块405在基于执行标识、链路标识和执行信息,生成通信连接的日志文件之后,还可以执行以下步骤:根据各个待执行语句的链路标识和日志文件,确定至少一个请求调用链路,其中,请求调用链路包括多个具有调用关系的线程;从日志文件中获取与各个请求调用链路关联的多条日志记录;对与各个请求调用链路关联的日志记录进行分析,获得日志分析结果,其中,日志分析结果用于反映请求调用链路上各个线程的运行状态。
在一些可选的实现方式中,生成模块405在对与各个请求调用链路关联的日志记录进行分析,获得日志分析结果时,还可以执行以下步骤:确定与多条日志记录对应的多个待执行语句,并确定多个待执行语句对应的至少一个通信连接;确定各个通信连接的执行标识;根据各个通信连接的执行标识,确定各个通信连接所处执行环境的环境类型;根据各个通信连接所处执行环境的环境类型,确定至少一个目标事务;确定至少一个目标事务的资源占用信息,资源占用信息用于表征各项资源是否处于被占用状态;对资源占用信息进行分析,得到日志分析结果,日志分析结果用于表征各个目标事务之间是否存在死锁以及死锁原因。
在本申请实施例中,首先,通过第一获取模块401获取由客户端通过通信连接发送到位于服务器端的数据库的至少一个待执行语句,待执行语句用于执行目标操作,待执行语句是由客户端通过通信连接发送的语句,通过数据库与客户端之间的通信连接,为两者进行数据交互提供了通信基础,使得客户端可以向数据库发送待执行语句,以获得相应的执行反馈结果;其次,通过第一确定模块402确定通信连接所处执行环境的环境类型,并根据环境类型确定通信连接的执行标识,执行标识用于表征通信连接所处执行环境的环境类型,通过该步骤,可以根据通信连接所处的环境类型,为本次通信连接赋予相应的执行标识,以便后续基于该执行标识快速准确地锁定当前通信连接;然后,通过第二确定模块403获取通信连接的线程上下文信息,并根据线程上下文信息确定各个待执行语句的链路标识,线程上下文信息包括与通信连接关联的各个线程的信息,链路标识为用于反映待执行语句在执行过程中由于线程调用关系而生成的请求调用链路的标识,基于此,通过线程上下文信息明确了通信连接的线程调用情况,从而可以为该通信连接所对应的执行性语句生成相应的链路标识,便于基于该链路标识将具有调用关系的待执行语句串联起来,以进行相应的故障分析等处理;进一步地,通过第二获取模块404获取各个待执行语句的执行信息,执行信息用于反映待执行语句执行目标操作的执行过程和执行结果,从而明确每个待执行语句的执行情况;最后,由生成模块405基于执行标识、链路标识和执行信息,生成通信连接的日志文件,该日志文件中保留了丰富的信息,便于基于该日志文件进行各类分析,提高了日志的利用价值。
此外,本申请还提供了电子设备、计算机可读存储介质,上述均可用来实现本申请提供的任一种基于日志的处理方法,相应技术方案和描述和参见方法部分的相应记载,不再赘述。
图5为本申请实施例提供的一种电子设备的框图。
参照图5,本申请实施例提供了一种电子设备,该电子设备包括:至少一个处理器501;至少一个存储器502,以及一个或多个I/O接口503,连接在处理器501与存储器502之间;其中,存储器502存储有可被至少一个处理器501执行的一个或多个计算机程序,一个或多个计算机程序被至少一个处理器501执行,以使至少一个处理器501能够执行上述的基于日志的处理方法。
本申请实施例还提供了一种计算机可读存储介质,其上存储有计算机程序,其中,所述计算机程序在被处理器执行时实现上述的基于日志的处理方法。计算机可读存储介质可以是易失性或非易失性计算机可读存储介质。
本申请实施例还提供了一种计算机程序产品,包括计算机可读代码,或者承载有计算机可读代码的非易失性计算机可读存储介质,当所述计算机可读代码在电子设备的处理器中运行时,所述电子设备中的处理器执行上述基于日志的处理方法。
本领域普通技术人员可以理解,上文中所公开方法中的全部或某些步骤、系统、装置中的功能模块/单元可以被实施为软件、固件、硬件及其适当的组合。在硬件实施方式中,在以上描述中提及的功能模块/单元之间的划分不一定对应于物理组件的划分;例如,一个物理组件可以具有多个功能,或者一个功能或步骤可以由若干物理组件合作执行。某些物理组件或所有物理组件可以被实施为由处理器,如中央处理器、数字信号处理器或微处理器执行的软件,或者被实施为硬件,或者被实施为集成电路,如专用集成电路。这样的软件可以分布在计算机可读存储介质上,计算机可读存储介质可以包括计算机存储介质(或非暂时性介质)和通信介质(或暂时性介质)。
如本领域普通技术人员公知的,术语计算机存储介质包括在用于存储信息(诸如计算机可读程序指令、数据结构、程序模块或其他数据)的任何方法或技术中实施的易失性和非易失性、可移除和不可移除介质。计算机存储介质包括但不限于随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM)、静态随机存取存储器(SRAM)、闪存或其他存储器技术、便携式压缩盘只读存储器(CD-ROM)、数字多功能盘(DVD)或其他光盘存储、磁盒、磁带、磁盘存储或其他磁存储装置、或者可以用于存储期望的信息并且可以被计算机访问的任何其他的介质。此外,本领域普通技术人员公知的是,通信介质通常包含计算机可读程序指令、数据结构、程序模块或者诸如载波或其他传输机制之类的调制数据信号中的其他数据,并且可包括任何信息递送介质。
这里所描述的计算机可读程序指令可以从计算机可读存储介质下载到各个计算/处理设备,或者通过网络、例如因特网、局域网、广域网和/或无线网下载到外部计算机或外部存储设备。网络可以包括铜传输电缆、光纤传输、无线传输、路由器、防火墙、交换机、网关计算机和/或边缘服务器。每个计算/处理设备中的网络适配卡或者网络接口从网络接收计算机可读程序指令,并转发该计算机可读程序指令,以供存储在各个计算/处理设备中的计算机可读存储介质中。
用于执行本申请操作的计算机程序指令可以是汇编指令、指令集架构(ISA)指令、机器指令、机器相关指令、微代码、固件指令、状态设置数据、或者以一种或多种编程语言的任意组合编写的源代码或目标代码,所述编程语言包括面向对象的编程语言—诸如Smalltalk、C++等,以及常规的过程式编程语言—诸如“C”语言或类似的编程语言。计算机可读程序指令可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络—包括局域网(LAN)或广域网(WAN)—连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。在一些实施例中,通过利用计算机可读程序指令的状态信息来个性化定制电子电路,例如可编程逻辑电路、现场可编程门阵列(FPGA)或可编程逻辑阵列(PLA),该电子电路可以执行计算机可读程序指令,从而实现本申请的各个方面。
这里所描述的计算机程序产品可以具体通过硬件、软件或其结合的方式实现。在一个可选实施例中,所述计算机程序产品具体体现为计算机存储介质,在另一个可选实施例中,计算机程序产品具体体现为软件产品,例如软件开发包(Software DevelopmentKit,SDK)等等。
这里参照根据本申请实施例的方法、装置(系统)和计算机程序产品的流程图和/或框图描述了本申请的各个方面。应当理解,流程图和/或框图的每个方框以及流程图和/或框图中各方框的组合,都可以由计算机可读程序指令实现。
这些计算机可读程序指令可以提供给通用计算机、专用计算机或其它可编程数据处理装置的处理器,从而生产出一种机器,使得这些指令在通过计算机或其它可编程数据处理装置的处理器执行时,产生了实现流程图和/或框图中的一个或多个方框中规定的功能/动作的装置。也可以把这些计算机可读程序指令存储在计算机可读存储介质中,这些指令使得计算机、可编程数据处理装置和/或其他设备以特定方式工作,从而,存储有指令的计算机可读介质则包括一个制造品,其包括实现流程图和/或框图中的一个或多个方框中规定的功能/动作的各个方面的指令。
也可以把计算机可读程序指令加载到计算机、其它可编程数据处理装置、或其它设备上,使得在计算机、其它可编程数据处理装置或其它设备上执行一系列操作步骤,以产生计算机实现的过程,从而使得在计算机、其它可编程数据处理装置、或其它设备上执行的指令实现流程图和/或框图中的一个或多个方框中规定的功能/动作。
附图中的流程图和框图显示了根据本申请的多个实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或指令的一部分,所述模块、程序段或指令的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
本文已经公开了示例实施例,并且虽然采用了具体术语,但它们仅用于并仅应当被解释为一般说明性含义,并且不用于限制的目的。在一些实例中,对本领域技术人员显而易见的是,除非另外明确指出,否则可单独使用与特定实施例相结合描述的特征、特性和/或元素,或可与其他实施例相结合描述的特征、特性和/或元件组合使用。因此,本领域技术人员将理解,在不脱离由所附的权利要求阐明的本申请的范围的情况下,可进行各种形式和细节上的改变。
Claims (10)
1.一种基于日志的处理方法,其特征在于,包括:
获取由客户端通过通信连接发送到位于服务器端的数据库的至少一个待执行语句,所述待执行语句用于执行目标操作;
确定所述通信连接所处执行环境的环境类型,并根据所述环境类型确定所述通信连接的执行标识,所述执行标识用于表征所述通信连接所处执行环境的环境类型;
获取所述通信连接的线程上下文信息,并根据所述线程上下文信息确定各个所述待执行语句的链路标识,所述线程上下文信息包括与所述通信连接关联的各个线程的信息,所述链路标识为用于反映待执行语句在执行过程中由于线程调用关系而生成的请求调用链路的标识;
获取各个所述待执行语句的执行信息,所述执行信息用于反映所述待执行语句执行所述目标操作的执行过程和执行结果;
基于所述执行标识、所述链路标识和所述执行信息,生成所述通信连接的日志文件。
2.根据权利要求1所述的方法,其特征在于,所述确定所述通信连接所处执行环境的环境类型,包括:
获取所述通信连接的环境注解,所述环境注解是对所述通信连接所处的执行环境的解释;
根据所述环境注解,确定所述通信连接所处执行环境的环境类型,其中,所述通信连接所处的执行环境的环境类型包括事务环境和非事务环境。
3.根据权利要求2所述的方法,其特征在于,所述根据所述环境类型确定所述通信连接的执行标识,包括:
在所述通信连接处于事务环境的情况下,根据所述事务环境对应的事务的全局标识,确定所述通信连接的执行标识;
在所述通信连接处于非事务环境的情况下,根据预设规则生成所述通信连接的执行标识,所述预设规则为用于针对非事务环境下的通信连接生成执行标识的规则。
4.根据权利要求3所述的方法,其特征在于,所述根据所述事务环境对应的事务的全局标识,确定所述通信连接的执行标识,包括:
在确定所述通信连接处于事务环境的情况下,判断所述通信连接对应的事务是否存在全局标识;
若所述通信连接对应的事务存在全局标识,则将所述全局标识作为所述通信连接的执行标识;
若所述通信连接对应的事务不存在全局标识,则生成一个全局标识,并在将生成的全局标识绑定所述通信连接后,作为所述通信连接的执行标识。
5.根据权利要求1所述的方法,其特征在于,所述根据所述线程上下文信息确定各个所述待执行语句的链路标识,包括:
针对每个待执行语句,根据所述通信连接的线程上下文信息,确定所述每个待执行语句对应的当前线程,以及用于标识所述当前线程的第一标识信息;
确定所述当前线程的上一级线程,以及用于标识所述上一级线程的第二标识信息;
根据所述每个待执行语句当前线程的第一标识信息,以及上一级线程的第二标识信息,得到所述通信连接对应的每个所述待执行语句的链路标识。
6.根据权利要求1所述的方法,其特征在于,所述日志文件包括多条日志记录;所述基于所述执行标识、所述链路标识和所述执行信息,所述生成所述通信连接的日志文件之后,所述方法还包括:
根据各个所述待执行语句的链路标识和所述日志文件,确定至少一个请求调用链路,其中,所述请求调用链路包括多个具有调用关系的线程;
从所述日志文件中获取与各个所述请求调用链路关联的多条日志记录;
对与各个所述请求调用链路关联的日志记录进行分析,获得日志分析结果,其中,所述日志分析结果用于反映所述请求调用链路上各个线程的运行状态。
7.根据权利要求6所述的方法,其特征在于,所述对与各个所述请求调用链路关联的日志记录进行分析,获得日志分析结果,包括:
确定与所述多条日志记录对应的多个待执行语句,并确定所述多个待执行语句对应的至少一个通信连接;
确定各个通信连接的执行标识;
根据所述各个通信连接的执行标识,确定各个所述通信连接所处执行环境的环境类型;
根据各个所述通信连接所处执行环境的环境类型,确定至少一个目标事务;
确定所述至少一个目标事务的资源占用信息,所述资源占用信息用于表征各项资源是否处于被占用状态;
对所述资源占用信息进行分析,得到所述日志分析结果,所述日志分析结果用于表征各个目标事务之间是否存在死锁以及死锁原因。
8.一种基于日志的处理装置,其特征在于,包括:
第一获取模块,用于获取由客户端通过通信连接发送到位于服务器端的数据库的至少一个待执行语句,所述待执行语句用于执行目标操作;
第一确定模块,用于确定所述通信连接所处执行环境的环境类型,并根据所述环境类型确定所述通信连接的执行标识,所述执行标识用于表征所述通信连接所处执行环境的环境类型;
第二确定模块,用于获取所述通信连接的线程上下文信息,并根据所述线程上下文信息确定各个所述待执行语句的链路标识,所述线程上下文信息包括与所述通信连接关联的各个线程的信息,所述链路标识为用于反映待执行语句在执行过程中由于线程调用关系而生成的请求调用链路的标识;
第二获取模块,用于获取各个所述待执行语句的执行信息,所述执行信息用于反映所述待执行语句执行所述目标操作的执行过程和执行结果;
生成模块,用于基于所述执行标识、所述链路标识和所述执行信息,生成所述通信连接的日志文件。
9.一种电子设备,其特征在于,包括:
至少一个处理器;以及
与所述至少一个处理器通信连接的存储器;其中,
所述存储器存储有可被所述至少一个处理器执行的一个或多个计算机程序,一个或多个所述计算机程序被所述至少一个处理器执行,以使所述至少一个处理器能够执行如权利要求1-7中任一项所述的基于日志的处理方法。
10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序在被处理器执行时实现如权利要求1-7中任一项所述的基于日志的处理方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310565861.3A CN117493389A (zh) | 2023-05-18 | 2023-05-18 | 基于日志的处理方法及相关设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310565861.3A CN117493389A (zh) | 2023-05-18 | 2023-05-18 | 基于日志的处理方法及相关设备 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117493389A true CN117493389A (zh) | 2024-02-02 |
Family
ID=89680606
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310565861.3A Pending CN117493389A (zh) | 2023-05-18 | 2023-05-18 | 基于日志的处理方法及相关设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117493389A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN118227189A (zh) * | 2024-05-21 | 2024-06-21 | 阿里云计算有限公司 | 数据处理方法及异常提示方法 |
-
2023
- 2023-05-18 CN CN202310565861.3A patent/CN117493389A/zh active Pending
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN118227189A (zh) * | 2024-05-21 | 2024-06-21 | 阿里云计算有限公司 | 数据处理方法及异常提示方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11308123B2 (en) | Selectively replicating changes to hierarchial data structures | |
US20220043830A1 (en) | Versioned hierarchical data structures in a distributed data store | |
US11086531B2 (en) | Scaling events for hosting hierarchical data structures | |
CN111801661B (zh) | 多主机分布式数据管理系统中的事务操作 | |
US9026901B2 (en) | Viewing annotations across multiple applications | |
CN111324610A (zh) | 一种数据同步的方法及装置 | |
US20170351585A1 (en) | Transaction consistency query support for replicated data from recovery log to external data stores | |
CN1848849B (zh) | 复制目录修改的方法和装置 | |
US11010401B2 (en) | Efficient snapshot generation of data tables | |
US20100161577A1 (en) | Method of Reconciling Resources in the Metadata Hierarchy | |
US20140282848A1 (en) | System and Method to Provide Management of Test Data at Various Lifecycle Stages | |
CN106156088B (zh) | 一种索引数据处理方法、数据查询方法及装置 | |
US20160063107A1 (en) | Data retrieval via a telecommunication network | |
CN113297320A (zh) | 分布式数据库系统及数据处理方法 | |
KR20210036878A (ko) | 정보 푸시 방법, 장치, 기기 및 저장매체 | |
CN109376142B (zh) | 数据迁移方法及终端设备 | |
CN117493389A (zh) | 基于日志的处理方法及相关设备 | |
CN111125213A (zh) | 数据采集的方法、装置及其系统 | |
WO2020192663A1 (zh) | 一种数据管理方法及相关设备 | |
CN113254470A (zh) | 一种数据更改方法、装置、计算机设备及存储介质 | |
CN105550342B (zh) | 一种全透明的分布式数据库的数据处理方法 | |
US9009098B1 (en) | Methods and apparatus for creating a centralized data store | |
CN117421302A (zh) | 一种数据处理方法及相关设备 | |
CN116010461A (zh) | 数据血缘关系解析方法及装置、存储介质及电子设备 | |
US11727022B2 (en) | Generating a global delta in distributed databases |
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 |