CN104572077B - 数据库事务的处理方法及业务系统 - Google Patents

数据库事务的处理方法及业务系统 Download PDF

Info

Publication number
CN104572077B
CN104572077B CN201410773733.9A CN201410773733A CN104572077B CN 104572077 B CN104572077 B CN 104572077B CN 201410773733 A CN201410773733 A CN 201410773733A CN 104572077 B CN104572077 B CN 104572077B
Authority
CN
China
Prior art keywords
service
transaction
database
transaction identifier
result
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
CN201410773733.9A
Other languages
English (en)
Other versions
CN104572077A (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.)
Chongqing Duxiaoman Youyang Technology Co ltd
Original Assignee
Beijing Baidu Netcom Science and Technology 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 Beijing Baidu Netcom Science and Technology Co Ltd filed Critical Beijing Baidu Netcom Science and Technology Co Ltd
Priority to CN201410773733.9A priority Critical patent/CN104572077B/zh
Publication of CN104572077A publication Critical patent/CN104572077A/zh
Application granted granted Critical
Publication of CN104572077B publication Critical patent/CN104572077B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明提供一种数据库事务的处理方法及业务系统。本发明实施例通过业务系统获得事务标识,所述事务标识为用于标识待处理的业务所涉及的多数据库操作,进而利用所述事务标识和所述业务的执行结果数据,对所述业务所涉及的至少两个数据库进行操作,使得所述业务系统能够根据所述事务标识和所述至少两个数据库中每个数据库的操作结果,输出事务结果,由于在业务的执行过程中可以操作多个数据库,而不是一个数据库,能够避免现有技术中由于一个数据库的容量有限而导致的系统能够完成的事务有限的问题,从而提高了系统的效率和可靠性。

Description

数据库事务的处理方法及业务系统
【技术领域】
本发明涉及数据库技术领域,尤其涉及一种数据库事务的处理方法及业务系统。
【背景技术】
数据库事务(Database Transaction),是指作为单个逻辑工作单元例如,支付系统等,执行的一系列操作,要么完整地执行,要么完全地不执行。事务处理可以确保除非事务性单元内的所有操作都成功完成,否则不会永久更新面向数据的资源。通常,可以将这些面向数据的资源存储在一个数据库中。
然而,由于一个数据库的容量有限,使得系统能够完成的事务有限,从而导致了系统的效率和可靠性的降低。
【发明内容】
本发明的多个方面提供一种数据库事务的处理方法及业务系统,用以提高系统的效率和可靠性。
本发明的一方面,提供一种数据库事务的处理方法,包括:
业务系统获得事务标识,所述事务标识为用于标识待处理的业务所涉及的多数据库操作;
所述业务系统利用所述事务标识和所述业务的执行结果数据,对所述业务所涉及的至少两个数据库进行操作;
所述业务系统根据所述事务标识和所述至少两个数据库中每个数据库的操作结果,输出事务结果。
如上所述的方面和任一可能的实现方式,进一步提供一种实现方式,所述业务系统获得事务标识,所述事务标识为用于标识待处理的业务所涉及的多数据库操作,包括:
所述业务系统向分布式数据库代理设备发送事务开启指令,所述事务开启指令用于开启一个事务;
所述业务系统接收所述分布式数据库代理设备根据所述事务开启指令分配的所述事务标识。
如上所述的方面和任一可能的实现方式,进一步提供一种实现方式,所述业务系统至少包括第一业务子系统和第二业务子系统;所述至少两个数据库至少包括第一数据库和第二数据库;所述业务系统利用所述事务标识和所述业务的执行结果数据,对所述业务所涉及的至少两个数据库进行操作,包括:
所述第一业务子系统利用所述事务标识和所述第一业务子系统相关业务的执行结果数据,对所述第一数据库进行操作;
所述第一业务子系统向所述第二业务子系统发送业务指令,所述业务指令中包含所述事务标识;
所述第二业务子系统根据所述业务指令,利用所述事务标识和所述第二业务子系统相关业务的执行结果数据,对所述第二数据库进行操作。
如上所述的方面和任一可能的实现方式,进一步提供一种实现方式,所述业务系统根据所述事务标识和所述至少两个数据库中每个数据库的操作结果,输出事务结果,包括:
所述业务系统根据所述事务标识和所述至少两个数据库中每个数据库的操作结果,输出事务成功结果;或者
所述业务系统根据所述事务标识和所述至少两个数据库中每个数据库的操作结果,输出事务失败结果。
如上所述的方面和任一可能的实现方式,进一步提供一种实现方式,所述业务系统根据所述事务标识和所述至少两个数据库中每个数据库的操作结果,输出事务结果之后,还包括:
所述业务系统根据所述事务结果,提交所述事务标识所对应的事务;或者
所述业务系统根据所述事务结果,回滚所述事务标识所对应的事务。
本发明的另一方面,提供一种业务系统,包括:
获得单元,用于获得事务标识,所述事务标识为用于标识待处理的业务所涉及的多数据库操作;
操作单元,用于利用所述事务标识和所述业务的执行结果数据,对所述业务所涉及的至少两个数据库进行操作;
输出单元,用于根据所述事务标识和所述至少两个数据库中每个数据库的操作结果,输出事务结果。
如上所述的方面和任一可能的实现方式,进一步提供一种实现方式,所述获得单元,具体用于
向分布式数据库代理设备发送事务开启指令,所述事务开启指令用于开启一个事务;以及
接收所述分布式数据库代理设备根据所述事务开启指令分配的所述事务标识。
如上所述的方面和任一可能的实现方式,进一步提供一种实现方式,所述业务系统至少包括第一业务子系统和第二业务子系统;所述至少两个数据库至少包括第一数据库和第二数据库;所述操作单元,具体包括部署在所述第一业务子系统上的第一操作模块和部署在所述第二业务子系统上的第二操作模块;其中,
所述第一操作模块,用于利用所述事务标识和所述第一业务子系统相关业务的执行结果数据,对所述第一数据库进行操作;以及向所述第二操作模块发送业务指令,所述业务指令中包含所述事务标识;
所述第二操作模块,用于根据所述业务指令,利用所述事务标识和所述第二业务子系统相关业务的执行结果数据,对所述第二数据库进行操作。
如上所述的方面和任一可能的实现方式,进一步提供一种实现方式,所述输出单元,具体用于
根据所述事务标识和所述至少两个数据库中每个数据库的操作结果,输出事务成功结果;或者
根据所述事务标识和所述至少两个数据库中每个数据库的操作结果,输出事务失败结果。
如上所述的方面和任一可能的实现方式,进一步提供一种实现方式,所述输出单元,还用于
根据所述事务结果,提交所述事务标识所对应的事务;或者
根据所述事务结果,回滚所述事务标识所对应的事务。
由上述技术方案可知,本发明实施例通过业务系统获得事务标识,所述事务标识为用于标识待处理的业务所涉及的多数据库操作,进而利用所述事务标识和所述业务的执行结果数据,对所述业务所涉及的至少两个数据库进行操作,使得所述业务系统能够根据所述事务标识和所述至少两个数据库中每个数据库的操作结果,输出事务结果,由于在业务的执行过程中可以操作多个数据库,而不是一个数据库,能够避免现有技术中由于一个数据库的容量有限而导致的系统能够完成的事务有限的问题,从而提高了系统的效率和可靠性。
另外,采用本发明提供的技术方案,由于利用统一的事务标识,对多个数据库进行操作,使得每个数据库所对应的操作都在一个事务中操作,能够有效保证每个数据库之间数据的强一致性,能够进一步提高系统的可靠性。
另外,采用本发明提供的技术方案,由于业务系统至少包括第一业务子系统和第二业务子系统这两个独立的子系统,使得两个子系统所对应的业务逻辑可以独立地实现,能够避免将所有的业务逻辑都在一个业务系统中实现而导致的调整业务逻辑的较为复杂的问题,能够有效提高系统的业务逻辑的调整的效率。
【附图说明】
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本发明一实施例提供的数据库事务的处理方法的流程示意图;
图2A~图2C为图1对应的实施例中每种交易模型的状态机示意图;
图3为本发明另一实施例提供的业务系统的结构示意图;
图4为本发明另一实施例提供的业务系统的结构示意图。
【具体实施方式】
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的全部其他实施例,都属于本发明保护的范围。
需要说明的是,本发明实施例中所涉及的终端可以包括但不限于手机、个人数字助理(Personal Digital Assistant,PDA)、无线手持设备、平板电脑(Tablet Computer)、个人电脑(Personal Computer,PC)、MP3播放器、MP4播放器、可穿戴设备(例如,智能眼镜、智能手表、智能手环等)等。
另外,本文中术语“和/或”,仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。另外,本文中字符“/”,一般表示前后关联对象是一种“或”的关系。
图1为本发明一实施例提供的数据库事务的处理方法的流程示意图,如图1所示。
101、业务系统获得事务标识,所述事务标识为用于标识待处理的业务所涉及的多数据库操作。
102、所述业务系统利用所述事务标识和所述业务的执行结果数据,对所述业务所涉及的至少两个数据库进行操作。
103、所述业务系统根据所述事务标识和所述至少两个数据库中每个数据库的操作结果,输出事务结果。
需要说明的是,101~103的执行主体即业务系统,可以为位于本地终端的应用,或者还可以为位于本地终端的应用中的插件或软件开发工具包(Software DevelopmentKit,SDK)等功能单元,或者还可以为位于网络侧的服务器中的处理引擎,或者还可以为位于网络侧的分布式系统,本实施例对此不进行特别限定,本实施例对此不进行特别限定。
可以理解的是,所述应用可以是安装在终端上的本地程序(nativeApp),或者还可以是终端上的浏览器的一个网页程序(webApp),本实施例对此不进行特别限定。
这样,通过业务系统获得事务标识,所述事务标识为用于标识待处理的业务所涉及的多数据库操作,进而利用所述事务标识和所述业务的执行结果数据,对所述业务所涉及的至少两个数据库进行操作,使得所述业务系统能够根据所述事务标识和所述至少两个数据库中每个数据库的操作结果,输出事务结果,由于在业务的执行过程中可以操作多个数据库,而不是一个数据库,能够避免现有技术中由于一个数据库的容量有限而导致的系统能够完成的事务有限的问题,从而提高了系统的效率和可靠性。
所谓的业务系统,可以为任何需要执行某项业务的操作系统,可以包括但不限于支付系统,本实施例对此不进行特别限定。例如,支付系统的业务逻辑一般可以包括交易处理和账务处理这两部分的业务逻辑。其中,交易处理,主要是负责交易的创建、交易的支付、交易的退款、交易的撤消、交易的充值、交易的打款等;账务处理,主要是负责管理每个账户的资金,保证资金流动的正确性。
可选地,在本实施例的一个可能的实现方式中,在101中,所述业务系统具体可以向分布式数据库代理设备发送事务开启指令,所述事务开启指令用于开启一个事务。分布式数据库代理设备接收事务开启指令之后,则可以根据所接收的事务开启指令,为所述业务系统当前的业务分配一个事务标识,并发送给业务系统。这样,所述业务系统则可以接收所述分布式数据库代理设备根据所述事务开启指令分配的所述事务标识。
可选地,在本实施例的一个可能的实现方式中,所述业务系统至少可以包括但不限于第一业务子系统和第二业务子系统;所述至少两个数据库至少可以包括第一数据库和第二数据库。
所谓的第一业务子系统与第二业务子系统,是两个相互独立的子系统,第一业务子系统与第二业务子系统可以部署在一台设备上,即第一业务子系统与第二业务子系统所对应的业务逻辑都在一个业务系统中实现,或者第一业务子系统与第二业务子系统可以还可以分别部署在两台设备上。
这样,由于业务系统至少包括第一业务子系统和第二业务子系统这两个独立的子系统,使得两个子系统所对应的业务逻辑可以独立地实现,能够避免将所有的业务逻辑都在一个业务系统中实现而导致的调整业务逻辑的较为复杂的问题,能够有效提高系统的业务逻辑的调整的效率。
对于第一业务子系统或第二业务子系统,具体可以为一个子系统,或者还可以为多个子系统,具体可以利用名称服务,获得可用的全部子系统,根据预先设置的负载均衡策略,选择一个子系统,执行相应的操作,本实施例对此不进行特别限定。这样,能够有效提高系统的扩展性。
在这两个子系统中,需要预先指定一个子系统为协调者(Coordinator),它能向其它子系统发出请求或指令,并对它们的回答作出响应,由它来控制一个事务的开启、提交或回滚。该事务中涉及到的其它子系统,可以称为参与者(Participant)。
举例来说,对于一个支付系统来说,由于其可以包括交易处理和账务处理这两部分的业务逻辑,因此,可以将交易处理逻辑部署在第一业务子系统上,可以称为交易系统,将账务处理逻辑部署在第二业务子系统上,可以称为账务系统。
所述交易系统,主要负责交易生命周期的管理。其可支持的交易模型可以包括但不限于直付交易模型、预付交易模型和中介交易模型,本实施例对此不进行特别限定。每种交易模型都维护了一套交易的状态机,通过不同的功能接口实现交易模型的生命周期的管理。每种交易模型的状态机可以如图2A~图2C所示,其中,图2A所示为直付交易模型的状态机,图2B所示为预付交易模型的状态机,图2C所示为中介交易模型的状态机。
所述账务系统,主要负责每个账户之间资金的流动。所述账户的主体可以包括但不限于买家、商户、银行、收益账户等。
买家,是指交易发生时的买方,即付钱的人。
商户,是指交易发生时的卖方,即收钱的人。
银行,是指买家进行充值对应的银行。
收益账户,是指交易发生时产生手续费的收入账户。
在一个具体的实现过程中,第一业务子系统可以为协调者,第二业务子系统可以为参与者。由第一业务子系统控制待处理的业务所涉及的事务的开启、提交或回滚。
在另一个具体的实现过程中,第二业务子系统可以为协调者,第一业务子系统可以为参与者。由第二业务子系统控制待处理的业务所涉及的事务的开启、提交或回滚。
这样,由于业务系统至少包括第一业务子系统和第二业务子系统这两个独立的子系统,使得两个子系统所对应的业务逻辑可以独立地实现,能够避免将所有的业务逻辑都在一个业务系统中实现而导致的调整业务逻辑的较为复杂的问题,能够有效提高系统的业务逻辑的调整的效率。
在另一个具体的实现过程中,所述第一数据库或第二数据库可以采用关系型数据库,例如,Oracle数据库、DB2数据库、结构化查询语言(Structured Query Language,SQL)服务器(Server)数据库、MySQL数据库等,或者还可以采用键值(Key-Value)型数据库,例如,非SQL(Not Only SQL)NoSQL数据库、Redis数据库等,本实施例对此不进行特别限定。
相应地,在103中,所述第一业务子系统具体可以利用所述事务标识和所述第一业务子系统相关业务的执行结果数据,对所述第一数据库进行操作;以及所述第一业务子系统向所述第二业务子系统发送业务指令,所述业务指令中可以包含所述事务标识。所述第二业务子系统则可以根据所述业务指令,利用所述事务标识和所述第二业务子系统相关业务的执行结果数据,对所述第二数据库进行操作。
在一个具体的实现过程中,所述第一业务子系统具体可以请求开启一个事务,获得分配的事务标识之后,则可以利用所述事务标识和所述第一业务子系统相关业务的执行结果数据,对所述第一数据库进行操作。
其中,所述第一业务子系统相关业务的执行结果数据,是由所述第一业务子系统,执行待处理的业务中与该第一业务子系统相关的业务逻辑,所产生的执行结果数据。
在另一个具体的实现过程中,所述第一业务子系统,具体可以将对第一数据库所进行的操作,关联到统一的事务标识。例如,所述第一业务子系统可以发送包含所述事务标识的数据库操作指令;或者,再例如,所述第一业务子系统还可以同时发送所述事务标识和数据库操作指令,等等,本实施例对此不进行特别限定。
在所述第一业务子系统对所述第一数据库进行操作之后,所述第一业务子系统则可以向所述第二业务子系统发送业务指令,所述业务指令中可以包含所述事务标识。可以理解的是,所述业务指令中除了包含所述事务标识之外,还可以进一步包含一些业务参数,以指示第二业务子系统执行待处理的业务中与该第二业务子系统相关的业务逻辑。
例如,所述第一业务子系统可以利用远程过程调用协议(Remote Procedure CallProtocol,RPC)、超文本传输协议(Hypertext transfer protocol,HTTP)或Web服务(WebService)技术等通信技术,向所述第二业务子系统发送所述业务指令。
或者,再例如,所述第一业务子系统还可以进一步利用超时机制,向所述第二业务子系统发送所述业务指令。这样,能够有效保证业务处理的实时性。
所述第二业务子系统接收到所述第一业务子系统发送的业务指令之后,则可以根据所述业务指令,利用所述事务标识和所述第二业务子系统相关业务的执行结果数据,对所述第二数据库进行操作。
其中,所述第二业务子系统相关业务的执行结果数据,是由所述第二业务子系统,执行待处理的业务中与该第二业务子系统相关的业务逻辑,所产生的执行结果数据。
在另一个具体的实现过程中,所述第二业务子系统,具体可以将对第二数据库所进行的操作,关联到统一的事务标识。例如,所述第二业务子系统可以发送包含所述事务标识的数据库操作指令;或者,再例如,所述第二业务子系统还可以同时发送所述事务标识和数据库操作指令,等等,本实施例对此不进行特别限定。
可选地,在本实施例的一个可能的实现方式中,在103中,所述业务系统具体可以根据所述事务标识和所述至少两个数据库中每个数据库的操作结果,输出事务成功结果。
在一个具体的实现过程中,若所述事务标识所对应的每个数据库的操作结果均为成功,则可以输出事务成功结果。
可选地,在本实施例的一个可能的实现方式中,在103中,所述业务系统具体可以根据所述事务标识和所述至少两个数据库中每个数据库的操作结果,输出事务失败结果。
在一个具体的实现过程中,若所述事务标识所对应的每个数据库的操作结果中有一个为失败,则可以输出事务失败结果。
可选地,在本实施例的一个可能的实现方式中,在103之后,所述业务系统具体可以根据所述事务结果,提交所述事务标识所对应的事务。
在一个具体的实现过程中,若输出事务成功结果,则可以提交所述事务标识所对应的事务,以指示每个数据库将所预记录的操作所产生的操作数据固定记录下来。
可选地,在本实施例的一个可能的实现方式中,在103之后,所述业务系统具体可以根据所述事务结果,回滚所述事务标识所对应的事务。
在一个具体的实现过程中,若输出事务失败结果,则可以回滚所述事务标识所对应的事务,以指示每个数据库将所预记录的操作所产生的操作数据撤销。
本实施例中,通过业务系统获得事务标识,所述事务标识为用于标识待处理的业务所涉及的多数据库操作,进而利用所述事务标识和所述业务的执行结果数据,对所述业务所涉及的至少两个数据库进行操作,使得所述业务系统能够根据所述事务标识和所述至少两个数据库中每个数据库的操作结果,输出事务结果,由于在业务的执行过程中可以操作多个数据库,而不是一个数据库,能够避免现有技术中由于一个数据库的容量有限而导致的系统能够完成的事务有限的问题,从而提高了系统的效率和可靠性。
另外,采用本发明提供的技术方案,由于利用统一的事务标识,对多个数据库进行操作,使得每个数据库所对应的操作都在一个事务中操作,能够有效保证每个数据库之间数据的强一致性,能够进一步提高系统的可靠性。
另外,采用本发明提供的技术方案,由于业务系统至少包括第一业务子系统和第二业务子系统这两个独立的子系统,使得两个子系统所对应的业务逻辑可以独立地实现,能够避免将所有的业务逻辑都在一个业务系统中实现而导致的调整业务逻辑的较为复杂的问题,能够有效提高系统的业务逻辑的调整的效率。
需要说明的是,对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明并不受所描述的动作顺序的限制,因为依据本发明,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是本发明所必须的。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。
图3为本发明另一实施例提供的业务系统的结构示意图,如图3所示。本实施例的业务系统可以包括获得单元31、操作单元32和输出单元33。其中,获得单元31,用于获得事务标识,所述事务标识为用于标识待处理的业务所涉及的多数据库操作;操作单元32,用于利用所述事务标识和所述业务的执行结果数据,对所述业务所涉及的至少两个数据库进行操作;输出单元33,用于根据所述事务标识和所述至少两个数据库中每个数据库的操作结果,输出事务结果。
需要说明的是,本实施例所提供的业务系统,可以为位于本地终端的应用,或者还可以为位于本地终端的应用中的插件或软件开发工具包(Software Development Kit,SDK)等功能单元,或者还可以为位于网络侧的服务器中的处理引擎,或者还可以为位于网络侧的分布式系统,本实施例对此不进行特别限定,本实施例对此不进行特别限定。
可以理解的是,所述应用可以是安装在终端上的本地程序(nativeApp),或者还可以是终端上的浏览器的一个网页程序(webApp),本实施例对此不进行特别限定。
可选地,在本实施例的一个可能的实现方式中,所述获得单元31,具体可以用于向分布式数据库代理设备发送事务开启指令,所述事务开启指令用于开启一个事务;以及接收所述分布式数据库代理设备根据所述事务开启指令分配的所述事务标识。
可选地,在本实施例的一个可能的实现方式中,所述业务系统至少可以包括但不限于第一业务子系统和第二业务子系统;所述至少两个数据库至少可以包括第一数据库和第二数据库。
如图4所示,本实施例所提供的业务系统中的所述操作单元32,具体可以包括部署在所述第一业务子系统上的第一操作模块41和部署在所述第二业务子系统上的第二操作模块42。其中,
所述第一操作模块41,可以用于利用所述事务标识和所述第一业务子系统相关业务的执行结果数据,对所述第一数据库进行操作;以及向所述第二操作模块发送业务指令,所述业务指令中包含所述事务标识;
所述第二操作模块42,可以用于根据所述业务指令,利用所述事务标识和所述第二业务子系统相关业务的执行结果数据,对所述第二数据库进行操作。
需要说明的是,所述获得单元31,可以部署在所述第一业务子系统上。这样,由于所述第一操作模块41与所述获得单元31部署在同一个子系统上即第一业务子系统上,因此,所述第一操作模块41能够通过内部通信接口,获得所述获得单元31所获得的所述事务标识。
可选地,在本实施例的一个可能的实现方式中,所述输出单元33,具体可以用于根据所述事务标识和所述至少两个数据库中每个数据库的操作结果,输出事务成功结果。
可选地,在本实施例的一个可能的实现方式中,所述输出单元33,具体可以用于根据所述事务标识和所述至少两个数据库中每个数据库的操作结果,输出事务失败结果。
可选地,在本实施例的一个可能的实现方式中,所述输出单元33,还可以进一步用于根据所述事务结果,提交所述事务标识所对应的事务。
可选地,在本实施例的一个可能的实现方式中,所述输出单元33,还可以进一步用于根据所述事务结果,回滚所述事务标识所对应的事务。
需要说明的是,图1对应的实施例中方法,可以由本实施例提供的业务系统实现。详细描述可以参见图1对应的实施例中的相关内容,此处不再赘述。
本实施例中,通过获得单元获得事务标识,所述事务标识为用于标识待处理的业务所涉及的多数据库操作,进而由操作单元利用所述事务标识和所述业务的执行结果数据,对所述业务所涉及的至少两个数据库进行操作,使得输出单元能够根据所述事务标识和所述至少两个数据库中每个数据库的操作结果,输出事务结果,由于在业务的执行过程中可以操作多个数据库,而不是一个数据库,能够避免现有技术中由于一个数据库的容量有限而导致的系统能够完成的事务有限的问题,从而提高了系统的效率和可靠性。
另外,采用本发明提供的技术方案,由于利用统一的事务标识,对多个数据库进行操作,使得每个数据库所对应的操作都在一个事务中操作,能够有效保证每个数据库之间数据的强一致性,能够进一步提高系统的可靠性。
另外,采用本发明提供的技术方案,由于业务系统至少包括第一业务子系统和第二业务子系统这两个独立的子系统,使得两个子系统所对应的业务逻辑可以独立地实现,能够避免将所有的业务逻辑都在一个业务系统中实现而导致的调整业务逻辑的较为复杂的问题,能够有效提高系统的业务逻辑的调整的效率。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统,装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本发明所提供的几个实施例中,应该理解到,所揭露的系统,装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用硬件加软件功能单元的形式实现。
上述以软件功能单元的形式实现的集成的单元,可以存储在一个计算机可读取存储介质中。上述软件功能单元存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)或处理器(processor)执行本发明各个实施例所述方法的部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(Read-Only Memory,ROM)、随机存取存储器(Random Access Memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。

Claims (8)

1.一种数据库事务的处理方法,其特征在于,包括:
业务系统获得事务标识,所述事务标识为用于标识待处理的业务所涉及的多数据库操作;
所述业务系统利用所述事务标识和所述业务的执行结果数据,对所述业务所涉及的至少两个数据库进行操作;
所述业务系统根据所述事务标识和所述至少两个数据库中每个数据库的操作结果,输出事务结果;其中,
所述业务系统至少包括第一业务子系统和第二业务子系统;所述至少两个数据库至少包括第一数据库和第二数据库;所述业务系统利用所述事务标识和所述业务的执行结果数据,对所述业务所涉及的至少两个数据库进行操作,包括:
所述第一业务子系统利用所述事务标识和所述第一业务子系统相关业务的执行结果数据,对所述第一数据库进行操作;
所述第一业务子系统向所述第二业务子系统发送业务指令,所述业务指令中包含所述事务标识;
所述第二业务子系统根据所述业务指令,利用所述事务标识和所述第二业务子系统相关业务的执行结果数据,对所述第二数据库进行操作。
2.根据权利要求1所述的方法,其特征在于,所述业务系统获得事务标识,所述事务标识为用于标识待处理的业务所涉及的多数据库操作,包括:
所述业务系统向分布式数据库代理设备发送事务开启指令,所述事务开启指令用于开启一个事务;
所述业务系统接收所述分布式数据库代理设备根据所述事务开启指令分配的所述事务标识。
3.根据权利要求1所述的方法,其特征在于,所述业务系统根据所述事务标识和所述至少两个数据库中每个数据库的操作结果,输出事务结果,包括:
所述业务系统根据所述事务标识和所述至少两个数据库中每个数据库的操作结果,输出事务成功结果;或者
所述业务系统根据所述事务标识和所述至少两个数据库中每个数据库的操作结果,输出事务失败结果。
4.根据权利要求1~3任一权利要求所述的方法,其特征在于,所述业务系统根据所述事务标识和所述至少两个数据库中每个数据库的操作结果,输出事务结果之后,还包括:
所述业务系统根据所述事务结果,提交所述事务标识所对应的事务;或者
所述业务系统根据所述事务结果,回滚所述事务标识所对应的事务。
5.一种业务系统,其特征在于,包括:
获得单元,用于获得事务标识,所述事务标识为用于标识待处理的业务所涉及的多数据库操作;
操作单元,用于利用所述事务标识和所述业务的执行结果数据,对所述业务所涉及的至少两个数据库进行操作;
输出单元,用于根据所述事务标识和所述至少两个数据库中每个数据库的操作结果,输出事务结果;其中,
所述业务系统至少包括第一业务子系统和第二业务子系统;所述至少两个数据库至少包括第一数据库和第二数据库;所述操作单元,具体包括部署在所述第一业务子系统上的第一操作模块和部署在所述第二业务子系统上的第二操作模块;其中,
所述第一操作模块,用于利用所述事务标识和所述第一业务子系统相关业务的执行结果数据,对所述第一数据库进行操作;以及向所述第二操作模块发送业务指令,所述业务指令中包含所述事务标识;
所述第二操作模块,用于根据所述业务指令,利用所述事务标识和所述第二业务子系统相关业务的执行结果数据,对所述第二数据库进行操作。
6.根据权利要求5所述的业务系统,其特征在于,所述获得单元,具体用于
向分布式数据库代理设备发送事务开启指令,所述事务开启指令用于开启一个事务;以及
接收所述分布式数据库代理设备根据所述事务开启指令分配的所述事务标识。
7.根据权利要求5所述的业务系统,其特征在于,所述输出单元,具体用于
根据所述事务标识和所述至少两个数据库中每个数据库的操作结果,输出事务成功结果;或者
根据所述事务标识和所述至少两个数据库中每个数据库的操作结果,输出事务失败结果。
8.根据权利要求5~7任一权利要求所述的业务系统,其特征在于,所述输出单元,还用于
根据所述事务结果,提交所述事务标识所对应的事务;或者
根据所述事务结果,回滚所述事务标识所对应的事务。
CN201410773733.9A 2014-12-12 2014-12-12 数据库事务的处理方法及业务系统 Active CN104572077B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201410773733.9A CN104572077B (zh) 2014-12-12 2014-12-12 数据库事务的处理方法及业务系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201410773733.9A CN104572077B (zh) 2014-12-12 2014-12-12 数据库事务的处理方法及业务系统

Publications (2)

Publication Number Publication Date
CN104572077A CN104572077A (zh) 2015-04-29
CN104572077B true CN104572077B (zh) 2018-03-06

Family

ID=53088243

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201410773733.9A Active CN104572077B (zh) 2014-12-12 2014-12-12 数据库事务的处理方法及业务系统

Country Status (1)

Country Link
CN (1) CN104572077B (zh)

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105653680A (zh) * 2015-12-29 2016-06-08 北京农信互联科技有限公司 一种基于文档型数据库的存储数据的方法及系统
CN107436799B (zh) * 2016-05-26 2020-11-03 创新先进技术有限公司 分布式事务一致性实现方法及装置
CN107465725B (zh) * 2017-07-20 2020-11-06 中国银行股份有限公司 基于客户信息控制系统的异构长事务处理系统及方法
CN108874947B (zh) * 2018-06-05 2020-12-01 亚信科技(中国)有限公司 一种数据处理系统及数据处理方法
CN110287266A (zh) * 2019-06-28 2019-09-27 深圳前海微众银行股份有限公司 一种分布式系统及数据处理方法
CN110287267A (zh) * 2019-06-28 2019-09-27 深圳前海微众银行股份有限公司 一种跨节点的数据处理方法及装置
CN112487081A (zh) * 2019-09-12 2021-03-12 北京国双科技有限公司 数据同步方法、装置、存储介质及设备
CN111930830B (zh) * 2020-06-22 2024-04-16 心有灵犀科技股份有限公司 一种基于共享数据库的分布式事务数据处理方法及系统
CN114138888B (zh) * 2021-12-03 2022-07-05 北京宇信科技集团股份有限公司 一种分布式数据路由的处理方法、系统、介质和设备

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1539110A (zh) * 2000-07-28 2004-10-20 辛孚尼系统股份有限公司 嵌套数据库的实现方法、系统和数据结构
CN103064964A (zh) * 2012-12-29 2013-04-24 天津南大通用数据技术有限公司 一种支持分布式事务的数据库的连接方法
CN103842994A (zh) * 2011-08-01 2014-06-04 标记公司 异步分布式数据库管理的系统和方法

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1539110A (zh) * 2000-07-28 2004-10-20 辛孚尼系统股份有限公司 嵌套数据库的实现方法、系统和数据结构
CN103842994A (zh) * 2011-08-01 2014-06-04 标记公司 异步分布式数据库管理的系统和方法
EP2740056A1 (en) * 2011-08-01 2014-06-11 Tagged, Inc. Reconciling a distributed databases from hierarchical viewpoints
CN103064964A (zh) * 2012-12-29 2013-04-24 天津南大通用数据技术有限公司 一种支持分布式事务的数据库的连接方法

Also Published As

Publication number Publication date
CN104572077A (zh) 2015-04-29

Similar Documents

Publication Publication Date Title
CN104572077B (zh) 数据库事务的处理方法及业务系统
US20160300201A1 (en) Method, device and system for performing transactions
CN103136276A (zh) 一种数据核对系统,方法及装置
CN109961365B (zh) 一种基于区块链智能合约的收账记录处理方法及系统
CN109670943B (zh) 一种结算系统、方法、计算机设备及存储介质
CN105335847A (zh) 一种电子账户的操作方法及装置
JP6680946B2 (ja) 発注処理方法及び装置
CN112184248B (zh) 卡组织拒付调单数据处理方法及装置
CN112381645A (zh) 用于票据交易的信息处理方法及装置
CN106034148B (zh) 一种快速信息交互方法、本地服务器、异地服务器及系统
US20240135350A1 (en) Apparatuses and methods for payment for consumable content
CN109598575B (zh) 一种账单生成方法、装置、电子设备及介质
CN113379523A (zh) 账单生成方法、装置、介质及电子设备
CN112950191A (zh) 基于退费业务的业务数据处理方法、装置及计算机设备
EP2984613A1 (en) System and method of providing multinational card programs
CN110675246A (zh) 授信额度管理方法以及装置
CN115526730A (zh) 一种股权激励资金管理方法、装置、电子设备及存储介质
US20150294314A1 (en) System and method of providing multinational card programs
US20180165647A1 (en) Multicomputer Processing of Client Device Request Data Using Centralized Event Orchestrator
CN111737262B (zh) 一种数据处理方法及装置
TW201106286A (en) System and method for adaptively selecting bank card for payment
CN113724070A (zh) 信息处理方法、装置、电子设备和介质
US20230306423A1 (en) Apparatuses and methods for immediate payment response
CN111415263A (zh) 数据匹配方法和装置
CN112132692A (zh) 保单数据处理方法及装置、存储介质及电子设备

Legal Events

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

Effective date of registration: 20191209

Address after: 201210 room j1328, floor 3, building 8, No. 55, Huiyuan Road, Jiading District, Shanghai

Patentee after: SHANGHAI YOUYANG NEW MEDIA INFORMATION TECHNOLOGY Co.,Ltd.

Address before: 100085 Baidu building, No. 10, ten Street, Haidian District, Beijing

Patentee before: BEIJING BAIDU NETCOM SCIENCE AND TECHNOLOGY Co.,Ltd.

EE01 Entry into force of recordation of patent licensing contract
EE01 Entry into force of recordation of patent licensing contract

Application publication date: 20150429

Assignee: BEIJING BAIDU NETCOM SCIENCE AND TECHNOLOGY Co.,Ltd.

Assignor: SHANGHAI YOUYANG NEW MEDIA INFORMATION TECHNOLOGY Co.,Ltd.

Contract record no.: X2019110000009

Denomination of invention: Database service processing method and business system

Granted publication date: 20180306

License type: Exclusive License

Record date: 20191218

CP03 Change of name, title or address
CP03 Change of name, title or address

Address after: 401120 b7-7-2, Yuxing Plaza, No.5, Huangyang Road, Yubei District, Chongqing

Patentee after: Chongqing duxiaoman Youyang Technology Co.,Ltd.

Address before: 201210 room j1328, 3 / F, building 8, 55 Huiyuan Road, Jiading District, Shanghai

Patentee before: SHANGHAI YOUYANG NEW MEDIA INFORMATION TECHNOLOGY Co.,Ltd.