CN110019112B - 数据事务处理方法、装置以及电子设备 - Google Patents
数据事务处理方法、装置以及电子设备 Download PDFInfo
- Publication number
- CN110019112B CN110019112B CN201710738319.8A CN201710738319A CN110019112B CN 110019112 B CN110019112 B CN 110019112B CN 201710738319 A CN201710738319 A CN 201710738319A CN 110019112 B CN110019112 B CN 110019112B
- Authority
- CN
- China
- Prior art keywords
- transaction
- data
- database
- partition
- client
- 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
Links
- 238000003672 processing method Methods 0.000 title claims abstract description 43
- 238000005192 partition Methods 0.000 claims abstract description 200
- 238000000034 method Methods 0.000 claims description 46
- 230000004048 modification Effects 0.000 claims description 22
- 238000012986 modification Methods 0.000 claims description 22
- 238000013500 data storage Methods 0.000 claims description 17
- 230000008569 process Effects 0.000 claims description 13
- 238000004064 recycling Methods 0.000 claims description 7
- 230000009471 action Effects 0.000 claims description 5
- 238000010586 diagram Methods 0.000 description 15
- 230000005540 biological transmission Effects 0.000 description 2
- 238000004590 computer program Methods 0.000 description 2
- 238000001514 detection method Methods 0.000 description 2
- 238000002955 isolation Methods 0.000 description 2
- 230000007246 mechanism Effects 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 230000008859 change Effects 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 238000000926 separation method Methods 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 230000001960 triggered effect Effects 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/21—Design, administration or maintenance of databases
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/18—File system types
- G06F16/1865—Transactional file systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q30/00—Commerce
- G06Q30/06—Buying, selling or leasing transactions
- G06Q30/0601—Electronic shopping [e-shopping]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/16—File or folder operations, e.g. details of user interfaces specifically adapted to file systems
- G06F16/162—Delete operations
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/16—File or folder operations, e.g. details of user interfaces specifically adapted to file systems
- G06F16/168—Details of user interfaces specifically adapted to file systems, e.g. browsing and visualisation, 2d or 3d GUIs
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/17—Details of further file system functions
- G06F16/1734—Details of monitoring file system events, e.g. by the use of hooks, filter drivers, logs
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/18—File system types
- G06F16/182—Distributed file systems
-
- 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/22—Indexing; Data structures therefor; Storage structures
- G06F16/2282—Tablespace storage structures; Management thereof
-
- 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/23—Updating
- G06F16/2308—Concurrency control
- G06F16/2336—Pessimistic concurrency control approaches, e.g. locking or multiple versions without time stamps
- G06F16/2343—Locking methods, e.g. distributed locking or locking implementation details
-
- 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/25—Integrating or interfacing systems involving database management systems
-
- 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/25—Integrating or interfacing systems involving database management systems
- G06F16/252—Integrating or interfacing systems involving database management systems between a Database Management System and a front-end application
-
- 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/27—Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/62—Protecting access to data via a platform, e.g. using keys or access control rules
- G06F21/6218—Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
- G06F9/543—User-generated data transfer, e.g. clipboards, dynamic data exchange [DDE], object linking and embedding [OLE]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/10—Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
- G06F21/107—License processing; Key processing
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Software Systems (AREA)
- Business, Economics & Management (AREA)
- Human Computer Interaction (AREA)
- Accounting & Taxation (AREA)
- Finance (AREA)
- General Health & Medical Sciences (AREA)
- Bioethics (AREA)
- Health & Medical Sciences (AREA)
- Computer Hardware Design (AREA)
- Computer Security & Cryptography (AREA)
- Strategic Management (AREA)
- Computing Systems (AREA)
- General Business, Economics & Management (AREA)
- Marketing (AREA)
- Economics (AREA)
- Development Economics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请公开一种数据事务处理方法,包括:接收客户端发送的在目标数据分区进行数据操作的申请请求;根据所述申请请求创建对应的数据事务,并为所述数据事务分配事务标识;将分配给所述数据事务的事务标识返回给所述客户端;根据所述客户端提交的携带所述事务标识的数据操作,基于所述目标数据分区执行所述数据操作;根据所述客户端发送的事务指令处理所述数据事务。所述数据事务处理方法使所述数据操作实现事务属性,满足了数据操作的事务性;同时,所述数据事务处理方法实现数据事务的业务逻辑较为简单,确保数据业务具有良好的事务性。
Description
技术领域
本申请涉及计算机技术领域,具体涉及一种数据事务处理方法。本申请同时涉及一种数据事务处理装置,另一种数据事务处理方法以及装置,以及两种电子设备。
背景技术
数据库事务是数据库的基本工作单元,让数据库从一个一致的状态转移到另一个一致的状态,数据库事务允许对数据库中不同的数据项同时进行写操作,这些操作要么全部成功执行,要么全部不执行,即使***发生故障,未执行完成的数据库事务依然可以正确恢复,而数据库事务之间可以在不同程度上进行隔离,以保证数据的正确性。
目前,在分布式数据库中,数据分布在不同的机器上,一个数据库事务往往需要访问多台机器,为了保证事务的原子性,需要确保参与数据库事务的机器相互协作,这个过程非常复杂并且对***的性能有很大的影响,所以大多数分布式数据库并不支持事务。以一个典型的业务场景邮箱业务为例,每封邮件有以下属性:发件人、时间、状态(已读/未读)等,当邮箱账号收到新邮件时,需要进行存储新邮件的内容、修改收件箱列表、未读邮件数等操作,为了满足不同查询条件排序的需求,业务还会对原始数据建立不同的索引,每次写入一份原始数据和多份索引数据,这些写入操作需要在一个事务中完成,但在数据库不支持多行事务的场景下,需要业务来实现事务的各项特性,参照附图1所示的业务层写入逻辑的示意图,根据读出来的数据对原有数据进行更新,并且每笔数据写入成功后再写下一笔数据,直到所有数据都成功写入。但这种方式需要考虑每次写入失败的回退处理,并且在回退删除已经写入的数据时需要进行无限重试,业务逻辑较为复杂;此外,如果业务程序发生宕机,写入数据无法进行回退,因此无法满足事务性需求。
发明内容
本申请提供一种数据事务处理方法,以解决现有技术存在的问题。
本申请同时涉及一种数据事务处理装置,另一种数据事务处理方法以及装置,以及两种电子设备。
本申请提供一种数据事务处理方法,包括:
接收客户端发送的在目标数据分区进行数据操作的申请请求;
根据所述申请请求创建对应的数据事务,并为所述数据事务分配事务标识;
将分配给所述数据事务的事务标识返回给所述客户端;
根据所述客户端提交的携带所述事务标识的数据操作,基于所述目标数据分区执行所述数据操作;
根据所述客户端发送的事务指令处理所述数据事务。
可选的,所述目标数据分区包括:数据库包含的数据表当中的分区键;
相应的,所述数据事务包括:数据库事务。
可选的,所述数据表的主键由数据表中的至少一个主键列组成;
所述分区键包括:所述数据表的第一个主键列组成的单分区键。
可选的,所述事务指令包括:事务提交指令和事务取消指令。
可选的,若所述客户端发送的事务指令为所述事务提交指令,所述根据所述客户端发送的事务指令处理所述数据事务,采用如下方式实现:
将所述数据库事务提交到事务队列;
从所述事务队列中读取数据库事务,创建所述数据库事务对应的事务日志,并将所述数据库事务的数据操作记录在事务日志中。
可选的,所述从所述事务队列中读取数据库事务,创建所述数据库事务对应的事务日志,并将所述数据库事务的数据操作记录在事务日志中子步骤执行后,执行下述子步骤:
将所述事务日志存储至预设数据存储空间中。
可选的,所述将所述事务日志存储至预设数据存储空间中子步骤执行后,执行下述子步骤:
删除所述数据库事务,并回收所述数据库事务对应的事务标识。
可选的,若所述客户端发送的事务指令为所述事务取消指令,所述根据所述客户端发送的事务指令处理所述数据事务,采用如下方式实现:
删除所述数据库事务,并回收所述数据库事务的事务标识。
可选的,所述根据所述客户端提交的携带所述事务标识的数据操作,基于所述目标数据分区执行所述数据操作步骤执行后,且所述根据所述客户端发送的事务指令处理所述数据事务步骤执行前,执行下述步骤:
接收所述客户端发送的针对所述数据库事务进行处理的事务指令。
可选的,所述接收所述客户端发送的针对所述数据库事务进行处理的动作指令步骤执行后,执行下述步骤:
判断所述事务指令对应的数据库事务是否存在,若不存在,向所述客户端返回所述事务指令对应的数据库事务不存在的提醒信息。
可选的,所述分区键的状态包括下述至少一项:锁定状态和未锁定状态;
若接收到的申请请求为在所述分区键下进行数据操作的申请请求,所述分区键的状态被更新为锁定状态。
可选的,所述接收客户端发送的在目标数据分区进行数据操作的申请请求步骤执行后,且所述根据所述申请请求创建对应的数据事务,并为所述数据事务分配事务标识步骤执行前,执行下述步骤:
判断所述分区键的状态是否为未锁定状态,若否,执行所述根据所述申请请求创建对应的数据事务,并为所述数据事务分配事务标识步骤。
可选的,所述数据库包括:通过网络将物理上分散的多个数据存储单元连接组成的逻辑统一的分布式数据库。
可选的,所述数据事务处理方法基于云计算环境中部署的分布式数据库平台实现,所述分布式数据库平台提供用于访问所述分布式数据库的数据访问接口,通过所述数据访问接口接收所述客户端发送的针对所述分布式数据库的分区键进行数据操作的所述申请请求,和/或,通过所述数据访问接口接收所述客户端发送的针对所述数据库事务进行处理的所述事务指令。
本申请还提供一种数据事务处理装置,包括:
申请接收单元,用于接收客户端发送的在目标数据分区进行数据操作的申请请求;
数据事务创建单元,用于根据所述申请请求创建对应的数据事务,并为所述数据事务分配事务标识;
事务标识返回单元,用于将分配给所述数据事务的事务标识返回给所述客户端;
数据操作提交执行单元,用于根据所述客户端提交的携带所述事务标识的数据操作,基于所述目标数据分区执行所述数据操作;
数据事务处理单元,用于根据所述客户端发送的事务指令处理所述数据事务。
本申请另外提供一种数据事务处理方法,包括:
向服务端发送在目标数据分区进行数据操作的申请请求;
接收所述服务端返回的所述申请请求对应的数据事务的事务标识;
向所述服务端提交携带所述事务标识的数据操作,用于针对所述目标数据分区执行所述数据操作;
基于所述事务标识向所述服务端发送针对所述数据事务进行处理的事务指令。
可选的,所述目标数据分区包括:数据库包含的数据表当中的分区键;
相应的,所述数据事务包括:数据库事务。
可选的,所述数据表的主键由数据表中的至少一个主键列组成;
所述分区键包括:所述数据表的第一个主键列组成的单分区键。
可选的,所述事务指令包括:事务提交指令和事务取消指令。
可选的,所述数据事务处理方法,包括:
接收所述服务端返回的所述事务指令对应的数据库事务不存在的提醒信息。
本申请另外提供一种数据事务处理装置,包括:
申请发送单元,用于向服务端发送在目标数据分区进行数据操作的申请请求;
事务标识接收单元,用于接收所述服务端返回的所述申请请求对应的数据事务的事务标识;
数据操作提交单元,用于向所述服务端提交携带所述事务标识的数据操作,用于针对所述目标数据分区执行所述数据操作;
事务指令发送单元,用于基于所述事务标识向所述服务端发送针对所述数据事务进行处理的事务指令。
本申请还提供一种电子设备,包括:
存储器,以及处理器;
所述存储器用于存储计算机可执行指令,所述处理器用于执行所述计算机可执行指令:
接收客户端发送的在目标数据分区进行数据操作的申请请求;
根据所述申请请求创建对应的数据事务,并为所述数据事务分配事务标识;
将分配给所述数据事务的事务标识返回给所述客户端;
根据所述客户端提交的携带所述事务标识的数据操作,基于所述目标数据分区执行所述数据操作;
根据所述客户端发送的事务指令处理所述数据事务。
本申请另外提供一种电子设备,包括:
存储器,以及处理器;
所述存储器用于存储计算机可执行指令,所述处理器用于执行所述计算机可执行指令:
向服务端发送在目标数据分区进行数据操作的申请请求;
接收所述服务端返回的所述申请请求对应的数据事务的事务标识;
向所述服务端提交携带所述事务标识的数据操作,用于针对所述目标数据分区执行所述数据操作;
基于所述事务标识向所述服务端发送针对所述数据事务进行处理的事务指令。
本申请提供的所述数据事务处理方法,接收客户端发送的在目标数据分区进行数据操作的申请请求;根据所述申请请求创建对应的数据事务,并为所述数据事务分配事务标识;将分配给所述数据事务的事务标识返回给所述客户端;根据所述客户端提交的携带所述事务标识的数据操作,基于所述目标数据分区执行所述数据操作;根据所述客户端发送的事务指令处理所述数据事务。
所述数据事务处理方法,对所述客户端针对目标数据分区进行数据操作的数据事务进行处理时,为创建的数据事务分配事务标识,并将所述事务标识返回给所述客户端,由所述客户端通过提交携带所述事务标识的数据操作针对所述目标数据分区执行数据操作,并最终根据所述客户端发送的事务指令对所述数据事务进行处理,从而使所述数据操作实现事务属性,满足了数据操作的事务性;同时,所述数据事务处理方法实现数据事务的业务逻辑较为简单,确保数据业务具有良好的事务性。
附图说明
附图1是现有技术提供的一种业务层写入逻辑的示意图;
附图2是本申请提供的一种数据库事务处理场景的示意图;
附图3是本申请提供的一种数据事务处理装置实施例的示意图;
附图4是本申请提供的另一种数据事务处理方法实施例的处理流程图;
附图5是本申请提供的另一种数据事务处理装置实施例的示意图;
附图6是本申请提供的一种电子设备实施例的示意图;
附图7是本申请提供的另一种电子设备实施例的示意图。
具体实施方式
在下面的描述中阐述了很多具体细节以便于充分理解本申请。但是本申请能够以很多不同于在此描述的其他方式来实施,本领域技术人员可以在不违背本申请内涵的情况下做类似推广,因此本申请不受下面公开的具体实施的限制。
本申请提供一种数据事务处理方法,本申请还提供一种数据事务处理装置,另一种数据事务处理方法以及装置,以及两种电子设备。以下分别结合本申请提供的实施例的附图逐一进行详细说明,并且对方法的各个步骤进行说明。
本申请提供的一种数据事务处理方法实施例如下:
参照附图2,其示出了本申请提供的一种数据库事务处理场景的示意图。
步骤1,接收客户端发送的在目标数据分区进行数据操作的申请请求。
本步骤是后续对目标数据分区进行数据操作的基础,通过所述客户端发送的在目标数据分区进行数据操作的申请请求,才可能获得操作所述目标数据分区的数据操作的权限。本申请实施例以数据库事务为例进行说明,比如构建在分布式***之上的分布式数据库(如NoSQL数据库)的数据库事务。所述分布式***是指通过网络将物理上分散的多个数据存储单元连接组成的逻辑统一的数据库,在所述分布式数据库的基础上基于数据分片和负载均衡,能够使所述分布式数据库在规模上实现无缝扩展。
所述目标数据分区,是指所述客户端期望操作的数据集合,本实施例中,所述目标数据分区是指分区当中的分区键,所述分区是指数据存储中负载均衡的基本调度单位,通过分区实现数据存储的水平扩展,保证性能和可用性。具体而言,数据库中包含的数据表的主键由数据表中的至少一个主键列组成,所述分区键是指所述数据表的第一个主键列组成的单分区键,在一个分区当中,可能包含多个分区键,并且这些分区键之间不会有重合。除此之外,在具体实施时,所述目标数据分区还可以是所述数据表中所述分区键之外的主键列或者多个主键列的集合,比如所述目标数据分区还可以是所述数据表的第一个主键列之外的其他任意一个主键列组成的单分区键,或者,所述目标数据分区还可以是所述数据表的多个主键列组成的联合分区键,或者所述目标数据分区还可以是多个分区键组成的联合分区键,本实施例对此不作限定。所述客户端在申请请求中嵌入目标数据分区的分区键,当接收到来自所述客户端的申请请求,获得所述申请请求中的分区键,进而确定所述客户端期望操作的数据集合。所述数据操作,是指对所述分区键下数据的具体操作,例如增加一行数据、删除一行数据、修改某行或某些行数据中的某个或某些值、读取某个或某些数据等。
本步骤中,接收所述客户端发送的在分区键下进行数据操作的申请请求,即申请分区键的数据库事务。例如,如附图2所示,接收业务1对应的客户端发送的申请分区键PK0为0的数据库事务。
步骤2,根据所述申请请求创建对应的数据事务,并为所述数据事务分配事务标识。
上述步骤1接收所述客户端发送的在分区键下进行数据操作的申请请求,即申请分区键的数据库事务,本步骤根据所述申请请求创建对应的数据库事务,并为所述数据库事务分配事务标识。
所述事务标识是为数据库事务分配的识别码,一个数据库事务有且仅有一个事务标识,并且每个数据库事务的事务标识都不相同。更具体地说,所述事务标识可以采用字符串的形式,也可以采用数字的形式。
例如,如附图2所示,接收到业务1对应的客户端发送的申请分区键PK0为0的数据库事务之后,创建数据库事务3,并为当前新创建的数据库事务3分配对应的事务ID(事务标识)。
本步骤中为所述数据库事务分配事务标识,为后续所述客户端修改所述数据库事务提供基础,由于服务端同时分配不同的数据库事务给若干个业务对应的客户端,因此,需要根据所述事务标识确定所述客户端所要修改的具体的数据库事务。同时,由于服务端同时分配不同的数据库事务给若干个业务对应的客户端,因此,在为所述数据库事务分配事务标识的同时,将所述数据库事务对应的所述分区键锁定,即不允许所述数据库事务之外的其他数据库事务对所述分区键下的数据进行数据操作。例如,如附图2所示,当业务1对应的客户端发送的申请分区键PK0为0的数据库事务3被锁定之后,业务2对应的客户端申请分区键PK0为0的数据库事务时,申请失败。
在实际应用中,可针对所述分区键设置相应的状态,包括锁定状态和未锁定状态,一旦接收到的所述申请请求为在当前分区键下进行数据操作的申请请求,当前分区键的状态被更新为锁定状态;若尚未接收到在当前分区键下进行数据操作的申请请求,则当前分区键的状态保持为未锁定状态。
基于此,在具体实施时,在本步骤据所述申请请求创建对应的数据库事务,并为所述数据库事务分配事务标识之前,需要判断所述客户端申请的分区键是否被锁定,具体通过判断所述分区键的状态是否为未锁定状态来判断所述分区键是否被锁定,如果所述分区键已经被锁定,则针对上述步骤1中所述客户端发送的在所述分区键下进行数据操作的申请请求,做出申请失败的回应,并且不再创建数据库事务以及分配事务标识;如果所述分区键未被锁定,则执行本步骤,根据所述申请请求创建对应的数据库事务,并为所述数据库事务分配事务标识。
步骤3,将分配给所述数据事务的事务标识返回给所述客户端。
上述步骤2根据所述申请请求创建对应的数据库事务,并为所述数据库事务分配事务标识,本步骤中,将上述步骤2为所述数据库事务分配的事务标识返回给所述客户端。例如,如附图2所示,将分配给数据库事务3的事务ID返回给业务1对应的客户端,业务1对应的客户端接收到数据库事务3的事务ID,表示申请成功。
此外,将所述数据库事务分配的事务标识返回给所述客户端之后,还可以启动超时检测机制,所述超时检测机制具体通过判断在一定的时间阈值范围内是否接收到所述客户端发送的动作指令,即所述时间阈值范围内是否接收到下述步骤4中所述客户端发送的针对所述数据事务进行处理的动作指令,如果没有,则触发超时,销毁所述数据库事务,回收所述事务标识,也就是说,所述数据库事务标识失效,其所对应的事务标识亦失效。在具体实施时,所述时间阈值范围可根据实际应用场景灵活设定。
步骤4,根据所述客户端提交的携带所述事务标识的数据操作,基于所述目标数据分区执行所述数据操作。
本步骤根据所述客户端提交的携带所述事务标识的数据操作,基于所述目标数据分区执行所述数据操作。具体的,本实施例中,可实现对处于同一目标数据分区的多行数据同时进行修改。例如,如附图2所示,业务1可以携带新创建的数据库事务3对应的事务ID对分区键PK0为0下的多行数据进行修改,这些修改放在内存中,并不会立即生效,对其他数据库事务不可见,并且如果服务端所在的机器发生宕机,这些修改会被丢失。
步骤5,根据所述客户端发送的事务指令处理所述数据事务。
本步骤根据所述客户端发送的事务指令处理所述数据事务之前,需执行接收所述客户端发送的针对所述数据库事务进行处理的所述事务指令步骤。基于此,还可以在接收到针对所述数据库事务进行处理的所述事务指令之后,判断所述事务指令对应的数据库事务是否存在,如果存在,则执行本步骤,根据所述客户端发送的事务指令处理所述数据事务;如果不存在,则向所述客户端返回所述事务指令对应的数据库事务不存在的提醒信息。
本申请实施例所述事务指令,包括事务提交指令和事务取消指令,以下针对这两种事务指令分别进行说明:
1)所述客户端发送的事务指令为所述事务提交指令;
本步骤根据所述客户端发送的事务指令处理所述数据事务,具体采用如下方式实现:
将所述数据库事务提交到事务队列;
从所述事务队列中读取数据库事务,创建所述数据库事务对应的事务日志,并将所述数据库事务的数据操作记录在事务日志中;
将所述事务日志存储至预设数据存储空间中。
在实际应用场景中,服务端可能是同时与若干个客户端进行交互,不同的客户端可能在较短的时间内提交不同的数据库事务,这些数据库事务不能同时执行,因此设置事务队列,将所述数据库事务提交到事务队列,按照顺序依次执行数据库事务。具体的,所述事务队列可以是由数据库事务组成的一种线性表,该事务队列根据数据库事务提交的先后顺序将所述数据库事务进行排列,并且按照排列顺序依次读取所述数据库事务。
例如,如附图2所示,当接收到业务1对应的客户端针对数据库事务3发送的事务提交指令之后,将数据库事务3提交至事务队列当中;此后,对事务队列当中的数据库事务进行处理时,从事务队列当中读取数据库事务3,并将数据库事务3的数据操作记录在对应的事务日志中,并最终将事务日志存储在内存当中。
此外,上述针对所述数据库事务的提交操作完成之后,所述数据库事务被销毁,并回收所述数据库事务对应的事务标识,同时,所述数据库事务所对应的分区键实现解锁,即允许其他数据库事务对所述分区键下的数据进行数据操作,保证了数据库事务的隔离性。隔离性是数据库事务针对并发事务间的冲突提供的安全保证,数据库事务可以通过加锁在并发执行的事务间提供不同级别的分离,从而避免操纵相同的共享对象的多个并发事务的执行可能引起异常情况。
2)所述客户端发送的事务指令为所述事务取消指令;
本步骤根据所述客户端发送的事务指令处理所述数据事务,具体采用如下方式实现:
删除所述数据库事务,并回收所述数据库事务对应的事务标识。由于所述数据库事务并未真正执行,所述数据库事务作废,确保数据库事务的原子性。
除此之外,在具体实施时,所述客户端发送的针对所述数据库事务进行处理的事务指令还包括事务回滚指令,在所述数据库事务提交之前对所述数据库事务进行回滚,放弃之前针对所述数据库事务的修改,并终止处理所述数据库事务。
在具体实施时,本申请提供的所述数据事务处理方法,还可以基于云计算环境中部署的分布式数据库平台实现,所述分布式数据库平台设置有用于访问所述分布式数据库(如NoSQL数据库)的数据访问接口,业务对应的客户端想要使用NoSQL数据库进行业务数据处理时,通过调用所述数据访问接口,向所述服务端提交基于NoSQL数据库的分区键申请数据库事务,所述服务端通过所述数据访问接口获取业务对应的客户端提交的基于NoSQL数据库的分区键申请数据库事务并进行相应处理;同时,业务对应的客户端还通过所述数据访问接口向所述服务端提交针对所述数据库事务进行处理的事务指令,所述服务端通过所述数据访问接口获取到所述事务指令,根据所述事务指令对所述数据库事务进行处理。
综上所述,本申请提供的所述数据事务处理方法,对所述客户端在所述分区键下进行数据操作的数据库事务进行处理时,为创建的数据库事务分配事务标识,并将所述事务标识返回给所述客户端,由所述客户端通过提交携带所述事务标识的数据操作在所述分区键下执行数据操作,并最终根据所述客户端发送的事务指令对所述数据库事务进行处理,从而使所述数据操作实现事务属性,满足了数据操作的事务性;同时,所述数据事务处理方法实现数据事务的业务逻辑较为简单,确保数据业务具有良好的事务性。
本申请提供的一种数据事务处理装置实施例如下:
在上述的实施例中,提供了一种数据事务处理方法,与之相对应的,本申请还提供了一种数据事务处理装置,下面结合附图进行说明。
参照附图3,其示出了本申请提供的一种数据事务处理装置实施例的示意图。
由于装置实施例基本相似于方法实施例,所以描述得比较简单,相关的部分请参见上述提供的方法实施例的对应说明即可。下述描述的装置实施例仅仅是示意性的。
本申请提供一种数据事务处理装置,包括:
申请接收单元301,用于接收客户端发送的在目标数据分区进行数据操作的申请请求;
数据事务创建单元302,用于根据所述申请请求创建对应的数据事务,并为所述数据事务分配事务标识;
事务标识返回单元303,用于将分配给所述数据事务的事务标识返回给所述客户端;
数据操作提交执行单元304,用于根据所述客户端提交的携带所述事务标识的数据操作,基于所述目标数据分区执行所述数据操作;
数据事务处理单元305,用于根据所述客户端发送的事务指令处理所述数据事务。
可选的,所述目标数据分区包括:数据库包含的数据表当中的分区键;
相应的,所述数据事务包括:数据库事务。
可选的,所述数据表的主键由数据表中的至少一个主键列组成;
所述分区键包括:所述数据表的第一个主键列组成的单分区键。
可选的,所述事务指令包括:事务提交指令和事务取消指令。
可选的,若所述客户端发送的事务指令为所述事务提交指令,所述数据事务处理单元305,包括:
提交子单元,用于将所述数据库事务提交到事务队列;
事务日志记录子单元,用于从所述事务队列中读取数据库事务,创建所述数据库事务对应的事务日志,并将所述数据库事务的数据操作记录在事务日志中。
可选的,所述数据事务处理单元305,包括:
事务日志存储子单元,用于将所述事务日志存储至预设数据存储空间中。
可选的,所述数据事务处理单元305,包括:
第一事务回收子单元,用于删除所述数据库事务,并回收所述数据库事务对应的事务标识。
可选的,若所述客户端发送的事务指令为所述事务取消指令,所述数据事务处理单元305,包括:
第二事务回收子单元,用于删除所述数据库事务,并回收所述数据库事务的事务标识。
可选的,所述数据事务处理装置,包括:
事务指令接收单元,用于接收所述客户端发送的针对所述数据库事务进行处理的事务指令。
可选的,所述数据事务处理装置,包括:
数据库事务判断单元,用于判断所述事务指令对应的数据库事务是否存在,若不存在,运行提醒信息发送单元;
其中,所述提醒信息发送单元,用于向所述客户端返回所述事务指令对应的数据库事务不存在的提醒信息。
可选的,所述分区键的状态包括下述至少一项:锁定状态和未锁定状态;
若接收到的申请请求为在所述分区键下进行数据操作的申请请求,所述分区键的状态被更新为锁定状态。
可选的,所述数据事务处理装置,包括:
分区键状态判断单元,用于判断所述分区键的状态是否为未锁定状态,若否,运行所述数据事务创建单元302。
可选的,所述数据库包括:通过网络将物理上分散的多个数据存储单元连接组成的逻辑统一的分布式数据库。
可选的,所述数据事务处理装置基于云计算环境中部署的分布式数据库平台运行,所述分布式数据库平台提供用于访问所述分布式数据库的数据访问接口,通过所述数据访问接口接收所述客户端发送的针对所述分布式数据库的分区键进行数据操作的所述申请请求,和/或,通过所述数据访问接口接收所述客户端发送的针对所述数据库事务进行处理的所述事务指令。
本申请提供的另一种数据事务处理方法实施例如下:
在上述的实施例中,提供了一种数据事务处理方法,除此之外,本申请提供另一种数据事务处理方法,与上述数据事务处理方法相互配合,下面结合附图进行说明。
参照附图4,其示出了本申请提供的另一种数据事务处理方法实施例的处理流程图,参照附图2,其示出了本申请提供的一种数据库事务处理场景的示意图。
由于本申请提供的另一种数据事务处理方法与上述数据事务处理方法实施例相互配合,所以描述得比较简单,阅读本实施例请参见上述数据事务处理方法实施例的对应说明。
本申请提供另一种数据事务处理方法,包括:
步骤S401,向服务端发送在目标数据分区进行数据操作的申请请求。
以C/S结构为例,本申请提供的上述数据事务处理方法,基于所述服务端实现,本申请提供的另一种数据事务处理方法,基于客户端实现。与C/S结构相类似,本申请提供的上述数据事务处理方法,还可以基于数据发送方或者数据生产方实现,对应的,本申请提供的另一种数据事务处理方法,还可以基于数据处理方或者数据消费方实现。
所述目标数据分区,是指所述客户端期望操作的数据集合,本实施例中,所述目标数据分区是指分区当中的分区键,所述分区是指数据存储中负载均衡的基本调度单位,通过分区实现数据存储的水平扩展,保证性能和可用性。具体而言,数据库中包含的数据表的主键由数据表中的至少一个主键列组成,所述分区键是指所述数据表的第一个主键列组成的单分区键,在一个分区当中,可能包含多个分区键,并且这些分区键之间不会有重合。除此之外,在具体实施时,所述目标数据分区还可以是所述数据表中所述分区键之外的主键列或者多个主键列的集合,比如所述目标数据分区还可以是所述数据表的第一个主键列之外的其他任意一个主键列组成的单分区键,或者,所述目标数据分区还可以是所述数据表的多个主键列组成的联合分区键,或者所述目标数据分区还可以是多个分区键组成的联合分区键,本实施例对此不作限定。所述数据操作,是指对所述分区键下数据的具体操作,例如增加一行数据、删除一行数据、修改某行或某些行数据中的某个或某些值、读取某个或某些数据等。
本步骤中,客户端向所述服务端发送在所述分区键下进行数据操作的申请请求,即:申请在所述分区键下进行数据操作的数据库事务。
步骤S402,接收所述服务端返回的所述申请请求对应的数据事务的事务标识。
上述步骤S401向所述服务端发送在所述分区键下进行数据操作的申请请求,即:申请在所述分区键下进行数据操作的数据库事务,所述服务端接收到所述申请请求之后,根据所述申请请求创建对应的数据库事务,并为所述数据库事务分配事务标识,并向客户端返回所述事务标识,基于此,本步骤接收所述服务端返回的所述申请请求对应的数据库事务的事务标识。
步骤S403,向所述服务端提交携带所述事务标识的数据操作,用于针对所述目标数据分区执行所述数据操作。
上述步骤S402接收到所述服务端返回的所述申请请求对应的数据库事务的事务标识,客户端在接收到所述事务标识之后,表示所述数据库事务申请成功,在此基础上,本步骤中,向所述服务端提交携带所述事务标识的数据操作,用于在所述分区键下执行所述数据操作。
步骤S404,基于所述事务标识向所述服务端发送针对所述数据事务进行处理的事务指令。
在具体实施时,在上述步骤S403向所述服务端提交携带所述事务标识的数据操作,用于在所述分区键下执行所述数据操作执行之后,本步骤中,基于所述事务标识向所述服务端发送针对所述数据库事务进行处理的事务指令。其中,所述事务指令包括:事务提交指令和事务取消指令。如上所述,所述服务端在接收到针对所述数据库事务进行处理的所述事务指令之后,判断所述事务指令对应的数据库事务是否存在,如果不存在,则向客户端返回所述事务指令对应的数据库事务不存在的提醒信息。因此,在上述向所述服务端发送针对所述数据库事务进行处理的事务指令之后,还包括接收所述服务端返回的所述事务指令对应的数据库事务不存在的提醒信息。
在具体实施时,本申请提供的另一种数据事务处理方法,还可以基于云计算环境中部署的分布式数据库平台实现,所述分布式数据库平台设置有用于访问所述分布式数据库(如NoSQL数据库)的数据访问接口,业务对应的客户端想要使用NoSQL数据库进行业务数据处理时,通过调用所述数据访问接口,向所述服务端提交基于NoSQL数据库的分区键申请数据库事务,所述服务端通过所述数据访问接口获取业务对应的客户端提交的基于NoSQL数据库的分区键申请数据库事务并进行相应处理;同时,业务对应的客户端还通过所述数据访问接口向所述服务端提交针对所述数据库事务进行处理的事务指令,所述服务端通过所述数据访问接口获取到所述事务指令,根据所述事务指令对所述数据库事务进行处理。
本申请提供的另一种数据事务处理装置实施例如下:
在上述的实施例中,提供了另一种数据事务处理方法,与之相对应的,本申请还提供了另一种数据事务处理装置,下面结合附图进行说明。
参照附图5,其示出了本申请提供的另一种数据事务处理装置实施例的示意图。
由于装置实施例基本相似于方法实施例,所以描述得比较简单,相关的部分请参见上述提供的方法实施例的对应说明即可。下述描述的装置实施例仅仅是示意性的。
本申请提供另一种数据事务处理装置,包括:
申请发送单元501,用于向服务端发送在目标数据分区进行数据操作的申请请求;
事务标识接收单元502,用于接收所述服务端返回的所述申请请求对应的数据事务的事务标识;
数据操作提交单元503,用于向所述服务端提交携带所述事务标识的数据操作,用于针对所述目标数据分区执行所述数据操作;
事务指令发送单元504,用于基于所述事务标识向所述服务端发送针对所述数据事务进行处理的事务指令。
可选的,所述目标数据分区包括:数据库包含的数据表当中的分区键;
相应的,所述数据事务包括:数据库事务。
可选的,所述数据表的主键由数据表中的至少一个主键列组成;
所述分区键包括:所述数据表的第一个主键列组成的单分区键。
可选的,所述事务指令包括:事务提交指令和事务取消指令。
可选的,所述数据事务处理装置,包括:
提醒信息接收单元,用于接收所述服务端返回的所述事务指令对应的数据库事务不存在的提醒信息。
本申请提供的一种电子设备实施例如下:
在上述的实施例中,提供了一种数据事务处理方法,此外,本申请还提供了一种用于实现所述数据事务处理方法的电子设备,下面结合附图进行说明。
参照附图6,其示出了本实施例提供的一种电子设备的示意图。
本申请提供的所述电子设备实施例描述得比较简单,相关的部分请参见上述提供的所述数据事务处理方法实施例的对应说明即可。下述描述的实施例仅仅是示意性的。
本申请提供一种电子设备,包括:
存储器601,以及处理器602;
所述存储器601用于存储计算机可执行指令,所述处理器602用于执行所述计算机可执行指令:
接收客户端发送的在目标数据分区进行数据操作的申请请求;
根据所述申请请求创建对应的数据事务,并为所述数据事务分配事务标识;
将分配给所述数据事务的事务标识返回给所述客户端;
根据所述客户端提交的携带所述事务标识的数据操作,基于所述目标数据分区执行所述数据操作;
根据所述客户端发送的事务指令处理所述数据事务。
可选的,所述目标数据分区包括:数据库包含的数据表当中的分区键;
相应的,所述数据事务包括:数据库事务。
可选的,所述数据表的主键由数据表中的至少一个主键列组成;
所述分区键包括:所述数据表的第一个主键列组成的单分区键。
可选的,所述事务指令包括:事务提交指令和事务取消指令。
可选的,若所述客户端发送的事务指令为所述事务提交指令,所述根据所述客户端发送的事务指令处理所述数据事务,采用如下方式实现:
将所述数据库事务提交到事务队列;
从所述事务队列中读取数据库事务,创建所述数据库事务对应的事务日志,并将所述数据库事务的数据操作记录在事务日志中。
可选的,所述从所述事务队列中读取数据库事务,创建所述数据库事务对应的事务日志,并将所述数据库事务的数据操作记录在事务日志中指令执行后,所述处理器602还用于执行下述计算机可执行指令:
将所述事务日志存储至预设数据存储空间中。
可选的,所述将所述事务日志存储至预设数据存储空间中指令执行后,所述处理器602还用于执行下述计算机可执行指令:
删除所述数据库事务,并回收所述数据库事务对应的事务标识。
可选的,若所述客户端发送的事务指令为所述事务取消指令,所述根据所述客户端发送的事务指令处理所述数据事务,采用如下方式实现:
删除所述数据库事务,并回收所述数据库事务的事务标识。
可选的,所述根据所述客户端提交的携带所述事务标识的数据操作,基于所述目标数据分区执行所述数据操作指令执行后,且所述根据所述客户端发送的事务指令处理所述数据事务指令执行前,所述处理器602还用于执行下述计算机可执行指令:
接收所述客户端发送的针对所述数据库事务进行处理的事务指令。
可选的,所述接收所述客户端发送的针对所述数据库事务进行处理的动作指令这一计算机可执行指令执行后,所述处理器602还用于执行下述计算机可执行指令:
判断所述事务指令对应的数据库事务是否存在,若不存在,向所述客户端返回所述事务指令对应的数据库事务不存在的提醒信息。
可选的,所述分区键的状态包括下述至少一项:锁定状态和未锁定状态;
若接收到的申请请求为在所述分区键下进行数据操作的申请请求,所述分区键的状态被更新为锁定状态。
可选的,所述接收客户端发送的在目标数据分区进行数据操作的申请请求指令执行后,且所述根据所述申请请求创建对应的数据事务,并为所述数据事务分配事务标识指令执行前,所述处理器602还用于执行下述计算机可执行指令:
判断所述分区键的状态是否为未锁定状态,若否,执行所述根据所述申请请求创建对应的数据事务,并为所述数据事务分配事务标识指令。
可选的,所述数据库包括:通过网络将物理上分散的多个数据存储单元连接组成的逻辑统一的分布式数据库。
可选的,所述处理器602基于云计算环境中部署的分布式数据库平台执行所述计算机可执行指令,所述分布式数据库平台提供用于访问所述分布式数据库的数据访问接口,通过所述数据访问接口接收所述客户端发送的针对所述分布式数据库的分区键进行数据操作的所述申请请求,和/或,通过所述数据访问接口接收所述客户端发送的针对所述数据库事务进行处理的所述事务指令。
本申请提供的另一种电子设备实施例如下:
在上述的实施例中,提供了另一种数据事务处理方法,此外,本申请还提供了一种用于实现本申请提供的另一种数据事务处理方法的电子设备,下面结合附图进行说明。
参照附图7,其示出了本实施例提供的另一种电子设备的示意图。
本申请提供的所述电子设备实施例描述得比较简单,相关的部分请参见上述提供的另一种数据事务处理方法实施例的对应说明即可。下述描述的实施例仅仅是示意性的。
本申请提供另一种电子设备,包括:
存储器701,以及处理器702;
所述存储器701用于存储计算机可执行指令,所述处理器702用于执行所述计算机可执行指令:
向服务端发送在目标数据分区进行数据操作的申请请求;
接收所述服务端返回的所述申请请求对应的数据事务的事务标识;
向所述服务端提交携带所述事务标识的数据操作,用于针对所述目标数据分区执行所述数据操作;
基于所述事务标识向所述服务端发送针对所述数据事务进行处理的事务指令。
可选的,所述目标数据分区包括:数据库包含的数据表当中的分区键;
相应的,所述数据事务包括:数据库事务。
可选的,所述数据表的主键由数据表中的至少一个主键列组成;
所述分区键包括:所述数据表的第一个主键列组成的单分区键。
可选的,所述事务指令包括:事务提交指令和事务取消指令。
可选的,所述处理器702还用于执行下述计算机可执行指令:
接收所述服务端返回的所述事务指令对应的数据库事务不存在的提醒信息。
本申请虽然以较佳实施例公开如上,但其并不是用来限定本申请,任何本领域技术人员在不脱离本申请的精神和范围内,都可以做出可能的变动和修改,因此本申请的保护范围应当以本申请权利要求所界定的范围为准。
在一个典型的配置中,计算设备包括一个或多个处理器(CPU)、输入/输出接口、网络接口和内存。
内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM)。内存是计算机可读介质的示例。
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括非暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
本领域技术人员应明白,本申请的实施例可提供为方法、***或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
Claims (23)
1.一种数据事务处理方法,其特征在于,包括:
接收客户端发送的在目标数据分区进行数据操作的申请请求;
根据所述申请请求创建对应的数据事务,并为所述数据事务分配事务标识;
将分配给所述数据事务的事务标识返回给所述客户端;
根据所述客户端提交的携带所述事务标识的数据操作,基于所述目标数据分区执行所述数据操作;
根据所述客户端发送的事务指令处理所述数据事务,回收所述事务标识;
其中,所述基于所述目标数据分区执行所述数据操作包括:对处于同一目标数据分区的多行数据进行修改;所述修改放在内存中不立即生效,并且对其他数据事务不可见;
如果服务端所在的机器发生宕机,所述修改会被丢失;或者,当所述客户端发送的所述事务指令包括事务回滚指令,所述修改会被放弃。
2.根据权利要求1所述的数据事务处理方法,其特征在于,所述目标数据分区包括:数据库包含的数据表当中的分区键;
相应的,所述数据事务包括:数据库事务。
3.根据权利要求2所述的数据事务处理方法,其特征在于,所述数据表的主键由数据表中的至少一个主键列组成;
所述分区键包括:所述数据表的第一个主键列组成的单分区键。
4.根据权利要求3所述的数据事务处理方法,其特征在于,所述事务指令包括:
事务提交指令和事务取消指令。
5.根据权利要求4所述的数据事务处理方法,其特征在于,若所述客户端发送的事务指令为所述事务提交指令,所述根据所述客户端发送的事务指令处理所述数据事务,采用如下方式实现:
将所述数据库事务提交到事务队列;
从所述事务队列中读取数据库事务,创建所述数据库事务对应的事务日志,并将所述数据库事务的数据操作记录在事务日志中。
6.根据权利要求5所述的数据事务处理方法,其特征在于,所述从所述事务队列中读取数据库事务,创建所述数据库事务对应的事务日志,并将所述数据库事务的数据操作记录在事务日志中子步骤执行后,执行下述子步骤:
将所述事务日志存储至预设数据存储空间中。
7.根据权利要求6所述的数据事务处理方法,其特征在于,所述将所述事务日志存储至预设数据存储空间中子步骤执行后,执行下述子步骤:
删除所述数据库事务,并回收所述数据库事务对应的事务标识。
8.根据权利要求4所述的数据事务处理方法,其特征在于,若所述客户端发送的事务指令为所述事务取消指令,所述根据所述客户端发送的事务指令处理所述数据事务,采用如下方式实现:
删除所述数据库事务,并回收所述数据库事务的事务标识。
9.根据权利要求3所述的数据事务处理方法,其特征在于,所述根据所述客户端提交的携带所述事务标识的数据操作,基于所述目标数据分区执行所述数据操作步骤执行后,且所述根据所述客户端发送的事务指令处理所述数据事务步骤执行前,执行下述步骤:
接收所述客户端发送的针对所述数据库事务进行处理的事务指令。
10.根据权利要求9所述的数据事务处理方法,其特征在于,所述接收所述客户端发送的针对所述数据库事务进行处理的动作指令步骤执行后,执行下述步骤:
判断所述事务指令对应的数据库事务是否存在,若不存在,向所述客户端返回所述事务指令对应的数据库事务不存在的提醒信息。
11.根据权利要求3所述的数据事务处理方法,其特征在于,所述分区键的状态包括下述至少一项:
锁定状态和未锁定状态;
若接收到的申请请求为在所述分区键下进行数据操作的申请请求,所述分区键的状态被更新为锁定状态。
12.根据权利要求11所述的数据事务处理方法,其特征在于,所述接收客户端发送的在目标数据分区进行数据操作的申请请求步骤执行后,且所述根据所述申请请求创建对应的数据事务,并为所述数据事务分配事务标识步骤执行前,执行下述步骤:
判断所述分区键的状态是否为未锁定状态,若否,执行所述根据所述申请请求创建对应的数据事务,并为所述数据事务分配事务标识步骤。
13.根据权利要求3至12任意一项所述的数据事务处理方法,其特征在于,所述数据库包括:
通过网络将物理上分散的多个数据存储单元连接组成的逻辑统一的分布式数据库。
14.根据权利要求13所述的数据事务处理方法,其特征在于,所述数据事务处理方法基于云计算环境中部署的分布式数据库平台实现,所述分布式数据库平台提供用于访问所述分布式数据库的数据访问接口,通过所述数据访问接口接收所述客户端发送的针对所述分布式数据库的分区键进行数据操作的所述申请请求,和/或,通过所述数据访问接口接收所述客户端发送的针对所述数据库事务进行处理的所述事务指令。
15.一种数据事务处理装置,其特征在于,包括:
申请接收单元,用于接收客户端发送的在目标数据分区进行数据操作的申请请求;
数据事务创建单元,用于根据所述申请请求创建对应的数据事务,并为所述数据事务分配事务标识;
事务标识返回单元,用于将分配给所述数据事务的事务标识返回给所述客户端;
数据操作提交执行单元,用于根据所述客户端提交的携带所述事务标识的数据操作,基于所述目标数据分区执行所述数据操作;
数据事务处理单元,用于根据所述客户端发送的事务指令处理所述数据事务;
第一事务回收子单元和第二事务回收子单元,用于回收所述事务标识;
其中,所述基于所述目标数据分区执行所述数据操作包括:对处于同一目标数据分区的多行数据进行修改;所述修改放在内存中不立即生效,并且对其他数据事务不可见;
如果服务端所在的机器发生宕机,所述修改会被丢失;或者,当所述客户端发送的所述事务指令包括事务回滚指令,所述修改会被放弃。
16.一种数据事务处理方法,其特征在于,包括:
向服务端发送在目标数据分区进行数据操作的申请请求;
接收所述服务端返回的所述申请请求对应的数据事务的事务标识;
向所述服务端提交携带所述事务标识的数据操作,用于针对所述目标数据分区执行所述数据操作;
基于所述事务标识向所述服务端发送针对所述数据事务进行处理的事务指令;以使所述服务端根据所述发送的事务指令处理所述数据事务,回收所述事务标识;
其中,所述针对所述目标数据分区执行所述数据操作包括:对处于同一目标数据分区的多行数据进行修改;所述修改放在内存中不立即生效,并且对其他数据事务不可见;
如果服务端所在的机器发生宕机,所述修改会被丢失;或者,当客户端发送的所述事务指令包括事务回滚指令,所述修改会被放弃。
17.根据权利要求16所述的数据事务处理方法,其特征在于,所述目标数据分区包括:数据库包含的数据表当中的分区键;
相应的,所述数据事务包括:数据库事务。
18.根据权利要求17所述的数据事务处理方法,其特征在于,所述数据表的主键由数据表中的至少一个主键列组成;
所述分区键包括:所述数据表的第一个主键列组成的单分区键。
19.根据权利要求18所述的数据事务处理方法,其特征在于,所述事务指令包括:事务提交指令和事务取消指令。
20.根据权利要求19所述的数据事务处理方法,其特征在于,包括:
接收所述服务端返回的所述事务指令对应的数据库事务不存在的提醒信息。
21.一种数据事务处理装置,其特征在于,包括:
申请发送单元,用于向服务端发送在目标数据分区进行数据操作的申请请求;
事务标识接收单元,用于接收所述服务端返回的所述申请请求对应的数据事务的事务标识;
数据操作提交单元,用于向所述服务端提交携带所述事务标识的数据操作,用于针对所述目标数据分区执行所述数据操作;
事务指令发送单元,用于基于所述事务标识向所述服务端发送针对所述数据事务进行处理的事务指令;以使所述服务端根据所述发送的事务指令处理所述数据事务,回收所述事务标识;
其中,所述针对所述目标数据分区执行所述数据操作包括:对处于同一目标数据分区的多行数据进行修改;所述修改放在内存中不立即生效,并且对其他数据事务不可见;
如果服务端所在的机器发生宕机,所述修改会被丢失;或者,当客户端发送的所述事务指令包括事务回滚指令,所述修改会被放弃。
22.一种电子设备,其特征在于,包括:
存储器,以及处理器;
所述存储器用于存储计算机可执行指令,所述处理器用于执行所述计算机可执行指令:
接收客户端发送的在目标数据分区进行数据操作的申请请求;
根据所述申请请求创建对应的数据事务,并为所述数据事务分配事务标识;
将分配给所述数据事务的事务标识返回给所述客户端;
根据所述客户端提交的携带所述事务标识的数据操作,基于所述目标数据分区执行所述数据操作;
根据所述客户端发送的事务指令处理所述数据事务,回收所述事务标识;
其中,所述基于所述目标数据分区执行所述数据操作包括:对处于同一目标数据分区的多行数据进行修改;所述修改放在内存中不立即生效,并且对其他数据事务不可见;
如果服务端所在的机器发生宕机,所述修改会被丢失;或者,当所述客户端发送的所述事务指令包括事务回滚指令,所述修改会被放弃。
23.一种电子设备,其特征在于,包括:
存储器,以及处理器;
所述存储器用于存储计算机可执行指令,所述处理器用于执行所述计算机可执行指令:
向服务端发送在目标数据分区进行数据操作的申请请求;
接收所述服务端返回的所述申请请求对应的数据事务的事务标识;
向所述服务端提交携带所述事务标识的数据操作,用于针对所述目标数据分区执行所述数据操作;
基于所述事务标识向所述服务端发送针对所述数据事务进行处理的事务指令;以使所述服务端根据所述发送的事务指令处理所述数据事务,回收所述事务标识;
其中,所述针对所述目标数据分区执行所述数据操作包括:对处于同一目标数据分区的多行数据进行修改;所述修改放在内存中不立即生效,并且对其他数据事务不可见;
如果服务端所在的机器发生宕机,所述修改会被丢失;或者,当客户端发送的所述事务指令包括事务回滚指令,所述修改会被放弃。
Priority Applications (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710738319.8A CN110019112B (zh) | 2017-08-25 | 2017-08-25 | 数据事务处理方法、装置以及电子设备 |
EP18847869.7A EP3674909A4 (en) | 2017-08-25 | 2018-08-14 | DATA TRANSACTION PROCESSING METHOD, DEVICE AND ELECTRONIC DEVICE |
PCT/CN2018/100419 WO2019037617A1 (zh) | 2017-08-25 | 2018-08-14 | 数据事务处理方法、装置以及电子设备 |
US16/789,313 US11709803B2 (en) | 2017-08-25 | 2020-02-12 | Data transaction processing method, apparatus, and electronic device |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710738319.8A CN110019112B (zh) | 2017-08-25 | 2017-08-25 | 数据事务处理方法、装置以及电子设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110019112A CN110019112A (zh) | 2019-07-16 |
CN110019112B true CN110019112B (zh) | 2023-10-31 |
Family
ID=65438400
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710738319.8A Active CN110019112B (zh) | 2017-08-25 | 2017-08-25 | 数据事务处理方法、装置以及电子设备 |
Country Status (4)
Country | Link |
---|---|
US (1) | US11709803B2 (zh) |
EP (1) | EP3674909A4 (zh) |
CN (1) | CN110019112B (zh) |
WO (1) | WO2019037617A1 (zh) |
Families Citing this family (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8565689B1 (en) | 2012-06-13 | 2013-10-22 | All Purpose Networks LLC | Optimized broadband wireless network performance through base station application server |
CN110019112B (zh) * | 2017-08-25 | 2023-10-31 | 阿里巴巴集团控股有限公司 | 数据事务处理方法、装置以及电子设备 |
EP3707684A4 (en) * | 2017-11-06 | 2021-08-04 | Velo Holdings Limited | LIMITED REACH BLOCK CHAIN SYSTEM |
CN110471746B (zh) * | 2019-08-22 | 2022-04-19 | 中国工商银行股份有限公司 | 一种分布式事务回调方法、装置及*** |
CN111402066B (zh) * | 2020-02-22 | 2023-06-23 | 中国平安财产保险股份有限公司 | 数据处理方法、服务器及存储介质 |
US12001408B2 (en) * | 2020-04-29 | 2024-06-04 | Oracle International Corporation | Techniques for efficient migration of key-value data |
CN113297320B (zh) * | 2020-07-24 | 2024-05-14 | 阿里巴巴集团控股有限公司 | 分布式数据库***及数据处理方法 |
CN113760465A (zh) * | 2020-11-16 | 2021-12-07 | 北京沃东天骏信息技术有限公司 | 一种事务执行方法、装置、服务器、设备和存储介质 |
CN114579604B (zh) * | 2022-03-15 | 2022-09-20 | 北京梦诚科技有限公司 | 一种应用层的数据库事务实现方法和*** |
CN115729951B (zh) * | 2022-11-28 | 2024-02-09 | 易保网络技术(上海)有限公司 | 数据查询方法、***、设备及计算机可读存储介质 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6618851B1 (en) * | 1999-08-31 | 2003-09-09 | Autodesk, Inc. | Method and apparatus for state-reversion |
CN101089857A (zh) * | 2007-07-24 | 2007-12-19 | 中兴通讯股份有限公司 | 一种内存数据库事务管理方法及*** |
CN104508663A (zh) * | 2012-07-27 | 2015-04-08 | 微软公司 | 会话失败后的自动事务重试 |
CN105723679A (zh) * | 2013-11-11 | 2016-06-29 | 亚马逊科技公司 | 用于数据流的客户端可配置安全选项 |
Family Cites Families (20)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6816873B2 (en) | 2001-05-15 | 2004-11-09 | International Business Machines Corporation | Method for managing distributed savepoints across multiple DBMS's within a distributed transaction |
US20080126346A1 (en) * | 2006-11-29 | 2008-05-29 | Siemens Medical Solutions Usa, Inc. | Electronic Data Transaction Processing Test and Validation System |
US7904434B2 (en) | 2007-09-14 | 2011-03-08 | Oracle International Corporation | Framework for handling business transactions |
CN101639835A (zh) * | 2008-07-30 | 2010-02-03 | 国际商业机器公司 | 多租户场景中应用数据库分区的方法和装置 |
GB2472620B (en) * | 2009-08-12 | 2016-05-18 | Cloudtran Inc | Distributed transaction processing |
US20110161281A1 (en) | 2009-12-30 | 2011-06-30 | Sybase, Inc. | Distributed Transaction Management in a Distributed Shared Disk Cluster Environment |
US8352688B2 (en) * | 2010-11-15 | 2013-01-08 | Advanced Micro Devices, Inc. | Preventing unintended loss of transactional data in hardware transactional memory systems |
US8442962B2 (en) | 2010-12-28 | 2013-05-14 | Sap Ag | Distributed transaction management using two-phase commit optimization |
JP2013033345A (ja) | 2011-08-01 | 2013-02-14 | Internatl Business Mach Corp <Ibm> | トランザクション処理システム、方法及びプログラム |
US9613122B2 (en) | 2014-05-02 | 2017-04-04 | Facebook, Inc. | Providing eventual consistency for multi-shard transactions |
CN105608086B (zh) | 2014-11-17 | 2021-07-27 | 中兴通讯股份有限公司 | 分布式数据库***的事务处理方法及装置 |
US9736243B2 (en) * | 2014-12-12 | 2017-08-15 | Microsoft Technology Licensing, Llc | Multiple transaction logs in a distributed storage system |
CN104731943B (zh) * | 2015-03-31 | 2019-09-13 | 华为技术有限公司 | 一种服务器和数据处理方法 |
US10268743B2 (en) | 2015-06-19 | 2019-04-23 | Sap Se | Distributed database transaction protocol |
US10339127B2 (en) | 2016-01-28 | 2019-07-02 | Oracle International Corporation | Guaranteed commit outcome in a distributed transaction processing system |
CN107977376B (zh) | 2016-10-24 | 2020-07-07 | 腾讯科技(深圳)有限公司 | 分布式数据库***及事务处理方法 |
US11113624B2 (en) * | 2017-07-12 | 2021-09-07 | Sap Se | Distributed machine learning on heterogeneous data platforms |
CN110019112B (zh) * | 2017-08-25 | 2023-10-31 | 阿里巴巴集团控股有限公司 | 数据事务处理方法、装置以及电子设备 |
CN110019994A (zh) * | 2017-11-13 | 2019-07-16 | 阿里巴巴集团控股有限公司 | 数据加密、解密及查询方法、数据加密解密及查询装置 |
US11061735B2 (en) * | 2019-01-02 | 2021-07-13 | Alibaba Group Holding Limited | System and method for offloading computation to storage nodes in distributed system |
-
2017
- 2017-08-25 CN CN201710738319.8A patent/CN110019112B/zh active Active
-
2018
- 2018-08-14 WO PCT/CN2018/100419 patent/WO2019037617A1/zh unknown
- 2018-08-14 EP EP18847869.7A patent/EP3674909A4/en active Pending
-
2020
- 2020-02-12 US US16/789,313 patent/US11709803B2/en active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6618851B1 (en) * | 1999-08-31 | 2003-09-09 | Autodesk, Inc. | Method and apparatus for state-reversion |
CN101089857A (zh) * | 2007-07-24 | 2007-12-19 | 中兴通讯股份有限公司 | 一种内存数据库事务管理方法及*** |
CN104508663A (zh) * | 2012-07-27 | 2015-04-08 | 微软公司 | 会话失败后的自动事务重试 |
CN105723679A (zh) * | 2013-11-11 | 2016-06-29 | 亚马逊科技公司 | 用于数据流的客户端可配置安全选项 |
Also Published As
Publication number | Publication date |
---|---|
US20200183892A1 (en) | 2020-06-11 |
EP3674909A4 (en) | 2021-04-21 |
EP3674909A1 (en) | 2020-07-01 |
WO2019037617A1 (zh) | 2019-02-28 |
CN110019112A (zh) | 2019-07-16 |
US11709803B2 (en) | 2023-07-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110019112B (zh) | 数据事务处理方法、装置以及电子设备 | |
US10503720B2 (en) | Providing eventual consistency for multi-shard transactions | |
US11093468B1 (en) | Advanced metadata management | |
US7716181B2 (en) | Methods, apparatus and computer programs for data replication comprising a batch of descriptions of data changes | |
US9990225B2 (en) | Relaxing transaction serializability with statement-based data replication | |
JP5241722B2 (ja) | 要求処理のデータ処理システムおよび方法 | |
CN106462631B (zh) | 在最终一致***中分区数据的一致视图 | |
CN110968586A (zh) | 分布式事务处理方法及装置 | |
US20100169289A1 (en) | Two Phase Commit With Grid Elements | |
CN107408132B (zh) | 跨越多个类型的存储器移动分层数据对象的方法和*** | |
US5682507A (en) | Plurality of servers having identical customer information control procedure functions using temporary storage file of a predetermined server for centrally storing temporary data records | |
US11157456B2 (en) | Replication of data in a distributed file system using an arbiter | |
US9703788B1 (en) | Distributed metadata in a high performance computing environment | |
CA2176905A1 (en) | Customer information control system and method with api start and cancel transaction functions in a loosely coupled parallel processing environment | |
US20200387412A1 (en) | Method To Manage Database | |
US20110191549A1 (en) | Data Array Manipulation | |
CN110659303A (zh) | 一种数据库节点的读写控制方法及装置 | |
US9256648B2 (en) | Data handling in a cloud computing environment | |
US20150026126A1 (en) | Method of replicating data in asymmetric file system | |
US20160357780A1 (en) | Hierarchical file block variant tracker apparatus coupled to a Librarian and to a remote file service | |
CN117076147B (zh) | 死锁检测方法、装置、设备和存储介质 | |
US11269736B2 (en) | Method to manage database failure | |
US7647295B2 (en) | Method, apparatus, computer program, and computer program product for managing the durability of a pluraliy of transactions | |
US20190220445A1 (en) | hierarchical file block variant tracking for performance in parallelism at multi-disk arrays | |
CN116841700A (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 | ||
REG | Reference to a national code |
Ref country code: HK Ref legal event code: DE Ref document number: 40010805 Country of ref document: HK |
|
GR01 | Patent grant | ||
GR01 | Patent grant |