CN112231144A - 一种数据处理方法、装置及电子设备 - Google Patents

一种数据处理方法、装置及电子设备 Download PDF

Info

Publication number
CN112231144A
CN112231144A CN202011051598.9A CN202011051598A CN112231144A CN 112231144 A CN112231144 A CN 112231144A CN 202011051598 A CN202011051598 A CN 202011051598A CN 112231144 A CN112231144 A CN 112231144A
Authority
CN
China
Prior art keywords
transaction
database
target
branch
branch transaction
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
Application number
CN202011051598.9A
Other languages
English (en)
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.)
Shanghai I2finance Software Co ltd
Original Assignee
Shanghai I2finance Software Co 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 Shanghai I2finance Software Co ltd filed Critical Shanghai I2finance Software Co ltd
Priority to CN202011051598.9A priority Critical patent/CN112231144A/zh
Publication of CN112231144A publication Critical patent/CN112231144A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1474Saving, restoring, recovering or retrying in transactions
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/23Updating
    • G06F16/2365Ensuring data consistency and integrity
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/80Database-specific techniques
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/82Solving problems relating to consistency

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Quality & Reliability (AREA)
  • Computer Security & Cryptography (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明实施例公开了一种数据处理方法、装置及电子设备,所述方法包括:在检测到目标事务的第一分支事务执行失败的情况下,确定所述第一分支事务对应的目标分支事务,所述目标分支事务包括所述第一分支事务的前置分支事务和/或与所述第一分支事务并行执行的分支事务,检测与所述目标事务对应的数据库中是否存在与所述目标分支事务对应的数据库修改日志,在检测到存在所述数据库修改日志的情况下,基于所述数据库修改日志,对所述数据库进行回滚操作,以实现所述目标事务的一致性。这样,可以在实现目标事务的一致性的同时,提高数据处理效率。

Description

一种数据处理方法、装置及电子设备
技术领域
本发明涉及计算机技术领域,尤其涉及一种数据处理方法、装置及电子设备。
背景技术
随着计算机技术的不断发展,微服务框架下的分布式应用逐渐成为趋势,在微服务框架下,为完成业务事务需调用多个远程服务接口,每个远程服务接口所使用的业务数据都存储在本地的数据库中,如果在业务事务执行过程中某一远程服务调用失败,那么如何对业务事务的所有其他相关的远程服务接口的业务数据进行处理,以保证业务数据的一致性成为一个焦点问题。
目前,可以通过对业务的反向操作,保证业务数据的一致性。例如,以业务事务为购票事务为例,购票事务可以分为扣费分支事务和扣票分支事务,如果扣费分支事务执行成功,而由于余票不足导致扣票分支事务执行失败时,就需要对扣费分支事务进行反向操作,以保证购票事务的业务数据的一致性。
但是,业务事务通常包含的子事务较多,如果一个子事务执行失败,就需要对业务事务包含的其他已执行的子事务进行全局反向操作,这就存在工作量大、数据处理效率低的问题。
发明内容
本发明实施例的目的是提供一种数据处理方法、装置及电子设备,以解决现有技术中在分布式架构下,无法保证数据一致性的问题。
为解决上述技术问题,本发明实施例是这样实现的:
第一方面,本发明实施例提供的一种数据处理方法,所述方法包括:
在检测到目标事务的第一分支事务执行失败的情况下,确定所述第一分支事务对应的目标分支事务,所述目标分支事务包括所述第一分支事务的前置分支事务和/或与所述第一分支事务并行执行的分支事务;
检测与所述目标事务对应的数据库中是否存在与所述目标分支事务对应的数据库修改日志;
在检测到存在所述数据库修改日志的情况下,基于所述数据库修改日志,对所述数据库进行回滚操作,以实现所述目标事务的一致性。
可选地,在所述在检测到目标事务的第一分支事务执行失败的情况下,确定所述第一分支事务对应的目标分支事务之前,还包括:
在执行所述目标事务的第二分支事务时,获取与所述第二分支事务对应的数据库修改指令,所述第二分支事务为所述目标事务的任意一个或多个分支事务;
基于所述数据库修改指令以及所述数据库中与所述数据库修改指令对应的目标数据,生成与所述第二分支事务对应的数据库修改日志,并将所述数据库修改日志存储在所述数据库中。
可选地,在所述基于所述数据库修改指令以及所述数据库中与所述数据库修改指令对应的目标数据,生成与所述第二分支事务对应的数据库修改日志之前,还包括:
对所述数据库修改指令中的内容进行解析处理,得到与所述数据库修改指令对应的元素据,所述元素据包含所述数据库修改指令中与所述目标数据相关的预设字段信息;
基于所述元素据,生成用于在所述数据库中确定所述目标数据的元数据,并基于所述元数据,确定所述目标数据,所述元数据包含所述目标数据在所述数据库中的位置信息。
可选地,所述方法,还包括:
在对所述数据库进行回滚操作后,删除与所述回滚操作对应的所述目标分支事务的数据库修改日志。
第二方面,本发明实施例提供了一种数据处理装置,所述装置包括:
事务确定模块,用于在检测到目标事务的第一分支事务执行失败的情况下,确定所述第一分支事务对应的目标分支事务,所述目标分支事务包括所述第一分支事务的前置分支事务和/或与所述第一分支事务并行执行的分支事务;
日志检测模块,用于检测与所述目标事务对应的数据库中是否存在与所述目标分支事务对应的数据库修改日志;
回滚模块,用于在检测到存在所述数据库修改日志的情况下,基于所述数据库修改日志,对所述数据库进行回滚操作,以实现所述目标事务的一致性。
可选地,所述装置,还包括:
指令获取模块,用于在执行所述目标事务的第二分支事务时,获取与所述第二分支事务对应的数据库修改指令,所述第二分支事务为所述目标事务的任意一个或多个分支事务;
日志生成模块,用于基于所述数据库修改指令以及所述数据库中与所述数据库修改指令对应的目标数据,生成与所述第二分支事务对应的数据库修改日志,并将所述数据库修改日志存储在所述数据库中。
可选地,所述装置,还包括:
处理模块,用于对所述数据库修改指令中的内容进行解析处理,得到与所述数据库修改指令对应的元素据,所述元素据包含所述数据库修改指令中与所述目标数据相关的预设字段信息;
确定模块,用于基于所述元素据,生成用于在所述数据库中确定所述目标数据的元数据,并基于所述元数据,确定所述目标数据,所述元数据包含所述目标数据在所述数据库中的位置信息。
可选地,所述装置,还包括:
删除模块,用于在对所述数据库进行回滚操作后,删除与所述回滚操作对应的所述目标分支事务的数据库修改日志。
第三方面,本发明实施例提供一种电子设备,包括处理器、存储器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述计算机程序被所述处理器执行时实现上述实施例提供的数据处理方法的步骤。
第四方面,本发明实施例提供一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储计算机程序,所述计算机程序被处理器执行时实现上述实施例提供的数据处理方法的步骤。
由以上本发明实施例提供的技术方案可见,本发明实施例通过在检测到目标事务的第一分支事务执行失败的情况下,确定第一分支事务对应的目标分支事务,目标分支事务包括第一分支事务的前置分支事务和/或与第一分支事务并行执行的分支事务,检测与目标事务对应的数据库中是否存在与目标分支事务对应的数据库修改日志,在检测到存在数据库修改日志的情况下,基于数据库修改日志,对数据库进行回滚操作,以实现目标事务的一致性。这样,仅需要对数据库中存在数据库修改日志的目标分支事务进行回滚操作,就可以实现目标事务的一致性,而不需要对目标事务包含的所有已执行的事务进行业务上的反向操作,减少了事务处理的工作量,提高了数据处理效率。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明中记载的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本发明一种数据处理方法的流程示意图;
图2为本发明另一种数据处理方法的流程示意图;
图3为本发明一种数据处理流程的示意图;
图4为本发明一种目标事务的处理流程的示意图;
图5为本发明一种数据处理装置的结构示意图;
图6为本发明一种电子设备的结构示意图。
具体实施方式
本发明实施例提供一种数据处理方法、装置及电子设备。
为了使本技术领域的人员更好地理解本发明中的技术方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。
实施例一
如图1所示,本发明实施例提供一种数据处理方法,该方法的执行主体可以为服务器,该服务器可以是独立的服务器,也可以是由多个服务器组成的服务器集群,该方法具体可以包括以下步骤:
在S102中,在检测到目标事务的第一分支事务执行失败的情况下,确定第一分支事务对应的目标分支事务。
其中,目标事务可以是包含一个或多个分支事务的事务,例如,目标事务可以是购票事务,该事务可以包含扣费分支事务和扣票分支事务等分支事务,其中,扣费分支事务可以是扣票分支事务的前置分支事务,即在扣费分支事务执行成功后,可以继续执行扣票分支事务。目标分支事务可以包括第一分支事务的前置分支事务和/或与第一分支事务并行执行的分支事务,例如,假设目标事务是购票事务,目标分支事务是扣票分支事务,则第一分支事务可以是扣票分支事务的前置分支事务,即第一分支事务可以是扣费分支事务。
在实施中,随着计算机技术的不断发展,微服务框架下的分布式应用逐渐成为趋势,在微服务框架下,为完成业务事务需调用多个远程服务接口,每个远程服务接口所使用的业务数据都存储在本地的数据库中,如果在业务事务执行过程中某一远程服务调用失败,那么如何对业务事务的所有其他相关的远程服务接口的业务数据进行处理,以保证业务数据的一致性成为一个焦点问题。
目前,可以通过对业务的反向操作,保证业务数据的一致性。例如,以业务事务为购票事务为例,购票事务可以分为扣费分支事务和扣票分支事务,如果扣费分支事务执行成功,而由于余票不足导致扣票分支事务执行失败时,就需要对扣费分支事务进行反向操作,以保证购票事务的业务数据的一致性。但是,业务事务通常包含的子事务较多,如果一个子事务执行失败,就需要对业务事务包含的其他已执行的子事务进行全局反向操作,这就存在工作量大、数据处理效率低的问题。为此,本发明实施例提供一种实现方案,具体可以包括以下内容:
服务器中可以部署有事务管理器、事务协调器以及资源管理器,其中,事务管理器可以用于控制目标事务的边界,负责开启目标事务,并根据目标事务的执行状况,发起对目标事务的提交操作的决议或发起对目标事务中的某一分支事务的回滚操作的决议。事务协调器可以用于维护目标事务的运行状态,负责协调并确定目标事务的提交操作或回滚操作。资源管理器可以用于控制目标事务的某一分支事务,并负责对分支事务进行注册操作、分支事务执行情况汇报等,可以接收事务协调器的指令,驱动分支事务的提交操作或回滚操作。
服务器可以接收到多个目标事务的执行指令,事务管理器可以开启一个或多个目标事务,并由事务管理器通知事务协调器开启某一个或多个目标事务,事务协调器可以与资源管理器进行通信协商,并由资源管理器对每个目标事务包含的分支事务进行具体的执行操作。
在执行目标事务时,当检测到目标事务的第一分支事务执行失败的情况下,可以根据目标事务的分支事务执行顺序,确定第一分支事务的前置分支事务和/或第一分支事务并行执行的分支事务,即确定第一分支事务对应的目标分支事务,其中,目标分支事务可以包含一个或多个分支事务。
在S104中,检测与目标事务对应的数据库中是否存在与目标分支事务对应的数据库修改日志。
其中,数据库修改日志可以是根据在执行目标分支事务时,对数据库中的数据进行***、更新、删除等操作生成的修改日志,目标事务对应的数据库可以包含每个分支事务对应的子数据库,每个分支事务对应的数据库修改日志可以保存在目标事务的服务器中预设的日志存储数据库中,也可以分别保存在每个分支事务对应的子数据库中。
在实施中,可以在数据库中(包括预设数据库和/或每个分支事务对应的子数据库中)查找是否存在与目标分支事务对应的数据库修改日志。例如,在执行分支事务时,资源管理器可以对该分支事务进行注册操作,并为该分支事务分配对应的事务编号,然后可以将与该分支事务对应的数据库修改日志以该事务编号存储在数据库中。
在确定了目标分支事务的情况下,可以根据该目标分支事务的事务编号,在数据库中查找是否存在对应的数据库修改日志。
在S106中,在检测到存在数据库修改日志的情况下,基于数据库修改日志,对数据库进行回滚操作,以实现目标事务的一致性。
在实施中,资源管理器可以向事务协调器汇报目标事务的每个分支事务的执行情况,当检测到汇报的第一分支事务的执行情况为执行失败时,事务管理器可以将该第一分支事务的执行情况汇报给事务协调器,事务协调器可以根据第一分支事务的执行情况,判断是否需要提交该分支事务或对数据库进行回滚操作,并将判断结果发送给事务管理器,由事务管理器驱动资源管理器根据判断结果进行操作(即提交操作或回滚操作)。
在第一分支事务执行失败的情况下,可以基于目标分支事务的数据库修改日志,对数据库进行回滚操作,即将修改后的数据恢复到修改前的数据(即将修改后的数据恢复到未执行目标分支事务前的数据),从而保证全局事务的一致性。
此外,在执行完回滚操作后,可以删除数据库中与该回滚操作对应的数据库修改日志。
本发明实施例提供一种数据处理方法,通过在检测到目标事务的第一分支事务执行失败的情况下,确定第一分支事务对应的目标分支事务,目标分支事务包括第一分支事务的前置分支事务和/或与第一分支事务并行执行的分支事务,检测与目标事务对应的数据库中是否存在与目标分支事务对应的数据库修改日志,在检测到存在数据库修改日志的情况下,基于数据库修改日志,对数据库进行回滚操作,以实现目标事务的一致性。这样,仅需要对数据库中存在数据库修改日志的目标分支事务进行回滚操作,就可以实现目标事务的一致性,而不需要对目标事务包含的所有已执行的事务进行业务上的反向操作,减少了事务处理的工作量,提高了数据处理效率。
实施例二
如图2所示,本发明实施例提供一种数据处理方法,该方法的执行主体可以为服务器,该服务器可以是独立的服务器,也可以是由多个服务器组成的服务器集群,该方法具体可以包括以下步骤:
在S202中,在执行目标事务的第二分支事务时,获取与第二分支事务对应的数据库修改指令。
其中,第二分支事务可以为目标事务的任意一个或多个分支事务,数据库修改指令可以是基于数据操纵语言(DataManipulation Language,DML)生成的,用于对数据库中的数据进行***、更新、删除等操作的数据库修改指令。
在S204中,对数据库修改指令中的内容进行解析处理,得到与数据库修改指令对应的元素据。
其中,元素据可以包含数据库修改指令中与目标数据相关的预设字段信息,例如,元素据可以包含用于描述目标数据的属性的字段信息、用于描述目标数据的位置的字段信息,用于描述对目标数据的操作类型的字段信息等字段信息。
在S206中,基于元素据,生成用于在数据库中确定目标数据的元数据,并基于元数据,确定目标数据。
其中,元数据可以包含目标数据在数据库中的位置信息。
在实施中,第二分支事务可以对应有多个数据库修改指令,可以基于每个数据库指令中的内容解析出的元素据,生成对应的元数据,其中,元数据可以是包含多个目标数据的位置信息的电子目录,可以通过元数据中包含的每个目标数据在数据库中的位置信息,在数据库中查找对应的目标数据。
在S208中,基于数据库修改指令以及数据库中与数据库修改指令对应的目标数据,生成与第二分支事务对应的数据库修改日志,并将数据库修改日志存储在数据库中。
在实施中,在实际应用中,上述S208的处理方式可以多种多样,以下提供一种可选的实现方式,具体可以参见下述步骤一~步骤二处理。
步骤一,执行数据库修改指令,以对目标数据进行修改处理,并确定修改处理后的目标数据。
步骤二,基于数据库修改指令、目标数据以及修改处理后的目标数据,生成与第二分支事务对应的数据库修改日志。
在实施中,可以将数据库修改指令、目标数据以及修改处理后的目标数据,以日志的形式存储在于第二分支事务对应的数据库中,即可以将第二分支事务的数据库修改日志存储在第二分支事务对应的数据库中,或将第二分支事务的数据库修改日志存储在目标事务对应的预设日志存储数据库中。
另外,如图3所示,服务器中部署有事务管理器、事务协调器以及资源管理器,事务管理器用于开启目标事务,并驱动资源管理器对目标事务的各分支事务进行注册操作,同时驱动资源管理区向事务协调器汇报每个分支事务的执行情况,资源管理器还可以对数据库修改指令的内容进行解析处理,即提取出数据库修改指令中的元素据,服务器可以根据元素据,生成对应的元数据,并通过生成的元数据,在数据库中查找对应的目标数据,然后基于数据库修改指令、目标数据以及修改处理后的目标数据,生成与该分支事务(即第二分支事务)对应的数据库修改日志,并将数据库修改日志存储在数据库中。
在S210中,在检测到目标事务的第一分支事务执行失败的情况下,确定第一分支事务对应的目标分支事务。
在实施中,以目标事务为购票事务为例,如图4所示,购票事务可以包括扣费分支事务和扣票分支事务,在开启该目标事务后,事务管理器可以调用资源管理器进行扣费分支事务的执行,在扣费成功后,可以执行对应的数据库修改指令,并基于该数据库修改指令、对应的目标数据和修改后的目标数据,生成数据库修改日志,存储在对应的数据库(即与扣费分支事务对应的数据库)中,并注册该扣费分支事务,以及向事务协调器汇报该分支事务的执行情况。此时,扣费分支事务即为第二分支事务。
在扣费分支事务执行成功后,可以继续进行扣票分支事务,当票数不足,无法进行扣票操作时,该扣票分支事务即为执行失败(则该扣票分支事务即为第一分支事务),此时资源管理器可以注册该扣票分支事务,并向事务协调器汇报该第一分支事务执行失败,这样,该扣票分支事务的前置分支事务即为目标分支事务(即扣费分支事务可以为目标分支事务)。
在S212中,检测与目标事务对应的数据库中是否存在与目标分支事务对应的数据库修改日志。
在实施中,可以在数据库中查找,是否存在与扣费分支事务对应的数据库修改日志。
在S214中,在检测到存在数据库修改日志的情况下,基于数据库修改日志,对数据库进行回滚操作,以实现目标事务的一致性。
在实施中,在检测到数据库中存在与扣费分支事务对应的数据库修改日志的情况下,可以通过该数据库修改日志进行回滚操作,以增加被扣掉的费用,实现业务数据的一致性。
在S216中,在对数据库进行回滚操作后,删除与回滚操作对应的目标分支事务的数据库修改日志。
本发明实施例提供一种数据处理方法,通过在检测到目标事务的第一分支事务执行失败的情况下,确定第一分支事务对应的目标分支事务,目标分支事务包括第一分支事务的前置分支事务和/或与第一分支事务并行执行的分支事务,检测与目标事务对应的数据库中是否存在与目标分支事务对应的数据库修改日志,在检测到存在数据库修改日志的情况下,基于数据库修改日志,对数据库进行回滚操作,以实现目标事务的一致性。这样,仅需要对数据库中存在数据库修改日志的目标分支事务进行回滚操作,就可以实现目标事务的一致性,而不需要对目标事务包含的所有已执行的事务进行业务上的反向操作,减少了事务处理的工作量,提高了数据处理效率。
实施例三
以上为本发明实施例提供的数据处理方法,基于同样的思路,本发明实施例还提供一种数据处理装置,如图5所示。
该数据处理装置包括:事务确定模块501、日志检测模块502和回滚模块503,其中:
事务确定模块501,用于在检测到目标事务的第一分支事务执行失败的情况下,确定所述第一分支事务对应的目标分支事务,所述目标分支事务包括所述第一分支事务的前置分支事务和/或与所述第一分支事务并行执行的分支事务;
日志检测模块502,用于检测与所述目标事务对应的数据库中是否存在与所述目标分支事务对应的数据库修改日志;
回滚模块503,用于在检测到存在所述数据库修改日志的情况下,基于所述数据库修改日志,对所述数据库进行回滚操作,以实现所述目标事务的一致性。
在本发明实施例中,所述装置,还包括:
指令获取模块,用于在执行所述目标事务的第二分支事务时,获取与所述第二分支事务对应的数据库修改指令,所述第二分支事务为所述目标事务的任意一个或多个分支事务;
日志生成模块,用于基于所述数据库修改指令以及所述数据库中与所述数据库修改指令对应的目标数据,生成与所述第二分支事务对应的数据库修改日志,并将所述数据库修改日志存储在所述数据库中。
在本发明实施例中,所述装置,还包括:
处理模块,用于对所述数据库修改指令中的内容进行解析处理,得到与所述数据库修改指令对应的元素据,所述元素据包含所述数据库修改指令中与所述目标数据相关的预设字段信息;
确定模块,用于基于所述元素据,生成用于在所述数据库中确定所述目标数据的元数据,并基于所述元数据,确定所述目标数据,所述元数据包含所述目标数据在所述数据库中的位置信息。
在本发明实施例中,所述装置,还包括:
删除模块,用于在对所述数据库进行回滚操作后,删除与所述回滚操作对应的所述目标分支事务的数据库修改日志。
本发明实施例提供一种数据处理装置,通过在检测到目标事务的第一分支事务执行失败的情况下,确定第一分支事务对应的目标分支事务,目标分支事务包括第一分支事务的前置分支事务和/或与第一分支事务并行执行的分支事务,检测与目标事务对应的数据库中是否存在与目标分支事务对应的数据库修改日志,在检测到存在数据库修改日志的情况下,基于数据库修改日志,对数据库进行回滚操作,以实现目标事务的一致性。这样,仅需要对数据库中存在数据库修改日志的目标分支事务进行回滚操作,就可以实现目标事务的一致性,而不需要对目标事务包含的所有已执行的事务进行业务上的反向操作,减少了事务处理的工作量,提高了数据处理效率。
实施例四
图6为实现本发明各个实施例的一种电子设备的硬件结构示意图,
该电子设备600包括但不限于:射频单元601、网络模块602、音频输出单元603、输入单元604、传感器605、显示单元606、用户输入单元607、接口单元608、存储器609、处理器610、以及电源611等部件。本领域技术人员可以理解,图6中示出的电子设备结构并不构成对电子设备的限定,电子设备可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。在本发明实施例中,电子设备包括但不限于手机、平板电脑、笔记本电脑、掌上电脑、车载终端、可穿戴设备、以及计步器等。
其中,处理器610,用于在检测到目标事务的第一分支事务执行失败的情况下,确定所述第一分支事务对应的目标分支事务,所述目标分支事务包括所述第一分支事务的前置分支事务和/或与所述第一分支事务并行执行的分支事务;
处理器610,用于检测与所述目标事务对应的数据库中是否存在与所述目标分支事务对应的数据库修改日志;
处理器610,用于在检测到存在所述数据库修改日志的情况下,基于所述数据库修改日志,对所述数据库进行回滚操作,以实现所述目标事务的一致性。
此外,处理器610,还用于在执行所述目标事务的第二分支事务时,获取与所述第二分支事务对应的数据库修改指令,所述第二分支事务为所述目标事务的任意一个或多个分支事务;
另外,处理器610,还用于基于所述数据库修改指令以及所述数据库中与所述数据库修改指令对应的目标数据,生成与所述第二分支事务对应的数据库修改日志,并将所述数据库修改日志存储在所述数据库中。
此外,处理器610,还用于对所述数据库修改指令中的内容进行解析处理,得到与所述数据库修改指令对应的元素据,所述元素据包含所述数据库修改指令中与所述目标数据相关的预设字段信息;
另外,处理器610,还用于基于所述元素据,生成用于在所述数据库中确定所述目标数据的元数据,并基于所述元数据,确定所述目标数据,所述元数据包含所述目标数据在所述数据库中的位置信息。
此外,处理器610,还用于在对所述数据库进行回滚操作后,删除与所述回滚操作对应的所述目标分支事务的数据库修改日志。
本发明实施例提供一种电子设备,通过在检测到目标事务的第一分支事务执行失败的情况下,确定第一分支事务对应的目标分支事务,目标分支事务包括第一分支事务的前置分支事务和/或与第一分支事务并行执行的分支事务,检测与目标事务对应的数据库中是否存在与目标分支事务对应的数据库修改日志,在检测到存在数据库修改日志的情况下,基于数据库修改日志,对数据库进行回滚操作,以实现目标事务的一致性。这样,仅需要对数据库中存在数据库修改日志的目标分支事务进行回滚操作,就可以实现目标事务的一致性,而不需要对目标事务包含的所有已执行的事务进行业务上的反向操作,减少了事务处理的工作量,提高了数据处理效率。
应理解的是,本发明实施例中,射频单元601可用于收发信息或通话过程中,信号的接收和发送,具体的,将来自基站的下行数据接收后,给处理器610处理;另外,将上行的数据发送给基站。通常,射频单元601包括但不限于天线、至少一个放大器、收发信机、耦合器、低噪声放大器、双工器等。此外,射频单元601还可以通过无线通信***与网络和其他电子设备通信。
电子设备通过网络模块602为用户提供了无线的宽带互联网访问,如帮助用户收发电子邮件、浏览网页和访问流式媒体等。
音频输出单元603可以将射频单元601或网络模块602接收的或者在存储器609中存储的音频数据转换成音频信号并且输出为声音。而且,音频输出单元603还可以提供与电子设备600执行的特定功能相关的音频输出(例如,呼叫信号接收声音、消息接收声音等等)。音频输出单元603包括扬声器、蜂鸣器以及受话器等。
输入单元604用于接收音频或视频信号。输入单元604可以包括图形处理器(Graphics Processing Unit,GPU)6041和麦克风6042,图形处理器6041对在视频捕获模式或图像捕获模式中由图像捕获装置(如摄像头)获得的静态图片或视频的图像数据进行处理。处理后的图像帧可以显示在显示单元606上。经图形处理器6041处理后的图像帧可以存储在存储器609(或其它存储介质)中或者经由射频单元601或网络模块602进行发送。麦克风6042可以接收声音,并且能够将这样的声音处理为音频数据。处理后的音频数据可以在电话通话模式的情况下转换为可经由射频单元601发送到移动通信基站的格式输出。
电子设备600还包括至少一种传感器605,比如光传感器、运动传感器以及其他传感器。具体地,光传感器包括环境光传感器及接近传感器,其中,环境光传感器可根据环境光线的明暗来调节显示面板6061的亮度,接近传感器可在电子设备600移动到耳边时,关闭显示面板6061和/或背光。作为运动传感器的一种,加速计传感器可检测各个方向上(一般为三轴)加速度的大小,静止时可检测出重力的大小及方向,可用于识别电子设备姿态(比如横竖屏切换、相关游戏、磁力计姿态校准)、振动识别相关功能(比如计步器、敲击)等;传感器605还可以包括指纹传感器、压力传感器、虹膜传感器、分子传感器、陀螺仪、气压计、湿度计、温度计、红外线传感器等,在此不再赘述。
显示单元606用于显示由用户输入的信息或提供给用户的信息。显示单元606可包括显示面板6061,可以采用液晶显示器(Liquid Crystal Display,LCD)、有机发光二极管(Organic Light-Emitting Diode,OLED)等形式来配置显示面板6061。
用户输入单元607可用于接收输入的数字或字符信息,以及产生与电子设备的用户设置以及功能控制有关的键信号输入。具体地,用户输入单元607包括触控面板6071以及其他输入设备6072。触控面板6071,也称为触摸屏,可收集用户在其上或附近的触摸操作(比如用户使用手指、触笔等任何适合的物体或附件在触控面板6071上或在触控面板6071附近的操作)。触控面板6071可包括触摸检测装置和触摸控制器两个部分。其中,触摸检测装置检测用户的触摸方位,并检测触摸操作带来的信号,将信号传送给触摸控制器;触摸控制器从触摸检测装置上接收触摸信息,并将它转换成触点坐标,再送给处理器610,接收处理器610发来的命令并加以执行。此外,可以采用电阻式、电容式、红外线以及表面声波等多种类型实现触控面板6071。除了触控面板6071,用户输入单元607还可以包括其他输入设备6072。具体地,其他输入设备6072可以包括但不限于物理键盘、功能键(比如音量控制按键、开关按键等)、轨迹球、鼠标、操作杆,在此不再赘述。
进一步的,触控面板6071可覆盖在显示面板6061上,当触控面板6071检测到在其上或附近的触摸操作后,传送给处理器610以确定触摸事件的类型,随后处理器610根据触摸事件的类型在显示面板6061上提供相应的视觉输出。虽然在图6中,触控面板6071与显示面板6061是作为两个独立的部件来实现电子设备的输入和输出功能,但是在某些实施例中,可以将触控面板6071与显示面板6061集成而实现电子设备的输入和输出功能,具体此处不做限定。
接口单元608为外部装置与电子设备600连接的接口。例如,外部装置可以包括有线或无线头戴式耳机端口、外部电源(或电池充电器)端口、有线或无线数据端口、存储卡端口、用于连接具有识别模块的装置的端口、音频输入/输出(I/O)端口、视频I/O端口、耳机端口等等。接口单元608可以用于接收来自外部装置的输入(例如,数据信息、电力等等)并且将接收到的输入传输到电子设备600内的一个或多个元件或者可以用于在电子设备600和外部装置之间传输数据。
存储器609可用于存储软件程序以及各种数据。存储器609可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作***、至少一个功能所需的应用程序(比如声音播放功能、图像播放功能等)等;存储数据区可存储根据手机的使用所创建的数据(比如音频数据、电话本等)等。此外,存储器609可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。
处理器610是电子设备的控制中心,利用各种接口和线路连接整个电子设备的各个部分,通过运行或执行存储在存储器609内的软件程序和/或模块,以及调用存储在存储器609内的数据,执行电子设备的各种功能和处理数据,从而对电子设备进行整体监控。处理器610可包括一个或多个处理单元;优选的,处理器610可集成应用处理器和调制解调处理器,其中,应用处理器主要处理操作***、用户界面和应用程序等,调制解调处理器主要处理无线通信。可以理解的是,上述调制解调处理器也可以不集成到处理器610中。
电子设备600还可以包括给各个部件供电的电源611(比如电池),优选的,电源611可以通过电源管理***与处理器610逻辑相连,从而通过电源管理***实现管理充电、放电、以及功耗管理等功能。
优选的,本发明实施例还提供一种电子设备,包括处理器610,存储器609,存储在存储器609上并可在所述处理器610上运行的计算机程序,该计算机程序被处理器610执行时实现上述数据处理方法实施例的各个过程,且能达到相同的技术效果,为避免重复,这里不再赘述。
实施例五
本发明实施例还提供一种计算机可读存储介质,计算机可读存储介质上存储有计算机程序,该计算机程序被处理器执行时实现上述数据处理方法实施例的各个过程,且能达到相同的技术效果,为避免重复,这里不再赘述。其中,所述的计算机可读存储介质,如只读存储器(Read-OnlyMemory,简称ROM)、随机存取存储器(RandomAccess Memory,简称RAM)、磁碟或者光盘等。
本发明实施例提供一种计算机可读存储介质,通过在检测到目标事务的第一分支事务执行失败的情况下,确定第一分支事务对应的目标分支事务,目标分支事务包括第一分支事务的前置分支事务和/或与第一分支事务并行执行的分支事务,检测与目标事务对应的数据库中是否存在与目标分支事务对应的数据库修改日志,在检测到存在数据库修改日志的情况下,基于数据库修改日志,对数据库进行回滚操作,以实现目标事务的一致性。这样,仅需要对数据库中存在数据库修改日志的目标分支事务进行回滚操作,就可以实现目标事务的一致性,而不需要对目标事务包含的所有已执行的事务进行业务上的反向操作,减少了事务处理的工作量,提高了数据处理效率。
本领域内的技术人员应明白,本发明的实施例可提供为方法、***、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明实施例的方法、设备(***)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程批量处理设备的处理器以产生一个机器,使得通过计算机或其他可编程批量处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程批量处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程批量处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
在一个典型的配置中,计算设备包括一个或多个处理器(CPU)、输入/输出接口、网络接口和内存。
内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM)。内存是计算机可读介质的示例。
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的定界,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、商品或者设备中还存在另外的相同要素。
本领域技术人员应明白,本发明的实施例可提供为方法、***或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
以上所述仅为本发明的实施例而已,并不用于限制本发明。对于本领域技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本发明的权利要求范围之内。

Claims (10)

1.一种数据处理方法,其特征在于,所述方法包括:
在检测到目标事务的第一分支事务执行失败的情况下,确定所述第一分支事务对应的目标分支事务,所述目标分支事务包括所述第一分支事务的前置分支事务和/或与所述第一分支事务并行执行的分支事务;
检测与所述目标事务对应的数据库中是否存在与所述目标分支事务对应的数据库修改日志;
在检测到存在所述数据库修改日志的情况下,基于所述数据库修改日志,对所述数据库进行回滚操作,以实现所述目标事务的一致性。
2.根据权利要求1所述的方法,其特征在于,在所述在检测到目标事务的第一分支事务执行失败的情况下,确定所述第一分支事务对应的目标分支事务之前,还包括:
在执行所述目标事务的第二分支事务时,获取与所述第二分支事务对应的数据库修改指令,所述第二分支事务为所述目标事务的任意一个或多个分支事务;
基于所述数据库修改指令以及所述数据库中与所述数据库修改指令对应的目标数据,生成与所述第二分支事务对应的数据库修改日志,并将所述数据库修改日志存储在所述数据库中。
3.根据权利要求2所述的方法,其特征在于,在所述基于所述数据库修改指令以及所述数据库中与所述数据库修改指令对应的目标数据,生成与所述第二分支事务对应的数据库修改日志之前,还包括:
对所述数据库修改指令中的内容进行解析处理,得到与所述数据库修改指令对应的元素据,所述元素据包含所述数据库修改指令中与所述目标数据相关的预设字段信息;
基于所述元素据,生成用于在所述数据库中确定所述目标数据的元数据,并基于所述元数据,确定所述目标数据,所述元数据包含所述目标数据在所述数据库中的位置信息。
4.根据权利要求1所述的方法,其特征在于,所述方法,还包括:
在对所述数据库进行回滚操作后,删除与所述回滚操作对应的所述目标分支事务的数据库修改日志。
5.一种数据处理装置,其特征在于,所述装置包括:
事务确定模块,用于在检测到目标事务的第一分支事务执行失败的情况下,确定所述第一分支事务对应的目标分支事务,所述目标分支事务包括所述第一分支事务的前置分支事务和/或与所述第一分支事务并行执行的分支事务;
日志检测模块,用于检测与所述目标事务对应的数据库中是否存在与所述目标分支事务对应的数据库修改日志;
回滚模块,用于在检测到存在所述数据库修改日志的情况下,基于所述数据库修改日志,对所述数据库进行回滚操作,以实现所述目标事务的一致性。
6.根据权利要求5所述的装置,其特征在于,所述装置,还包括:
指令获取模块,用于在执行所述目标事务的第二分支事务时,获取与所述第二分支事务对应的数据库修改指令,所述第二分支事务为所述目标事务的任意一个或多个分支事务;
日志生成模块,用于基于所述数据库修改指令以及所述数据库中与所述数据库修改指令对应的目标数据,生成与所述第二分支事务对应的数据库修改日志,并将所述数据库修改日志存储在所述数据库中。
7.根据权利要求6所述的装置,其特征在于,所述装置,还包括:
处理模块,用于对所述数据库修改指令中的内容进行解析处理,得到与所述数据库修改指令对应的元素据,所述元素据包含所述数据库修改指令中与所述目标数据相关的预设字段信息;
确定模块,用于基于所述元素据,生成用于在所述数据库中确定所述目标数据的元数据,并基于所述元数据,确定所述目标数据,所述元数据包含所述目标数据在所述数据库中的位置信息。
8.根据权利要求5所述的装置,其特征在于,所述装置,还包括:
删除模块,用于在对所述数据库进行回滚操作后,删除与所述回滚操作对应的所述目标分支事务的数据库修改日志。
9.一种电子设备,其特征在于,包括处理器、存储器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述计算机程序被所述处理器执行时实现如权利要求1至4中任一项所述的数据处理方法的步骤。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储计算机程序,所述计算机程序被处理器执行时实现如权利要求1至4中任一项所述的数据处理方法的步骤。
CN202011051598.9A 2020-09-29 2020-09-29 一种数据处理方法、装置及电子设备 Pending CN112231144A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202011051598.9A CN112231144A (zh) 2020-09-29 2020-09-29 一种数据处理方法、装置及电子设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202011051598.9A CN112231144A (zh) 2020-09-29 2020-09-29 一种数据处理方法、装置及电子设备

Publications (1)

Publication Number Publication Date
CN112231144A true CN112231144A (zh) 2021-01-15

Family

ID=74120839

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202011051598.9A Pending CN112231144A (zh) 2020-09-29 2020-09-29 一种数据处理方法、装置及电子设备

Country Status (1)

Country Link
CN (1) CN112231144A (zh)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112764888A (zh) * 2021-01-21 2021-05-07 中信银行股份有限公司 一种基于日志分析的分布式事务检查判断方法及***
CN113420011A (zh) * 2021-06-29 2021-09-21 平安消费金融有限公司 redis事务回滚方法、装置、计算机设备和存储介质
CN115577031A (zh) * 2022-10-24 2023-01-06 北京力控元通科技有限公司 一种数据库事务处理方法、装置、电子设备及存储介质

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106598992A (zh) * 2015-10-15 2017-04-26 中兴通讯股份有限公司 数据库的操作方法及装置
US20170161353A1 (en) * 2015-12-08 2017-06-08 Alibaba Group Holding Limited System, method and device for optimizing database operations
CN109491768A (zh) * 2018-11-21 2019-03-19 四川长虹电器股份有限公司 一种基于子事务流的分布式事务动态处理方法和***
CN110019443A (zh) * 2017-09-08 2019-07-16 阿里巴巴集团控股有限公司 非关系型数据库事务处理方法、装置及电子设备
CN110032428A (zh) * 2019-02-21 2019-07-19 阿里巴巴集团控股有限公司 分布式事务的执行方法和装置
CN111414266A (zh) * 2020-03-23 2020-07-14 山东浪潮通软信息科技有限公司 一种分布式事务的同步异步通信方法和装置

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106598992A (zh) * 2015-10-15 2017-04-26 中兴通讯股份有限公司 数据库的操作方法及装置
US20170161353A1 (en) * 2015-12-08 2017-06-08 Alibaba Group Holding Limited System, method and device for optimizing database operations
CN110019443A (zh) * 2017-09-08 2019-07-16 阿里巴巴集团控股有限公司 非关系型数据库事务处理方法、装置及电子设备
CN109491768A (zh) * 2018-11-21 2019-03-19 四川长虹电器股份有限公司 一种基于子事务流的分布式事务动态处理方法和***
CN110032428A (zh) * 2019-02-21 2019-07-19 阿里巴巴集团控股有限公司 分布式事务的执行方法和装置
CN111414266A (zh) * 2020-03-23 2020-07-14 山东浪潮通软信息科技有限公司 一种分布式事务的同步异步通信方法和装置

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112764888A (zh) * 2021-01-21 2021-05-07 中信银行股份有限公司 一种基于日志分析的分布式事务检查判断方法及***
CN113420011A (zh) * 2021-06-29 2021-09-21 平安消费金融有限公司 redis事务回滚方法、装置、计算机设备和存储介质
CN115577031A (zh) * 2022-10-24 2023-01-06 北京力控元通科技有限公司 一种数据库事务处理方法、装置、电子设备及存储介质

Similar Documents

Publication Publication Date Title
CN108089977B (zh) 一种应用程序的异常处理方法、装置及移动终端
CN112231144A (zh) 一种数据处理方法、装置及电子设备
CN110674112A (zh) 一种数据查询的方法、装置及电子设备
CN109522278B (zh) 一种文件存储方法及终端设备
CN110990679A (zh) 信息搜索方法及电子设备
CN111399819B (zh) 数据生成方法、装置、电子设备及存储介质
CN107908492B (zh) 黑屏检测方法、移动终端及计算机可读存储介质
CN111405043A (zh) 信息处理方法、装置及电子设备
CN109067979B (zh) 一种提示方法及移动终端
CN112650498B (zh) 静态库集成方法、装置、电子设备及存储介质
CN108363499B (zh) 一种文本恢复方法及移动终端
CN108089935B (zh) 一种应用程序的管理方法及移动终端
CN107832191B (zh) 黑屏检测方法、移动终端及计算机可读存储介质
CN109871324B (zh) 一种控件的操作方法和装置
CN108491225B (zh) 一种更新包生成方法及移动终端
CN112486567B (zh) 代码的合并请求发送方法、装置、电子设备及存储介质
CN111045588B (zh) 一种信息查看方法及电子设备
US11567822B2 (en) Method of monitoring closed system, apparatus thereof and monitoring device
CN110764668B (zh) 评论信息获取方法及电子设备
CN114707793A (zh) 应急预案生成方法、装置、存储介质及电子设备
CN112035180A (zh) 一种自动化实例加载方法、装置、电子设备及存储介质
CN111475141A (zh) 榜单的生成方法、装置及电子设备
CN110659329A (zh) 一种数据处理方法、装置及电子设备
CN110955468A (zh) 一种操作入口的调取的方法、装置及电子设备
CN113032361B (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
CB02 Change of applicant information
CB02 Change of applicant information

Address after: Room 306, No. 799, Ximen Road, Chengqiao Town, Chongming District, Shanghai 202150

Applicant after: SHANGHAI I2FINANCE SOFTWARE CO.,LTD.

Address before: Room 2076, area C, building 8, No.2, Guanshan Road, Chengqiao Town, Chongming District, Shanghai 202150

Applicant before: SHANGHAI I2FINANCE SOFTWARE CO.,LTD.

RJ01 Rejection of invention patent application after publication
RJ01 Rejection of invention patent application after publication

Application publication date: 20210115