CN110347659B - 数据处理方法和装置、交易数据处理方法和装置 - Google Patents

数据处理方法和装置、交易数据处理方法和装置 Download PDF

Info

Publication number
CN110347659B
CN110347659B CN201910509194.0A CN201910509194A CN110347659B CN 110347659 B CN110347659 B CN 110347659B CN 201910509194 A CN201910509194 A CN 201910509194A CN 110347659 B CN110347659 B CN 110347659B
Authority
CN
China
Prior art keywords
processing
sub
data
resource manager
preset
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
CN201910509194.0A
Other languages
English (en)
Other versions
CN110347659A (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
Advanced New Technologies 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 Advanced New Technologies Co Ltd filed Critical Advanced New Technologies Co Ltd
Priority to CN201910509194.0A priority Critical patent/CN110347659B/zh
Publication of CN110347659A publication Critical patent/CN110347659A/zh
Application granted granted Critical
Publication of CN110347659B publication Critical patent/CN110347659B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • 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/21Design, administration or maintenance of databases
    • 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/2358Change logging, detection, and notification
    • 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
    • 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/27Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor

Abstract

本说明书提供了一种数据处理方法和装置、交易数据处理方法和装置。由于通过预先为数据库设置对应的预设的回滚日志,在根据数据处理请求,调用多个资源管理器针对所负责的数据库进行子处理之前,先利用上述预设的回滚日志分别记录下后续子处理将会涉及到的数据库的相关数据作为目标数据;在进行子处理之后,根据所反馈的子处理结果,在确定满足第一预设要求的情况下,可以调用子处理结果为处理成功的资源管理器根据之前在预设的回滚日志中记录的目标数据,进行回滚处理,从而简化了用户操作,提高了处理效率,达到能够在确定数据处理存在子处理处理失败的情况下,自动、高效地对子处理成功的数据库进行数据恢复、还原。

Description

数据处理方法和装置、交易数据处理方法和装置
技术领域
本说明书属于互联网技术领域,尤其涉及一种数据处理方法和装置、交易数据处理方法和装置。
背景技术
在进行针对多个数据库(Database,DB)的数据处理时,往往要求针对多个数据库的子处理的处理状态最终一致,即多个子处理的处理结果最终都为处理成功,或者多个子处理的处理结果最终都为处理失败,这样才能满足数据处理的原子性要求。
具体的,在进行针对例如分布式系统中的多个数据库的数据处理时,需要调用与多个数据库对应的资源管理器分别进行相应的子处理。如果多个资源管理器所负责执行的子处理都处理成功,则确定该业务数据处理整体处理成功。如果多个资源管理所负责的子处理中存在处理失败,则确定该业务数据处理整体处理失败。这时,为了满足数据处理的原子性要求,基于现有的数据处理方法,通常需要用户人工对处理成功的资源管理所对应的数据库进行数据恢复、还原,使得多个数据库都恢复到处理前的状态,从而保持多个数据库的处理状态的最终一致,这样才能配合释放出子处理所占用的处理资源,用于其他的数据处理。
目前,亟需一种数据处理方法能够针对上述情况,自动、高效地对处理成功的数据库进行数据的恢复、还原,以保证多个子处理所针对的数据库的处理状态的最终一致,满足数据处理的原子性要求。
发明内容
本说明书目的在于提供一种数据处理方法和装置、交易数据处理方法和装置,以解决现有方法中存在的操作繁琐、复杂,处理效率低的技术问题,达到简化用户操作,提高处理效率,能在确定数据处理存在子处理处理失败的情况下,自动、高效地对子处理成功的数据库进行数据恢复、还原。
本说明书提供的一种数据处理方法和装置、交易数据处理方法和装置是这样实现的:
一种数据处理方法,包括:接收并响应数据处理请求,调用多个资源管理器分别在预设的回滚日志中记录下目标数据,其中,所述数据处理请求包括针对多个数据库的子处理,所述数据库分别对应用于进行子处理的资源管理器;根据所述数据处理请求,调用多个资源管理器分别对所对应的数据库进行子处理,并得到子处理结果;根据所述子处理结果,在确定子处理结果满足第一预设要求的情况下,调用所得到的子处理结果为处理成功的资源管理器,根据所调用的资源管理器的目标数据,进行回滚处理。
一种交易数据的处理方法,包括:接收并响应交易数据处理请求,调用第一资源管理器、第二资源管理器分别在预设的第一回滚日志、预设的第二回滚日志中,记录下付款账户的资金数据、收款账户的资金数据,其中,所述交易数据处理请求所请求的数据处理包括针对付款账户的资金数据的删减处理和针对收款账户的资金数据的增加处理,所述第一资源管理器用于执行对付款账户的资金数据的删减处理,所述第二资源管理器用于执行对收款账户的资金数据的增加处理;根据所述交易数据处理请求,调用第一资源管理器对付款账户的资金数据进行删减处理,调用第二资源管理器对收款账户的资金数据进行增加处理,并获取第一资源管理器、第二资源管理器反馈的第一子处理结果和第二子处理结果;根据所述第一子处理结果和第二子处理结果,在确定所述第一子处理结果和第二子处理结果满足第一预设要求的情况下,调用所反馈的子处理结果为处理成功的资源管理器,根据所调用的资源管理器记录的资金数据,进行回滚处理。
一种数据处理方法,包括:接收并响应数据处理请求,调用多个资源管理器分别在预设的回滚日志中记录下目标数据,其中,所述数据处理请求所请求的数据处理包括多个子处理,所述资源管理器用于执行所负责的子处理;根据所述数据处理请求,调用多个资源管理器分别进行所负责的子处理,并得到子处理结果;根据所述子处理结果,在确定子处理结果满足第一预设要求的情况下,调用所得到的子处理结果为处理成功的资源管理器,根据所调用的资源管理器的目标数据,进行回滚处理。
一种数据处理装置,包括:第一处理模块,用于接收并响应数据处理请求,调用多个资源管理器分别在预设的回滚日志中记录下目标数据,其中,所述数据处理请求包括针对多个数据库的子处理,所述数据库分别对应用于进行子处理的资源管理器;第二处理模块,用于根据所述数据处理请求,调用多个资源管理器分别对所对应的数据库进行子处理,并得到子处理结果;第三处理模块,用于根据所述子处理结果,在确定子处理结果满足第一预设要求的情况下,调用所得到的子处理结果为处理成功的资源管理器,根据所调用的资源管理器的目标数据,进行回滚处理。
一种交易数据的处理装置,包括:第一处理模块,用于接收并响应交易数据处理请求,调用第一资源管理器、第二资源管理器分别在预设的第一回滚日志、预设的第二回滚日志中,记录下付款账户的资金数据、收款账户的资金数据,其中,所述交易数据处理请求所请求的数据处理包括针对付款账户的资金数据的删减处理和针对收款账户的资金数据的增加处理,所述第一资源管理器用于执行对付款账户的资金数据的删减处理,所述第二资源管理器用于执行对收款账户的资金数据的增加处理;第二处理模块,用于根据所述交易数据处理请求,调用第一资源管理器对付款账户的资金数据进行删减处理,调用第二资源管理器对收款账户的资金数据进行增加处理,并获取第一资源管理器、第二资源管理器反馈的第一子处理结果和第二子处理结果;第三处理模块,用于根据所述第一子处理结果和第二子处理结果,在确定所述第一子处理结果和第二子处理结果满足第一预设要求的情况下,调用所反馈的子处理结果为处理成功的资源管理器,根据所调用的资源管理器记录的资金数据,进行回滚处理。
一种数据处理装置,包括:第一处理模块,用于接收并响应数据处理请求,调用多个资源管理器分别在预设的回滚日志中记录下目标数据,其中,所述数据处理请求所请求的数据处理包括多个子处理,所述资源管理器用于执行所负责的子处理;第二处理模块,用于根据所述数据处理请求,调用多个资源管理器分别进行所负责的子处理,并得到子处理结果;第三处理模块,用于根据所述子处理结果,在确定子处理结果满足第一预设要求的情况下,调用所得到的子处理结果为处理成功的资源管理器,根据所调用的资源管理器的目标数据,进行回滚处理。
一种服务器,包括处理器以及用于存储处理器可执行指令的存储器,所述处理器执行所述指令时实现接收并响应数据处理请求,调用多个资源管理器分别在预设的回滚日志中记录下目标数据,其中,所述数据处理请求包括针对多个数据库的子处理,所述数据库分别对应用于进行子处理的资源管理器;根据所述数据处理请求,调用多个资源管理器分别对所对应的数据库进行子处理,并得到子处理结果;根据所述子处理结果,在确定子处理结果满足第一预设要求的情况下,调用所得到的子处理结果为处理成功的资源管理器,根据所调用的资源管理器的目标数据,进行回滚处理。
一种计算机可读存储介质,其上存储有计算机指令,所述指令被执行时实现接收并响应数据处理请求,调用多个资源管理器分别在预设的回滚日志中记录下目标数据,其中,所述数据处理请求包括针对多个数据库的子处理,所述数据库分别对应用于进行子处理的资源管理器;根据所述数据处理请求,调用多个资源管理器分别对所对应的数据库进行子处理,并得到子处理结果;根据所述子处理结果,在确定子处理结果满足第一预设要求的情况下,调用所得到的子处理结果为处理成功的资源管理器,根据所调用的资源管理器的目标数据,进行回滚处理。
本说明书提供的一种数据处理方法和装置、交易数据处理方法和装置,由于通过预先为数据库设置对应的预设的回滚日志,在根据数据处理请求,调用多个资源管理器针对所负责的数据库进行子处理之前,先利用上述预设的回滚日志分别记录下后续子处理将会涉及到的数据库的数据作为目标数据;在进行子处理之后,根据反馈的子处理结果,在确定满足第一预设要求的情况下,调用子处理结果为处理成功的资源管理器根据预设的回滚日志中记录的目标数据,进行回滚处理,从而简化了用户操作,提高了处理效率,达到能够在确定数据处理存在子处理处理失败的情况下,自动、高效地对子处理成功的数据库进行数据恢复、还原,以保证在上述情况下,多个子处理所分别针对的多个数据库的处理状态的最终一致,满足数据处理的原子性要求。
附图说明
为了更清楚地说明本说明书实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本说明书中记载的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1是应用本说明书实施例提供的数据处理方法的系统的结构组成的一种实施例的示意图;
图2是在一个场景示例中,应用本说明书实施例提供的数据处理方法的一种实施例的示意图;
图3是在一个场景示例中,应用本说明书实施例提供的数据处理方法的一种实施例的示意图;
图4是在一个场景示例中,应用本说明书实施例提供的数据处理方法的一种实施例的示意图;
图5是本说明书实施例提供的数据处理方法的流程的一种实施例的示意图;
图6是本说明书实施例提供的交易数据处理方法的流程的一种实施例的示意图;
图7是本说明书实施例提供的服务器的结构的一种实施例的示意图;
图8是本说明书实施例提供的数据处理装置的结构的一种实施例的示意图。
具体实施方式
为了使本技术领域的人员更好地理解本说明书中的技术方案,下面将结合本说明书实施例中的附图,对本说明书实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本说明书一部分实施例,而不是全部的实施例。基于本说明书中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都应当属于本说明书保护的范围。
考虑到基于现有的数据处理方法,在执行包含针对多个数据库的子处理的数据处理时,如果出现存在其中的一个或多个子处理处理失败,而其他子处理处理成功的情况,这时往往需要用户人工地通过代码指令搜索历史数据来获取子处理成功的数据库之前的相关数据,再通过代码指令利用上述数据对子处理成功的数据库进行数据恢复、还原,使得子处理成功的数据库与子处理失败的数据库的处理状态最终保持一致,从而满足对包含针对多个数据库的子处理的数据处理的原子性要求。
可见通过上述方法在进行包含针对多个数据库的子处理的数据处理时,由于需要依赖用户人工从繁杂的历史数据中搜索用于恢复、还原的相关数据,再利用上述数据对整体处理失败但子处理成功的数据库进行恢复、还原,导致处理过程相对较为繁琐、复杂,势必需要耗费大量的人力和时间,处理效率也会相对较低。
针对产生上述问题的根本原因,本说明书考虑可以预先为各个数据库分别建立对应的预设的回滚日志,在调用执行针对各个数据库的子处理之前,先利用上述预设的回滚日志记录并保存后续子处理将会涉及到的该数据库的相关数据,例如,后续子处理会更新的该数据库的数据,作为目标数据;在进行子处理后,可以根据针对各个数据库的子处理结果,在确定数据处理整体失败的情况下,通过调取并利用预设的回滚日志,获取得到子处理成功的数据库处理前的目标数据,进而能利用上述目标数据便捷地对子处理成功的数据库进行恢复、还原,从而达到能自动、高效地对上述情况下子处理成功的数据库进行数据的恢复、还原,保证多个子处理所针对的数据库的处理状态的最终一致,以满足数据处理的原子性要求。
本说明书实施例提供了一种数据处理方法,所述数据处理方法具体可以应用于包含有服务器和客户端的系统架构中。参阅图1所示,其中,上述服务器和客户端可以通过有线或无线的方式耦合,以便进行数据交互。
具体实施时,上述客户端可以用于向服务器发送数据处理请求,其中,所述数据处理请求所请求的数据处理包括针对多个数据库的子处理。上述服务器可以用于接收并响应数据处理请求,调用多个资源管理器分别在预设的回滚日志中记录下目标数据,其中,所述数据库分别与一个资源管理器对应,所述资源管理器用于进行所对应的数据库的子处理;根据所述数据处理请求,调用多个资源管理器分别对所对应的数据库进行子处理,并得到子处理结果;根据所述子处理结果,在确定子处理结果满足第一预设要求的情况下,调用所得到的子处理结果为处理成功的资源管理器,根据所调用的资源管理器的目标数据,进行回滚处理。
在本实施例中,所述服务器可以是一种应用于数据处理系统一侧,能够实现数据传输、数据处理等功能的后台业务服务器。具体的,所述服务器可以为一个具有数据运算、存储功能以及网络交互功能的电子设备;也可以为运行于该电子设备中,为数据处理、存储和网络交互提供支持的软件程序。在本实施方式中,并不具体限定所述服务器的数量。所述服务器具体可以为一个服务器,也可以为几个服务器,或者,由若干服务器形成的服务器集群。
在本实施例中,所述客户端可以是一种应用于用户一侧,能够实现数据采集、数据传输等功能的前端设备。具体地,所述客户端例如可以为台式电脑、平板电脑、笔记本电脑、智能手机、数字助理、智能可穿戴设备、导购终端、具有网络访问功能的电视机等。或者,所述客户端也可以为能够运行于上述电子设备中的软件应用。例如,可以是在手机上运行的某APP等。
在一个场景示例中,可以参阅图2所示,可以应用本说明书实施例提供的数据处理方法进行包含针对多个数据库的子处理的数据处理。
在本场景示例中,用户甲希望对某网络数据系统的A数据库、B数据库中所保存的自己的账户名称、登录密码分别进行更新。其中,A数据库和B数据库分别是分布于某网络系统中的不同服务器处的数据库,A数据库用于保存管理该网络数据系统的用户的账户名称,B数据库用于保存管理该网络数据系统的用户的登录密码。且在A数据库和B数据库上分别对应部署有资源管理器a和资源管理器b,其中,资源管理器a用于执行针对A数据库的操作处理,资源管理b用于执行针对B数据库的操作处理。
具体实施时,用户甲可以使用自己的手机作为客户端,通过手机向某网络数据系统的后台服务器发送相应的数据处理请求,以请求分别将该网络数据系统的A数据库中保存的账户名称更新为“lion”;将B数据库中保存的登录密码更新为“666”。
具体的,上述数据处理请求具体可以携带有更新的账户名称“lion”,以及更新的登录密码“666”。其中,上述数据处理请求所请求的数据处理具体可以包含有两个不同子处理,即:第一子处理,将A数据库中保存的账户名称修改为“lion”;和第二子处理,将B数据库中保存的登录密码修改为“666”。
其中,上述子处理具体可以为一种基于结构化查询语言(Structured QueryLanguage,SQL)的针对数据库进行的数据处理,相应的,上述第一子处理可以记为SQL1,第二子处理可以记为SQL2。当然,需要说明的是,上述所列举的第一处理和第二子处理只是一种示意性说明。具体实施时,根据具体情况和处理需要,还可以引用其他类型的数据处理作为上述第一子处理和第二子处理。对此,本说明书不作限定。
服务器在接收到上述数据处理请求后,可以先对上述数据处理请求进行解析,确定用户所请求的数据处理,即包括针对A数据库的第一子处理和针对B数据库的第二子处理两个不同的子处理。
在根据上述处理请求调用相应的资源管理器a和资源管理器b执行上述两个子处理之前,服务器会先响应上述数据处理请求,确定出将要执行的两个子处理将会涉及到的A数据库中账户名称数据,和B数据库中的登录密码数据。
为了便于后续的数据处理,可以参阅图3所示,服务器这时会先调用资源管理器a查询A数据库的业务表,获取在还未进行第一子处理前,当前业务表中的与将要执行的第一子处理相关的账户名称数据,即“ID name:lio”。同时,服务器也会调用资源管理器b查询B数据库的业务表,获取在还未进行第二子处理前,当前业务表中的与将要执行的第二子处理相关的密码数据,即“code:123”。其中,上述业务表分别与一个数据库对应,用于记录保存每次数据处理后该数据库的相关数据。
进一步,服务器会调用资源管理器a将第一子处理之前的账户名称数据“ID name:lio”作为一种目标数据,记录并保存在预先设置的对应A数据库的预设的回滚日志中。同样,服务器也会调用资源管理器b将第二子处理之前的密码数据“code:123”作为一种目标数据,记录并保存在预设设置的对应B数据库的预设的回滚日志中。其中,上述目标数据具体可以理解为一种进行子处理之前,后续将要执行的子处理将会涉及到的与数据库相关的数据,例如,后续将要执行的子处理将会修改更新的数据库的数据等。
具体的,上述预设的回滚日志可以是一种undolog(也可以记为undo log或undo_log等)数据列表,相应的,服务器可以调用资源管理器a将账户名称数据作为一种undolog数据记录并保存在对应A数据库的undolog数据列表中;同样,服务器可以调用资源管理器b将密码数据作为一种undolog数据记录并保存在对应B数据库的undolog数据列表中。当然,需要说明的是,上述所列举的undolog数据列表只是一种示意性说明。具体实施时,根据具体的应用场景和处理需要,还可以使用其他类型的数据结构作为预设的回滚日志来记录后续子处理将会涉及到的数据库的相关数据。对此,本说明书不作限定。
在调用资源管理器a和资源管理器b分别将上述账户名称数据和密码数据记录到对应数据库的预设的回滚日志后,服务器才会根据数据处理请求,调用资源管理器a对A数据库进行第一子处理,即将A数据库的业务表中的账户名称数据由原来的“lio”修改更新为“lion”。同时,调用资源管理器b对B数据进行第二子处理,即将B数据库的业务表中的登录密码数据由原来的“123”修改更新为“666”。
资源管理器a如果成功将A数据库的业务表中的账户名称数据由原来的“lio”修改更新为“lion”,则第一子处理执行成功,进而会生成一个处理成功的指示信息作为第一子处理结果反馈给服务器;否则,第一子处理执行失败,会生成一个处理失败的指示信息作为第一子处理结果反馈给服务器。类似的,资源管理器如果成功将B数据库的业务表中的登录密码数据由原来的“123”修改更新为“666”,则第二子处理执行成功,进而会生成一个处理成功的指示信息作为第二子处理结果反馈给服务器;否则,第二子处理执行失败,会生成一个处理失败的指示信息作为第二子处理结果反馈给服务器。
服务器获取资源管理器a和资源管理器b反馈的第一子处理结果和第二子处理结果,并根据第一子处理结果和第二子处理结果来判断该数据处理整体的执行处理情况。
具体的,服务器根据第一子处理结果和第二子处理结果,可能发现:第一子处理结果为处理成功,且第二子处理结果为处理失败,或者,第一子处理结果为处理失败,且第二子处理结果为处理成功,可以判断此时子处理结果满足第一预设要求,即满足基于多个资源管理器所得到的多个子处理结果中至少存在一个子处理结果为处理成功,且至少存在一个子处理结果为处理失败。进而可以判断两个子处理中只有一个执行成功,另一个执行失败,即,对A数据库和B数据库的修改更新只有一个修改更新成功,另一修改更新失败。可以确定该数据处理整体处理失败,这时为了保证基于同一个数据处理中不同的子处理的A数据库和B数据库的处理状态一致,以满足原子性要求,需要对执行成功的数据库进行数据恢复、还原。
以第一子处理结果为处理成功,且第二子处理结果为处理失败为例,这时数据库A实际上已经完成了第一子处理,数据库A中保存的账户名称已经修改更新为了“lion”。为了保证基于该数据处理后的A数据库和B数据库的处理状态一致,即最终两个数据库都没有进行数据的修改更新,服务器可以调用对应A数据库的资源管理器a先查询数据库A的预设的回滚日志,获取在进行第一子处理前记录保存的目标数据,即账户名称数据“lio”;进而可以根据所获取的目标数据对当前的A数据库进行回滚处理,实现对A数据库的数据恢复、还原。具体的,可以参阅图4所示,服务器可以调用资源管理器a根据目标数据“lio”,将A数据库的当前业务表中经过修改更新后的账户名称数据“ID name:lion”修改为“ID name:lio”从而实现了对A数据库的数据恢复、还原,使得A数据库重新回复到了第一子处理之前的处理状态,与B数据库当前的处理状态一致,满足了数据处理的原子性要求。
当然,上述所列举的处理方式是以第一子处理结果为处理成功,且第二子处理结果为处理失败为例进行说明的,对于另一种情况即第一子处理结果为处理失败,且第二子处理结果为处理成功,可以参照上述处理方式执行。对此,本说明书不作赘述。
服务器在确定该数据处理整体处理失败的情况下,同时还可以生成相应的回执信息,反馈给客户端,以提示用户本次处理处理失败。当然,也可以重新根据数据处理请求再次调用资源管理器a和资源管理器b分别对A数据库和B数据库进行第一子处理和第二子处理。
此外,服务器根据第一子处理结果和第二子处理结果,还可能发现:第一子处理结果为处理失败,且第二子处理结果为处理失败,可以判断子处理结果满足第二预设要求,确定该数据处理整体处理失败,且A数据库和B数据库当前的处理状态是一致的,即都没有完成对数据库的修改更新,因此不需要进行回滚处理。这时,服务器可以直接生成相应的回执信息,反馈给客户端,以提示用户本次处理处理失败。当然,也可以重新根据数据处理请求再次调用资源管理器a和资源管理器b分别对A数据库和B数据库进行第一子处理和第二子处理。
此外,服务器根据第一子处理结果和第二子处理结果,还可能发现:第一子处理结果为处理成功,且第二子处理结果为处理成功,可以判断子处理结果满足第三预设要求,确定该数据处理整体处理成功,且A数据库和B数据库当前的处理状态是一致的,即都顺利完成了对数据库的修改更新,因此也不需要进行回滚处理。这时,服务器可以直接生成相应的回执信息,反馈给客户端,以提示用户本次处理处理成功。
由上述场景示例可见,本说明书提供的数据处理方法,由于通过预先为数据库设置对应的预设的回滚日志,在根据数据处理请求,调用多个资源管理器针对所负责的数据库进行子处理之前,先利用上述预设的回滚日志分别记录下后续子处理将会涉及到的数据库的数据作为目标数据;在进行子处理之后,根据反馈的子处理结果,在确定满足第一预设要求的情况下,调用子处理结果为处理成功的资源管理器根据预设的回滚日志中记录的目标数据,进行回滚处理,从而简化了用户操作,提高了处理效率,达到能够在确定数据处理存在子处理处理失败的情况下,自动、高效地对子处理成功的数据库进行数据恢复、还原,以保证在上述情况下,多个子处理所针对的数据库的处理状态的最终一致,满足数据处理的原子性要求。
参阅图5所示,本说明书实施例提供了一种数据处理方法,其中,该方法具体应用于服务器一侧。具体实施时,该方法可以包括以下内容。
S51:接收并响应数据处理请求,调用多个资源管理器分别在预设的回滚日志中记录下目标数据,其中,所述数据处理请求包括针对多个数据库的子处理,所述数据库分别对应用于进行子处理的资源管理器。
在本实施例中,上述数据处理请求具体可以理解为一种用于请求对多个数据库进行相应子处理的请求数据。具体的,上述数据处理请求还可以携带有所请求处理的数据库的信息,以及所该数据库的所请求进行的具体子处理的信息。
在本实施例中,上述数据处理请求所请求的数据处理具体可以包括针对多个数据库的多个子处理。其中,上述多个数据库可以是分布于不同位置的数据库,也可以是分布于同一位置的数据库。具体的,在上述多个数据库上分别布设有对应的资源管理器,用于负责执行所对应的数据库的子处理。
在本实施例中,上述子处理具体可以是对数据库中数据的查询操作,也可以是对数据库中数据的删除操作,还可以是对数据库中数据的增添操作等等。当然,上述所列举的子处理内容只是一种示意性说明。具体实施时,根据具体的应用场景和处理需要,上述子处理还可以包含其他处理内容的子处理。对此,本说明书不作限定。
在本实施例中,进一步又考虑到上述子处理是针对数据库的数据处理,结合对数据库的数据处理的处理特点,上述子处理具体可以为一种基于结构化查询语言(Structured Query Language,SQL)的针对数据库进行的数据处理。相应的,一个针对数据库的子处理,可以记为一个SQL。当然,需要说明的是,上述所列举的子处理只是一种示意性说明。具体实施时,根据具体的应用场景和处理需要,上述子处理还可以是其他类型或形式的子处理。对此,本说明书不作限定。
在本实施例中,上述目标数据具体可以理解为进行子处理之前,子处理将会涉及到的数据库的相关数据。例如,经过子处理后,数据库的数据中会发生改变的相关数据进行子处理之前的数据。
在本实施例中,上述预设的回滚日志具体可以理解为一种预先针对一个数据库建立的,用于记录保存每次针对该数据库的子处理将会涉及到的子处理之前的相关数据的文件。其中,上述预设的回滚日志具体可以是一种undolog数据列表。当然,需要说明的是,上述所列举的undolog数据列表只是一种示意性说明。具体实施时,根据具体的应用场景和处理需要,还可以使用其他类型的数据结构作为预设的回滚日志来记录后续子处理将会涉及到的数据库的相关数据。对此,本说明书不作限定。
在本实施例中,具体实施时,可以是服务器在接收到数据处理请求之后,临时为数据处理请所包含的子处理所针对的数据库建立对应的预设的回滚日志;也可以是服务器在接收到数据处理请求之前,预先为每个数据库建立好了对应的预设的回滚日志等。对此,本说明书不作限定。
在本实施例中,具体实施时,用户可以通过客户端向服务器发送数据处理请求,以请求进行针对多个数据库的子处理。服务器在接收到上述数据处理请求后,可以先不根据数据处理请求调用对应的资源管理器执行对数据库的子处理。而是先响应上述数据处理请求,调用对应的资源管理器先在预设的回滚日志中记录下所对应的数据库的目标数据。
在本实施例中,具体实施时,服务器可以响应数据处理请求,在调用资源管理器执行对数据库的子处理之前,先调用资源管理器查询所对应的数据库的业务表,获取即将执行的子处理会涉及到的目标数据,并将该目标数据记录保存在预设的回滚日志中,以便后续使用。
在本实施例中,上述业务表分别与一个数据库对应,具体可以用于记录保存每次数据处理后该数据库的相关数据。
S53:根据所述数据处理请求,调用多个资源管理器分别对所对应的数据库进行子处理,并得到子处理结果。
在本实施例中,上述子处理结果具体可以理解为一种资源管理器在被服务器调用对数据库进行相应的子处理后,反馈给服务器的用于指示所负责的子处理是否处理成功的指示信息。
在本实施例中,具体实施时,服务器在调用多个资源管理器分别利用预设的回滚日志在进行子处理之前记录下目标数据后,进一步可以根据数据处理请求所请求的针对多个数据库的子处理,调用多个资源管理分别对所对应的数据库进行相应的子处理,并获取多个资源管理器在执行所负责的子处理后所反馈的处理结果。
S55:根据所述子处理结果,在确定子处理结果满足第一预设要求的情况下,调用所得到的子处理结果为处理成功的资源管理器,根据所调用的资源管理器的目标数据,进行回滚处理。
在本实施例中,上述满足第一预设要求,具体可以包括:基于多个资源管理器所得到的多个子处理结果中至少存在一个子处理结果为处理成功。
在本实施例中,具体实施时,服务器根据所获取的子处理结果,在确定基于多个资源管理器所得到的多个子处理结果中至少存在一个子处理结果为处理成功时,确定子处理结果满足第一预设要求。进一步,可以确定该数据处理整体处理失败,但该数据处理中存在部分子处理处理成功,即存在部分数据库的数据已经发生了改变,这时为了保证多个子处理所对应的多个数据库的处理状态一致,使得数据处理满足原子性要求,可以从多个数据库中筛选出子处理结果为处理成功的数据库,并调用上述处理成功的数据库的资源管理器根据对应的预设的回滚日志对该数据库进行回滚处理,来对该数据库中的数据进行恢复、还原,从而可以使得处理成功的数据库与处理失败的数据库的处理状态一致。
在本实施例中,上述调用所得到的子处理结果为处理成功的资源管理器,根据所调用的资源管理器的目标数据,进行回滚处理,具体实施时,可以包括:调用所得到的子处理结果为处理成功的资源管理器查询所对应的数据库的预设的回滚日志,以获取所述目标数据,即获取子处理之前未处理的数据库的相关数据;再根据所述目标数据,修改所对应的数据库的当前业务表中的对应数据,从实现了对子处理成功的数据库进行数据的恢复、欢迎,完成了回滚处理。
在本实施例中,由于通过预先为数据库设置对应的预设的回滚日志,在根据数据处理请求,调用多个资源管理器针对所负责的数据库进行子处理之前,先利用上述预设的回滚日志分别记录下后续子处理将会涉及到的数据库的数据作为目标数据;在进行子处理之后,根据反馈的子处理结果,在确定满足第一预设要求的情况下,调用子处理结果为处理成功的资源管理器根据预设的回滚日志中记录的目标数据,进行回滚处理,从而简化了用户操作,提高了处理效率,达到能够在确定数据处理存在子处理处理失败的情况下,自动、高效地对子处理成功的数据库进行数据恢复、还原,以保证在上述情况下,多个子处理所针对的数据库的处理状态的最终一致,满足数据处理的原子性要求。
在一个实施例中,所述预设的回滚日志具体可以包括:undolog数据列表等。相应的,具体实施时,服务器可以调用资源管理器将目标数据以undolog的形式记录在undolog数据列表中。当然,需要说明的是,上述所列举的undolog数据列表只是一种示意性说明。具体实施时,根据具体的应用场景和处理需要,还可以采用其他合适的数据结构作为上述预设的回滚日志。对此,本说明书不作限定。
在一个实施例中,上述调用多个资源管理器分别在预设的回滚日志中记录下目标数据,具体实施时,可以包括以下内容:调用多个资源管理器分别在进行子处理之前,查询所对应的数据库的业务表,获取与子处理相关的数据库的数据作为目标数据;并在预设的回滚日志中记录所述目标数据。
在本实施例中,服务器在调用资源管理器执行针对数据库的子处理之前,可以通过查询数据库的业务表,将还未发生变更的,与即将执行的子处理相关的数据库的数据(即,即将执行的子处理将会涉及到的该数据库的相关数据)作为目标数据先记录并保存在预设的回滚日志中。
在一个实施例中,所述第一预设要求具体可以包括:基于多个资源管理器所得到的多个子处理结果中至少存在一个子处理结果为处理成功,且至少存在一个子处理结果为处理失败。
在本实施例中,基于资源管理器反馈的多个子处理结果满足上述第一预设要求,可以确定包含有多个子处理的数据处理整体处理失败,但存在部分子处理处理成功,部分子处理处理失败,这时子处理成功的数据库中的数据已经发生了变更,而子处理失败的数据库中的数据没有发生变更,即子处理成功的数据库和子处理失败的数据库的处理状态已经不一致了。为了保证对于通一个数据处理中涉及到的多个子处理所对应的多个数据库的处理状态最终一致,后续可以针对满足上述第一预设要求的情况中子处理成功的数据库进行对应的回滚处理,以对子处理成功的数据库进行数据恢复、还原,使得回滚处理后的数据库与其他子处理失败的数据库的处理状态最终一致,从而满足了数据处理的原子性要求。
在一个实施例中,上述调用所得到的子处理结果为处理成功的资源管理器,根据所调用的资源管理器的目标数据,进行回滚处理,具体实施时,可以包括以下内容:调用所得到的子处理结果为处理成功的资源管理器查询所对应的数据库的预设的回滚日志,获取所述目标数据;根据所述目标数据,修改所对应的数据库的当前业务表中的数据。
在一个实施例中,在进行回滚处理后,所述方法具体实施时,还可以包括以下内容:将所述数据处理请求所对应的数据处理的处理状态确定为处理失败。
在本实施例中,在根据多个子处理结果确定满足上述第一预设要求的情况下,可以判断该数据处理整体处理失败,在按照上述方式对子处理成功的数据库进行回滚处理的同时,可以将上述数据处理请求所对应的数据处理的处理状态确定为处理失败,并还可以生成相应的提示信息,反馈给客户端,以提示用户所请求的数据处理处理失败;或者,在确定上述数据处理请求所对应的数据处理的处理状态为处理失败后,按照本说明书提供的数据处理方法,重新调用多个资源处理器进行上述包含针对多个数据库的子处理的数据处理等。
在本实施例中,在按照上述方式对子处理成功的数据库进行回滚处理后,服务器还可以根据多个子处理结果,对子处理失败的数据库所对应的资源管理器进行检查和调试;在完成检查和调试后,再调用多个资源管理器重新执行用户所请求的包含针对多个数据库的数据处理。
在一个实施例中,在根据所述数据处理请求,调用多个资源管理器分别对所对应的数据库进行子处理,并得到子处理结果后,所述方法具体实施时,还可以包括以下内容:根据所述子处理结果,在确定子处理结果满足第二预设要求的情况下,生成并反馈处理失败的提示信息,其中,所述第二预设要求包括:基于多个资源管理器所得到的多个子处理结果分别为处理失败。
在本实施例中,在根据多个子处理结果确定满足上述第二预设要求的情况下,可以判断该数据处理整体处理失败,但该数据处理所包含的多个子处理所针对的多个数据库的处理状态是一致,即都没有发生变更,这时可以不需要进行回滚处理,服务器可以生成并向客户端反馈处理失败的提示信息,以提示用户所请求的数据处理处理失败;或者,按照本说明提供的数据处理方法,重新调用多个资源处理器进行上述包含针对多个数据库的子处理的数据处理等。
在一个实施例中,在根据所述数据处理请求,调用多个资源管理器分别对所对应的数据库进行子处理,并得到子处理结果后,所述方法具体实施时,还可以包括以下内容:根据所述子处理结果,在确定子处理结果满足第三预设要求的情况下,将所述数据处理请求所对应的数据处理的处理状态确定为处理成功,其中,所述第三预设要求包括:基于多个资源管理器所得到的多个子处理结果分别为处理成功。
在本实施例中,在根据多个子处理结果确定满足上述第三预设要求的情况下,可以判断该数据处理整体处理成功,但该数据处理所包含的多个子处理所针对的多个数据库的处理状态也是一致的,即都发生了变更,这时可以不需要进行回滚处理,服务器可以生成并向客户端反馈处理成功的提示信息,以提示用户所请求的数据处理处理成功。
由上可见,本说明书实施例提供的数据处理方法,由于通过预先为数据库设置对应的预设的回滚日志,在根据数据处理请求,调用多个资源管理器针对所负责的数据库进行子处理之前,先利用上述预设的回滚日志分别记录下后续子处理将会涉及到的数据库的数据作为目标数据;在进行子处理之后,根据反馈的子处理结果,在确定满足第一预设要求的情况下,调用子处理结果为处理成功的资源管理器根据预设的回滚日志中记录的目标数据,进行回滚处理,从而简化了用户操作,提高了处理效率,达到能够在确定数据处理存在子处理处理失败的情况下,自动、高效地对子处理成功的数据库进行数据恢复、还原,以保证在上述情况下,多个子处理所针对的数据库的处理状态的最终一致,满足数据处理的原子性要求;还通过调用多个资源管理器分别查询的数据库的业务表,以获取后续子处理所涉及到的数据库的相关数据作为目标数据,并在该数据库的预设的回滚日志中记录保存下上述目标数据,以便后续在确定子处理结果满足第一预设要求的情况下,可以利用回对应的预设的滚日志中记录保存的目标数据自动对该数据库进行回滚,保证了对数据库的回滚处理的准确和高效。
参阅图6所示,本说明书实施例还提供了一种应用于电子转账或电子支付场景中的交易数据的处理方法,该方法具体应用于交易平台的服务器,该方法具体实施时,可以包括以下内容:
S61:接收并响应交易数据处理请求,调用第一资源管理器、第二资源管理器分别在预设的第一回滚日志、预设的第二回滚日志中,记录下付款账户的资金数据、收款账户的资金数据,其中,所述交易数据处理请求所请求的数据处理包括针对付款账户的资金数据的删减处理、针对收款账户的资金数据的增加处理,所述第一资源管理器用于执行针对付款账户的资金数据的删减处理,所述第二资源管理器用于执行针对收款账户的资金数据的增加处理;
S63:根据所述交易数据处理请求,调用第一资源管理器对付款账户的资金数据进行删减处理,调用第二资源管理器对收款账户的资金数据进行增加处理,并获取第一资源管理器、第二资源管理器反馈的第一子处理结果和第二子处理结果;
S65:根据所述第一子处理结果和第二子处理结果,在确定所述第一子处理结果和第二子处理结果满足第一预设要求的情况下,调用所反馈的子处理结果为处理成功的资源管理器,根据所调用的资源管理器记录的资金数据,进行回滚处理。
在本实施例中,上述交易数据处理请求具体可以是一种资金数据的转账请求,用于请求进行将资金数据由付款账户转移到收款账户的数据处理。
在本实施例中,上述方法具体可以应用于支付平台的后台业务系统的服务器。其中,上述收款账户的资金数据和付款账户的资金数据可以分别保存于上述支付平台的后台业务系统中不同位置。具体实施时,支付平台的后台业务系统可以为付款账户配置有对应的第一资源管理器,以用于执行针对付款账户的资金数据的具体操作处理;为收款账户配置有对应的第二资源管理器,以用于执行针对收款账户的资金数据的具体操作处理。服务器可以通过调用上述第一资源管理器和第二资源管理器完成付款账户和收款账户之间的资金数据的转账处理。
在本实施例中,具体实施时,付款方用户可以通过客户端向服务器发出交易数据处理请求,以请求将付款方用户的付款账户的资金数据转账到收款方用户的收款账户中。服务器在接收到上述交易数据处理请求后,在调用第一资源管理器和第二资源管理器进行具体的资金数据的转账处理前,可以先响应上述交易数据处理请求,先调用第一资源管理器通过查询付款账户的业务表获取处理之前的付款账户的资金数据,并将上述付款账户的资金数据记录并保存在对应付款账户的第一回滚日志中;同时,调用第二资源管理器通过查询收款账户的业务表获取处理之前的收款账户的资金数据,并将上述收款账户的资金数据记录并保存在收款账户的第二回滚日志中。
在完成上述记录保存后,服务器可以调用第一资源管理器对付款账户的资金数据进行删减处理,调用第二资源管理器对收款账户的资金数据进行增加处理。第一资源管理器和第二资源管理器在执行完所负责的针对付款账户的删减处理和针对收款账户的增加处理后,分别向服务器反馈对应的第一子处理结果和第二子处理结果,以指示所负责的处理是否处理成功。
服务器在接收到第一资源管理器反馈的第一子处理结果,以及第二资源管理器反馈的第二子处理结果后,根据第一子处理结果和第二子处理结果,在确定第一子处理结果为处理成功,且第二子处理结果为处理失败,或者,第一子处理结果为处理失败,且第二子处理结果为处理成功时,可以确定满足第一预设要求,进而可以判断该交易数据处理整体处理失败,但付款账户和收款账户中有一个账户的资金数据已经发生了变更,而另一个账户的资金数据没有发生变更。
为了使得两个账户的资金数据的处理状态保持一致,满足该交易数据处理的原子性,因此,服务器可以根据第一子处理结果和第二子处理结果,调用所反馈的子处理结果为处理成功的资源管理器,但根据该账户的回滚日志中记录的资金数据对该账户的资金数据进行回滚处理,使得该账户的资金数据恢复、还原到处理之前的状态,从而保证两个账户的资金数据的处理状态一致,满足了原子性要求。
由上可见,本说明书实施例提供的交易数据的处理方法,由于通过预先分别为付款账户和收款账户设置对应的回滚日志,在根据数据处理请求,调用第一资源管理器和第二资源管理器针对所负责的账户的资金数据进行具体的子处理之前,先利用上述回滚日志分别记录下子处理之前收款账户的资金数据和付款账户的资金数据;在进行子处理之后,根据反馈的第一子处理结果、第二子处理结果,在确定满足第一预设要求的情况下,调用子处理结果为处理成功的资源管理器根据回滚日志中记录的资金数据,进行回滚处理,将所对应的账户的资金数据恢复、还原到没有处理的状态,从而简化了用户操作,提高了处理效率,达到能够在确定交易数据处理存在子处理处理失败的情况下,自动、高效地对子处理成功的账户的资金数据进行数据恢复、还原,以保证在上述情况下,付款账户和收款账户的资金数据的处理状态的最终一致,满足交易数据处理的原子性要求。
本说明书还提供了一种数据处理方法,包括:接收并响应数据处理请求,调用多个资源管理器分别在预设的回滚日志中记录下目标数据,其中,所述数据处理请求所请求的数据处理包括多个子处理,所述资源管理器用于执行所负责的子处理;根据所述数据处理请求,调用多个资源管理器分别进行所负责的子处理,并得到子处理结果;根据所述子处理结果,在确定子处理结果满足第一预设要求的情况下,调用所得到的子处理结果为处理成功的资源管理器,根据所调用的资源管理器的目标数据,进行回滚处理。
在本实施例中,通过上述方法可以简化用户操作,提高处理效率,达到能够在确定数据处理存在子处理处理失败的情况下,自动、高效地对处理成功的子处理基于回滚日志中记录的目标数据进行回滚处理,保证同一个数据处理中的多个子处理的处理状态一致,满足数据处理的原子性要求。
本说明书实施例还提供了一种服务器,包括处理器以及用于存储处理器可执行指令的存储器,所述处理器具体实施时可以根据指令执行以下步骤:接收并响应数据处理请求,调用多个资源管理器分别在预设的回滚日志中记录下目标数据,其中,所述数据处理请求包括针对多个数据库的子处理,所述数据库分别对应用于进行子处理的资源管理器;根据所述数据处理请求,调用多个资源管理器分别对所对应的数据库进行子处理,并得到子处理结果;根据所述子处理结果,在确定子处理结果满足第一预设要求的情况下,调用所得到的子处理结果为处理成功的资源管理器,根据所调用的资源管理器的目标数据,进行回滚处理。
为了能够更加准确地完成上述指令,参阅图7所示,本说明书实施例还提供了另一种具体的服务器,其中,所述服务器包括网络通信端口701、处理器702以及存储器703,上述结构通过内部线缆相连,以便各个结构可以进行具体的数据交互。
其中,所述网络通信端口701,具体可以用于接收数据处理请求。
所述处理器702,具体可以用于响应数据处理请求,调用多个资源管理器分别在预设的回滚日志中记录下目标数据,其中,所述数据处理请求包括针对多个数据库的子处理,所述数据库分别对应用于进行子处理的资源管理器;根据所述数据处理请求,调用多个资源管理器分别对所对应的数据库进行子处理,并得到子处理结果;根据所述子处理结果,在确定子处理结果满足第一预设要求的情况下,调用所得到的子处理结果为处理成功的资源管理器,根据所调用的资源管理器的目标数据,进行回滚处理。
所述存储器703,具体可以用于存储处理器702所基于的相应的指令程序。
在本实施例中,所述网络通信端口701可以是与不同的通信协议进行绑定,从而可以发送或接收不同数据的虚拟端口。例如,所述网络通信端口可以是负责进行web数据通信的80号端口,也可以是负责进行FTP数据通信的21号端口,还可以是负责进行邮件数据通信的25号端口。此外,所述网络通信端口还可以是实体的通信接口或者通信芯片。例如,其可以为无线移动网络通信芯片,如GSM、CDMA等;其还可以为Wifi芯片;其还可以为蓝牙芯片。
在本实施例中,所述处理器702可以按任何适当的方式实现。例如,处理器可以采取例如微处理器或处理器以及存储可由该(微)处理器执行的计算机可读程序代码(例如软件或固件)的计算机可读介质、逻辑门、开关、专用集成电路(Application SpecificIntegrated Circuit,ASIC)、可编程逻辑控制器和嵌入微控制器的形式等等。本说明书并不作限定。
在本实施例中,所述存储器703可以包括多个层次,在数字系统中,只要能保存二进制数据的都可以是存储器;在集成电路中,一个没有实物形式的具有存储功能的电路也叫存储器,如RAM、FIFO等;在系统中,具有实物形式的存储设备也叫存储器,如内存条、TF卡等。
本说明书实施例还提供了一种基于上述数据处理方法的计算机存储介质,所述计算机存储介质存储有计算机程序指令,在所述计算机程序指令被执行时实现:接收并响应数据处理请求,调用多个资源管理器分别在预设的回滚日志中记录下目标数据,其中,所述数据处理请求包括针对多个数据库的子处理,所述数据库分别对应用于进行子处理的资源管理器;根据所述数据处理请求,调用多个资源管理器分别对所对应的数据库进行子处理,并得到子处理结果;根据所述子处理结果,在确定子处理结果满足第一预设要求的情况下,调用所得到的子处理结果为处理成功的资源管理器,根据所调用的资源管理器的目标数据,进行回滚处理。
在本实施例中,上述存储介质包括但不限于随机存取存储器(Random AccessMemory,RAM)、只读存储器(Read-Only Memory,ROM)、缓存(Cache)、硬盘(Hard DiskDrive,HDD)或者存储卡(Memory Card)。所述存储器可以用于存储计算机程序指令。网络通信单元可以是依照通信协议规定的标准设置的,用于进行网络连接通信的接口。
在本实施例中,该计算机存储介质存储的程序指令具体实现的功能和效果,可以与其它实施方式对照解释,在此不再赘述。
参阅图8所示,在软件层面上,本说明书实施例还提供了一种数据处理装置,该装置具体可以包括以下的结构模块:
第一处理模块801,具体可以用于接收并响应数据处理请求,调用多个资源管理器分别在预设的回滚日志中记录下目标数据,其中,所述数据处理请求包括针对多个数据库的子处理,所述数据库分别对应用于进行子处理的资源管理器;
第二处理模块802,具体可以用于根据所述数据处理请求,调用多个资源管理器分别对所对应的数据库进行子处理,并得到子处理结果;
第三处理模块803,具体可以用于根据所述子处理结果,在确定子处理结果满足第一预设要求的情况下,调用所得到的子处理结果为处理成功的资源管理器,根据所调用的资源管理器的目标数据,进行回滚处理。
在一个实施例中,所述预设的回滚日志具体可以包括:undolog数据列表等等。当然,需要说明的是,上述所列举的预设的回滚日志只是一种示意性说明。
在一个实施例中,所述第一处理模块801具体可以用于调用多个资源管理器分别在进行子处理之前,查询所对应的数据库的业务表,获取与子处理相关的数据库的数据作为目标数据;并在预设的回滚日志中记录所述目标数据。
在一个实施例中,所述第一预设要求具体可以包括:基于多个资源管理器所得到的多个子处理结果中至少存在一个子处理结果为处理成功,且至少存在一个子处理结果为处理失败。
在一个实施例中,所述第三处理模块803具体可以包括以下结构单元:
调用单元,具体可以调用所得到的子处理结果为处理成功的资源管理器查询所对应的数据库的预设的回滚日志,获取所述目标数据;
修改单元,具体可以用于根据所述目标数据,修改所对应的数据库的当前业务表中的数据。
在一个实施例中,所述装置具体还可以包括确定模块,具体可以用于将所述数据处理请求所对应的数据处理的处理状态确定为处理失败。
在一个实施例中,所述第三处理模块803具体还可以用于:根据所述子处理结果,在确定子处理结果满足第二预设要求的情况下,调用所述多个资源管理器分别进行回滚处理根据所述子处理结果,在确定子处理结果满足第二预设要求的情况下,生成并反馈处理失败的提示信息,其中,所述第二预设要求包括:基于多个资源管理器所得到的多个子处理结果分别为处理失败。
在一个实施例中,所述第三处理模块803具体还可以用于:根据所述子处理结果,在确定子处理结果满足第三预设要求的情况下,将所述数据处理请求所对应的数据处理的处理状态确定为处理成功,其中,所述第三预设要求包括:基于多个资源管理器所得到的多个子处理结果分别为处理成功。
需要说明的是,上述实施例阐明的单元、装置或模块等,具体可以由计算机芯片或实体实现,或者由具有某种功能的产品来实现。为了描述的方便,描述以上装置时以功能分为各种模块分别描述。当然,在实施本说明书时可以把各模块的功能在同一个或多个软件和/或硬件中实现,也可以将实现同一功能的模块由多个子模块或子单元的组合实现等。以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
由上可见,本说明书实施例提供的数据处理装置,由于通过该装置预先为数据库设置对应的预设的回滚日志,在根据数据处理请求,调用多个资源管理器针对所负责的数据库进行子处理之前,先通过第一处理模块利用上述预设的回滚日志分别记录下后续子处理将会涉及到的数据库的数据作为目标数据;在通过第二处理模块进行子处理之后,通过第三处理模块根据反馈的子处理结果,在确定满足第一预设要求的情况下,调用子处理结果为处理成功的资源管理器根据预设的回滚日志中记录的目标数据,进行回滚处理,从而简化了用户操作,提高了处理效率,达到能够在确定数据处理存在子处理处理失败的情况下,自动、高效地对子处理成功的数据库进行数据恢复、还原,以保证在上述情况下,多个子处理所针对的数据库的处理状态的最终一致,满足数据处理的原子性要求。
针对交易数据的处理场景,本说明书还提供了一种交易数据的处理装置,包括:
第一处理模块,具体可以用于接收并响应交易数据处理请求,调用第一资源管理器、第二资源管理器分别在预设的第一回滚日志、预设的第二回滚日志中,记录下付款账户的资金数据、收款账户的资金数据,其中,所述交易数据处理请求所请求的数据处理包括针对付款账户的资金数据的删减处理和针对收款账户的资金数据的增加处理,所述第一资源管理器用于执行对付款账户的资金数据的删减处理,所述第二资源管理器用于执行对收款账户的资金数据的增加处理;
第二处理模块,具体可以用于根据所述交易数据处理请求,调用第一资源管理器对付款账户的资金数据进行删减处理,调用第二资源管理器对收款账户的资金数据进行增加处理,并获取第一资源管理器、第二资源管理器反馈的第一子处理结果和第二子处理结果;
第三处理模块,具体可以用于根据所述第一子处理结果和第二子处理结果,在确定所述第一子处理结果和第二子处理结果满足第一预设要求的情况下,调用所反馈的子处理结果为处理成功的资源管理器,根据所调用的资源管理器记录的资金数据,进行回滚处理。
针对更加广泛的数据处理场景,本说明书还提供了另一种数据处理装置,包括:
第一处理模块,具体可以用于接收并响应数据处理请求,调用多个资源管理器分别在预设的回滚日志中记录下目标数据,其中,所述数据处理请求所请求的数据处理包括多个子处理,所述资源管理器用于执行所负责的子处理;
第二处理模块,具体可以用于根据所述数据处理请求,调用多个资源管理器分别进行所负责的子处理,并得到子处理结果;
第三处理模块,具体可以用于根据所述子处理结果,在确定子处理结果满足第一预设要求的情况下,调用所得到的子处理结果为处理成功的资源管理器,根据所调用的资源管理器的目标数据,进行回滚处理。
虽然本说明书提供了如实施例或流程图所述的方法操作步骤,但基于常规或者无创造性的手段可以包括更多或者更少的操作步骤。实施例中列举的步骤顺序仅仅为众多步骤执行顺序中的一种方式,不代表唯一的执行顺序。在实际中的装置或客户端产品执行时,可以按照实施例或者附图所示的方法顺序执行或者并行执行(例如并行处理器或者多线程处理的环境,甚至为分布式数据处理环境)。术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、产品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、产品或者设备所固有的要素。在没有更多限制的情况下,并不排除在包括所述要素的过程、方法、产品或者设备中还存在另外的相同或等同要素。第一,第二等词语用来表示名称,而并不表示任何特定的顺序。
本领域技术人员也知道,除了以纯计算机可读程序代码方式实现控制器以外,完全可以通过将方法步骤进行逻辑编程来使得控制器以逻辑门、开关、专用集成电路、可编程逻辑控制器和嵌入微控制器等的形式来实现相同功能。因此这种控制器可以被认为是一种硬件部件,而对其内部包括的用于实现各种功能的装置也可以视为硬件部件内的结构。或者甚至,可以将用于实现各种功能的装置视为既可以是实现方法的软件模块又可以是硬件部件内的结构。
本说明书可以在由计算机执行的计算机可执行指令的一般上下文中描述,例如程序模块。一般地,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、组件、数据结构、类等等。也可以在分布式计算环境中实践本说明书,在这些分布式计算环境中,由通过通信网络而被连接的远程处理设备来执行任务。在分布式计算环境中,程序模块可以位于包括存储设备在内的本地和远程计算机存储介质中。
通过以上的实施例的描述可知,本领域的技术人员可以清楚地了解到本说明书可借助软件加必需的通用硬件平台的方式来实现。基于这样的理解,本说明书的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,移动终端,服务器,或者网络设备等)执行本说明书各个实施例或者实施例的某些部分所述的方法。
本说明书中的各个实施例采用递进的方式描述,各个实施例之间相同或相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。本说明书可用于众多通用或专用的计算机系统环境或配置中。例如:个人计算机、服务器计算机、手持设备或便携式设备、平板型设备、多处理器系统、基于微处理器的系统、置顶盒、可编程的电子设备、网络PC、小型计算机、大型计算机、包括以上任何系统或设备的分布式计算环境等等。
虽然通过实施例描绘了本说明书,本领域普通技术人员知道,本说明书有许多变形和变化而不脱离本说明书的精神,希望所附的权利要求包括这些变形和变化而不脱离本说明书的精神。

Claims (18)

1.一种数据处理方法,包括:
接收并响应数据处理请求,调用多个资源管理器分别在预设的回滚日志中记录下目标数据,其中,所述数据处理请求包括针对多个数据库的子处理,所述数据库分别对应用于进行子处理的资源管理器;
根据所述数据处理请求,调用多个资源管理器分别对所对应的数据库进行子处理,并得到子处理结果;
根据所述子处理结果,在确定子处理结果满足第一预设要求的情况下,调用所得到的子处理结果为处理成功的资源管理器,根据所调用的资源管理器的目标数据,进行回滚处理;其中,所述第一预设要求包括:基于多个资源管理器所得到的多个子处理结果中至少存在一个子处理结果为处理成功,且至少存在一个子处理结果为处理失败。
2.根据权利要求1所述的方法,所述预设的回滚日志包括:undolog数据列表。
3.根据权利要求2所述的方法,所述调用多个资源管理器分别在预设的回滚日志中记录下目标数据,包括:
调用多个资源管理器分别在进行子处理之前,查询所对应的数据库的业务表,获取与子处理相关的数据库的数据作为目标数据;
在预设的回滚日志中记录所述目标数据。
4.根据权利要求1所述的方法,所述调用所得到的子处理结果为处理成功的资源管理器,根据所调用的资源管理器的目标数据,进行回滚处理,包括:
调用所得到的子处理结果为处理成功的资源管理器查询所对应的数据库的预设的回滚日志,获取所述目标数据;
根据所述目标数据,修改所对应的数据库的当前业务表中的数据。
5.根据权利要求1所述的方法,在进行回滚处理后,所述方法还包括:
将所述数据处理请求所对应的数据处理的处理状态确定为处理失败。
6.根据权利要求1所述的方法,在根据所述数据处理请求,调用多个资源管理器分别对所对应的数据库进行子处理,并得到子处理结果后,所述方法还包括:
根据所述子处理结果,在确定子处理结果满足第二预设要求的情况下,生成并反馈处理失败的提示信息,其中,所述第二预设要求包括:基于多个资源管理器所得到的多个子处理结果分别为处理失败。
7.根据权利要求1所述的方法,在根据所述数据处理请求,调用多个资源管理器分别对所对应的数据库进行子处理,并得到子处理结果后,所述方法还包括:
根据所述子处理结果,在确定子处理结果满足第三预设要求的情况下,将所述数据处理请求所对应的数据处理的处理状态确定为处理成功,其中,所述第三预设要求包括:基于多个资源管理器所得到的多个子处理结果分别为处理成功。
8.一种交易数据的处理方法,包括:
接收并响应交易数据处理请求,调用第一资源管理器、第二资源管理器分别在预设的第一回滚日志、预设的第二回滚日志中,记录下付款账户的资金数据、收款账户的资金数据,其中,所述交易数据处理请求所请求的数据处理包括针对付款账户的资金数据的删减处理、针对收款账户的资金数据的增加处理,所述第一资源管理器用于执行针对付款账户的资金数据的删减处理,所述第二资源管理器用于执行针对收款账户的资金数据的增加处理;
根据所述交易数据处理请求,调用第一资源管理器对付款账户的资金数据进行删减处理,调用第二资源管理器对收款账户的资金数据进行增加处理,并获取第一资源管理器、第二资源管理器反馈的第一子处理结果和第二子处理结果;
根据所述第一子处理结果和第二子处理结果,在确定所述第一子处理结果和第二子处理结果满足第一预设要求的情况下,调用所反馈的子处理结果为处理成功的资源管理器,根据所调用的资源管理器记录的资金数据,进行回滚处理;其中,所述第一预设要求包括:基于多个资源管理器所得到的多个子处理结果中至少存在一个子处理结果为处理成功,且至少存在一个子处理结果为处理失败。
9.一种数据处理方法,包括:
接收并响应数据处理请求,调用多个资源管理器分别在预设的回滚日志中记录下目标数据,其中,所述数据处理请求所请求的数据处理包括多个子处理,所述资源管理器用于执行所负责的子处理;
根据所述数据处理请求,调用多个资源管理器分别进行所负责的子处理,并得到子处理结果;
根据所述子处理结果,在确定子处理结果满足第一预设要求的情况下,调用所得到的子处理结果为处理成功的资源管理器,根据所调用的资源管理器的目标数据,进行回滚处理;其中,所述第一预设要求包括:基于多个资源管理器所得到的多个子处理结果中至少存在一个子处理结果为处理成功,且至少存在一个子处理结果为处理失败。
10.一种数据处理装置,包括:
第一处理模块,用于接收并响应数据处理请求,调用多个资源管理器分别在预设的回滚日志中记录下目标数据,其中,所述数据处理请求包括针对多个数据库的子处理,所述数据库分别对应用于进行子处理的资源管理器;
第二处理模块,用于根据所述数据处理请求,调用多个资源管理器分别对所对应的数据库进行子处理,并得到子处理结果;
第三处理模块,用于根据所述子处理结果,在确定子处理结果满足第一预设要求的情况下,调用所得到的子处理结果为处理成功的资源管理器,根据所调用的资源管理器的目标数据,进行回滚处理;其中,所述第一预设要求包括:基于多个资源管理器所得到的多个子处理结果中至少存在一个子处理结果为处理成功,且至少存在一个子处理结果为处理失败。
11.根据权利要求10所述的装置,所述预设的回滚日志包括:undolog数据列表。
12.根据权利要求11所述的装置,所述第一处理模块具体用于调用多个资源管理器分别在进行子处理之前,查询所对应的数据库的业务表,获取与子处理相关的数据库的数据作为目标数据;并在预设的回滚日志中记录所述目标数据。
13.根据权利要求10所述的装置,所述第三处理模块包括:
调用单元,调用所得到的子处理结果为处理成功的资源管理器查询所对应的数据库的预设的回滚日志,获取所述目标数据;
修改单元,用于根据所述目标数据,修改所对应的数据库的当前业务表中的数据。
14.根据权利要求11所述的装置,所述装置还包括确定模块,用于将所述数据处理请求所对应的数据处理的处理状态确定为处理失败。
15.一种交易数据的处理装置,包括:
第一处理模块,用于接收并响应交易数据处理请求,调用第一资源管理器、第二资源管理器分别在预设的第一回滚日志、预设的第二回滚日志中,记录下付款账户的资金数据、收款账户的资金数据,其中,所述交易数据处理请求所请求的数据处理包括针对付款账户的资金数据的删减处理和针对收款账户的资金数据的增加处理,所述第一资源管理器用于执行对付款账户的资金数据的删减处理,所述第二资源管理器用于执行对收款账户的资金数据的增加处理;
第二处理模块,用于根据所述交易数据处理请求,调用第一资源管理器对付款账户的资金数据进行删减处理,调用第二资源管理器对收款账户的资金数据进行增加处理,并获取第一资源管理器、第二资源管理器反馈的第一子处理结果和第二子处理结果;
第三处理模块,用于根据所述第一子处理结果和第二子处理结果,在确定所述第一子处理结果和第二子处理结果满足第一预设要求的情况下,调用所反馈的子处理结果为处理成功的资源管理器,根据所调用的资源管理器记录的资金数据,进行回滚处理;其中,所述第一预设要求包括:基于多个资源管理器所得到的多个子处理结果中至少存在一个子处理结果为处理成功,且至少存在一个子处理结果为处理失败。
16.一种数据处理装置,包括:
第一处理模块,用于接收并响应数据处理请求,调用多个资源管理器分别在预设的回滚日志中记录下目标数据,其中,所述数据处理请求所请求的数据处理包括多个子处理,所述资源管理器用于执行所负责的子处理;
第二处理模块,用于根据所述数据处理请求,调用多个资源管理器分别进行所负责的子处理,并得到子处理结果;
第三处理模块,用于根据所述子处理结果,在确定子处理结果满足第一预设要求的情况下,调用所得到的子处理结果为处理成功的资源管理器,根据所调用的资源管理器的目标数据,进行回滚处理;其中,所述第一预设要求包括:基于多个资源管理器所得到的多个子处理结果中至少存在一个子处理结果为处理成功,且至少存在一个子处理结果为处理失败。
17.一种服务器,包括处理器以及用于存储处理器可执行指令的存储器,所述处理器执行所述指令时实现权利要求1至7中任一项所述方法的步骤。
18.一种计算机可读存储介质,其上存储有计算机指令,所述指令被执行时实现权利要求1至7中任一项所述方法的步骤。
CN201910509194.0A 2019-06-13 2019-06-13 数据处理方法和装置、交易数据处理方法和装置 Active CN110347659B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201910509194.0A CN110347659B (zh) 2019-06-13 2019-06-13 数据处理方法和装置、交易数据处理方法和装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910509194.0A CN110347659B (zh) 2019-06-13 2019-06-13 数据处理方法和装置、交易数据处理方法和装置

Publications (2)

Publication Number Publication Date
CN110347659A CN110347659A (zh) 2019-10-18
CN110347659B true CN110347659B (zh) 2023-03-28

Family

ID=68181878

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910509194.0A Active CN110347659B (zh) 2019-06-13 2019-06-13 数据处理方法和装置、交易数据处理方法和装置

Country Status (1)

Country Link
CN (1) CN110347659B (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112769585B (zh) * 2019-10-21 2022-12-30 华为技术有限公司 网络设备的管理方法、装置及系统
CN111782672B (zh) * 2020-06-30 2022-09-27 平安银行股份有限公司 多领域数据管理方法及相关装置

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109241014A (zh) * 2018-07-04 2019-01-18 阿里巴巴集团控股有限公司 数据处理方法、装置和服务器

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10747719B2 (en) * 2017-09-22 2020-08-18 Microsoft Technology Licensing, Llc File system point-in-time restore using recycle bin and version history

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109241014A (zh) * 2018-07-04 2019-01-18 阿里巴巴集团控股有限公司 数据处理方法、装置和服务器

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
基于多线程的并行实例恢复方法;卢栋栋等;《计算机应用》;20160410(第04期);全文 *

Also Published As

Publication number Publication date
CN110347659A (zh) 2019-10-18

Similar Documents

Publication Publication Date Title
US11032140B2 (en) Using a template to update a stack of resources
CN112118565A (zh) 多租户服务灰度发布方法、装置、计算机设备和存储介质
CN112463144B (zh) 分布式存储的命令行服务方法、系统、终端及存储介质
US9910881B1 (en) Maintaining versions of control plane data for a network-based service control plane
US20210286799A1 (en) Automated transaction engine
CN112860282B (zh) 集群插件的升级方法、装置和服务器
CN111639309B (zh) 一种数据处理方法、装置、节点设备及存储介质
CN104219235A (zh) 一种分布式交易请求方法及装置
US20130160022A1 (en) Transaction manager for negotiating large transactions
CN111064626B (zh) 配置更新方法、装置、服务器及可读存储介质
CN110347659B (zh) 数据处理方法和装置、交易数据处理方法和装置
CN107533604B (zh) 用于无经纪人应用的单次登录的方法和设备
CN114328029B (zh) 一种应用资源的备份方法、装置、电子设备及存储介质
US20150220517A1 (en) Efficient conflict resolution among stateless processes
US8756320B2 (en) Web service grid architecture
CN111752961A (zh) 一种数据处理方法及装置
CN115098297B (zh) 一种云原生存储数据卷的一致性快照生成方法和系统
CN111008064A (zh) 虚机资源调度方法和装置、集群部署方法和装置
CN110688252A (zh) 一种数据的恢复方法、备份方法、装置及存储介质
CN114553859A (zh) 一种bmc配置管理方法、装置、电子设备及存储介质
CN115964061A (zh) 插件更新方法、装置、电子设备和计算机可读存储介质
CN109101253B (zh) 云计算系统中主机的管理方法和装置
CN111049938A (zh) 消息通知方法、装置、电子设备及可读存储介质
CN114896258B (zh) 事务数据的同步方法、装置、计算机设备及存储介质
US11953995B1 (en) Centralized data backup platform supporting multiple data environments

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
TA01 Transfer of patent application right

Effective date of registration: 20200924

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

Applicant after: Innovative advanced technology Co.,Ltd.

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

Applicant before: Advanced innovation technology Co.,Ltd.

Effective date of registration: 20200924

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

Applicant after: Advanced innovation technology Co.,Ltd.

Address before: Greater Cayman, British Cayman Islands

Applicant before: Alibaba Group Holding Ltd.

TA01 Transfer of patent application right
GR01 Patent grant
GR01 Patent grant