CN105893386A - 用于在同步复制系统中处理事务的方法和装置 - Google Patents
用于在同步复制系统中处理事务的方法和装置 Download PDFInfo
- Publication number
- CN105893386A CN105893386A CN201510004778.4A CN201510004778A CN105893386A CN 105893386 A CN105893386 A CN 105893386A CN 201510004778 A CN201510004778 A CN 201510004778A CN 105893386 A CN105893386 A CN 105893386A
- Authority
- CN
- China
- Prior art keywords
- affairs
- marked
- synchronization replication
- daily record
- submission
- 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.)
- Granted
Links
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/27—Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
- G06F16/275—Synchronous replication
-
- 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/1865—Transactional 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/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/23—Updating
- G06F16/2358—Change logging, detection, and notification
-
- 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/2365—Ensuring data consistency and integrity
-
- 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/2379—Updates performed during online database operations; commit processing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/245—Query processing
- G06F16/2453—Query optimisation
- G06F16/24534—Query rewriting; Transformation
- G06F16/24539—Query rewriting; Transformation using cached or materialised query results
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/245—Query processing
- G06F16/2455—Query execution
- G06F16/24552—Database cache management
-
- 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
- G06F16/273—Asynchronous replication or reconciliation
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- Computing Systems (AREA)
- Computational Linguistics (AREA)
- Computer Security & Cryptography (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Software Systems (AREA)
Abstract
本发明的实施方式提供了一种用于在同步复制系统中处理事务的方法和装置。该方法包括在所述同步复制系统的源站点处执行如下步骤:将所述同步复制系统中的事务提交串行化,以使得在同一时间仅有一个事务能够被提交;响应于发起对事务的提交,针对在所述同步复制系统中进行的每个事务生成日志,以记录相应事务的所有操作对所述同步复制系统的影响;对已生成日志的事务作标记;以及完成对已被作标记的事务的提交。本发明的实施方式通过为事务的操作记录日志来保持事务的“原子性”,从而解决了应用层面不一致问题。
Description
技术领域
本发明的各实施方式涉及失效切换(failover)领域,并且更具体地,涉及在同步复制系统中处理事务的方法和装置。
背景技术
随着计算机技术的高速发展,存储技术也逐渐变为研究的热点之一。存储领域中面临的一个重要问题是如何对资源进行失效切换。概括地说,术语“失效切换”涉及在一台系统失效、例如发生故障或掉电从而不能对外提供服务时,切换到备份存储系统,由该备份存储系统接管相应功能从而对外提供服务。
为了实现精细粒度的失效切换,通常在源存储系统和备份存储系统之间执行数据的同步复制,即在源存储系统处对数据的任何改动在备份存储系统处能够实时地发生,使得两侧的数据尽可能的保持一致。此外,由于块层面的同步复制比文件系统层面的同步复制更易于实现,因此在“失效切换”时往往采用块层面的同步复制。
然而,在存储系统包括诸如数据库之类的基于事务机制来组织、存储和管理的数据集合的情况下,“失效切换”可能恰好发生于在源存储系统处进行事务提交期间。在这种情况下,备份存储系统处的被复制的数据集合(例如数据库表)的一部分包含事务处理之后的数据,而另一部分包含事务处理之前的数据,从而使得被复制的数据库被置于不一致状态。由此,备份存储系统将无法接管源存储系统的相应功能以对外提供服务。
发明内容
鉴于上述以及其他潜在问题,本发明的各实施方式提出了一种能够在同步复制系统中保持事务“原子性”的方案。
根据本发明实施方式的第一方面,提供了一种用于在同步复制系统中处理事务的方法。该方法包括在所述同步复制系统的源站点处:将所述同步复制系统中的事务提交串行化,以使得在同一时间仅有一个事务能够被提交;响应于发起对事务的提交,针对在所述同步复制系统中进行的每个事务生成日志,以记录相应事务的所有操作对所述同步复制系统的影响;对已生成日志的事务作标记;以及完成对已被作标记的事务的提交。
在一个实施方式中,将所述同步复制系统中的事务提交串行化,以使得在同一时间仅有一个事务能够被提交包括:使得在同一时间仅有一个事务能够获得提交锁。
在一个实施方式中,所述方法进一步包括:响应于所述源站点失效而发起向所述同步复制系统中的目标站点的切换;其中,在所述源站点和所述目标站点之间实现数据的同步复制。
在一个实施方式中,所述方法进一步包括:在所述目标站点处,确定未完成提交的事务是否已被作标记;响应于确定所述事务已被作标记,以针对所述事务生成的日志的内容来更新从所述源站点同步复制到所述目标站点的、与所述事务关联的数据。
在一个实施方式中,所述方法进一步包括:在所述目标站点处,确定未完成提交的事务是否已被作标记;响应于确定所述事务未被作标记,信任从所述源站点同步复制到所述目标站点的、与所述事务关联的数据。
在一个实施方式中,所述方法进一步包括:移除针对所述事务所生成的日志。
在一个实施方式中,对已生成日志的事务作标记包括针对已生成日志的事务创建标记文件。
根据本发明实施方式的第二方面,提供了一种用于在同步复制系统中处理事务的装置。该装置包括布置在所述同步复制系统的源站点处的:串行化单元,被配置为将所述同步复制系统中的事务提交串行化,以使得在同一时间仅有一个事务能够被提交;日志生成单元,被配置为响应于发起对事务的提交,针对在所述同步复制系统中进行的每个事务生成日志,以记录相应事务的所有操作对所述同步复制系统的影响;标记单元,被配置为对已生成日志的事务作标记;以及提交完成单元,被配置为完成对已被作标记的事务的提交。
根据本发明实施方式的第三方面,提供了一种计算机程序产品,其包括计算机可读介质。所述计算机可读介质承载在其中体现的用于与计算机一起使用的计算机程序代码,所述计算机程序代码包括:用于将所述同步复制系统中的事务提交串行化,以使得在同一时间仅有一个事务能够被提交的代码;用于响应于发起对事务的提交,针对在所述同步复制系统中进行的每个事务生成日志,以记录相应事务的所有操作对所述同步复制系统的影响的代码;用于对已生成日志的事务作标记的代码;以及用于完成对已被作标记的事务的提交的代码。
本发明的实施方式通过为事务的操作记录日志来保持事务的“原子性”,从而解决了应用层面不一致问题。
附图说明
结合附图并参考以下详细说明,本发明各实施方式的特征、优点及其他方面将变得更加明显,在此以示例性而非限制性的方式示出了本发明的若干实施方式。在附图中:
图1示出了根据本发明一个实施方式的用于在同步复制系统中处理事务的方法100的流程图;
图2示出了根据本发明一个实施方式的用于在同步复制系统中处理事务的装置200的示意性框图;以及
图3示出了适于用来实践本发明实施方式的计算机系统300的示意性框图。
具体实施方式
下面参考附图详细描述本发明的各实施方式。附图中的流程图和框图,图示了按照本发明各种实施方式的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,所述模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为备选的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
在本文中,同步复制系统例如可以包括位于源站点处的源存储系统和位于目标站点处的备份存储系统,并且在源存储系统和备份存储系统之间实现数据的同步复制,例如块层面的同步复制。在源存储系统失效、例如发生故障或掉电从而不能为用户提供服务时,切换到备份存储系统,由该备份存储系统接管相应功能从而为用户提供服务。
源存储系统和备份存储系统通常包括基于事务机制来组织、存储和管理的数据集合,例如数据库等。如本领域技术人员已知的,“事务”是指作为单个逻辑工作单元执行的一系列相关操作。设想以下网上购物场景。网上购物的付款过程至少包括以下操作:
·更新客户所购商品的库存信息;
·保存客户付款信息——可能包括与银行系统的交互;
·生成订单并且保存到数据库中;
·更新客户相关信息,例如购物数量等等。
在正常情况下,以上操作将顺利进行,最终交易成功,与交易相关的所有数据库信息也成功地更新。但是,如果在这一系列称作中任何一个环节出现差错,例如在更新商品库存信息时发生异常、该客户银行帐户存款不足等,都将导致交易失败。一旦交易失败,数据库中所有信息都必须保持交易前的状态不变。例如,如果最后一步更新客户信息时失败而导致交易失败,那么必须保证这笔失败的交易不影响数据库的状态——库存信息没有被更新、客户也没有付款,订单也没有生成。否则,数据库的信息将会一片混乱而不可预测。
从上述示例性场景可知,事务必须是原子工作单元,对于其数据修改,要么全部执行,要么全部不执行,这一点被称作事务的“原子性”。通常,与某个事务关联的操作具有共同的目标,并且是相互依赖的。如果只执行这些操作的一个子集,则可能会破坏事务的总体目标。因此,在基于事务机制来组织、存储和管理的数据集合中保持事务的“原子性”是至关重要的。
如前所述,从源存储系统向备份存储系统的“失效切换”可能恰好发生于在源存储系统处进行事务提交期间。在这种情况下,备份存储系统处的被复制的数据集合中的一部分包含事务处理之后的数据,而另一部分可能包含事务处理之前的数据,从而使得被复制的数据集合被置于不一致状态。这种不一致通常被称作“应用层面的不一致”。本发明的实施方式提供了一种通过为事务的操作记录日志来保持事务的“原子性”,以解决这种应用层面的不一致。
图1示出了根据本发明一个实施方式的用于在同步复制系统中处理事务的方法100的流程图。首先,在步骤S110,在源站点处,将同步复制系统中的事务提交串行化,以使得在同一时间仅有一个事务能够被提交。应当注意的是,这里所称的“源站点”是相对于后文的“目标站点”而言的,其主要指代原本用来为用户提供服务的站点。同步复制系统中当前为用户提供服务的站点也被称为“活跃(active)站点”。当“源站点”为用户提供服务时,“源站点”为同步复制系统中的活跃站点。在源站点失效时,可以发起向目标站点的切换,由目标站点接管源站点的相应功能从而继续为用户提供服务。在这种情况下,“目标站点”成为同步复制系统中的活跃站点。
在一个示例性实施方式中,将同步复制系统中的事务提交串行化,以使得在同一时间仅有一个事务能够被提交可以通过以下方式来实现:按照预定的顺序(例如优先级顺序)为待提交的事务排序,按序提供提交锁(commit lock),使得在同一时间仅有一个事务能够获得提交锁,获得提交锁的事务处理完成时释放该提交锁。应当理解,上面的示例仅仅是出于说明目的,在实现中可以采用任何其他方式而使得在同一时间仅有一个事务能够被提交。
可以理解,目前对于基于事务机制来组织、存储和管理的数据集合,例如数据库而言,可能存在多个并发进行的事务。在每个事务的操作完成时,将发起对该事务的提交,每个被提交的事务都将获得提交锁,从而事务的提交可以并行地进行。然而,在本发明的实施方式中,将事务提交串行化,以使得在同一时间仅有一个事务能够被提交,被提交的事务将获得提交锁。该提交锁对于同步复制系统中的活跃站点而言是全局的(global),因而也被称为“全局提交锁”。例如,在源站点作为同步复制系统中的活跃站点的情况下,该提交锁对于源站点而言是全局的;而在目标站点作为同步复制系统中的活跃站点的情况下,该提交锁对于目标站点而言是全局的。这一设计出于以下考虑:提交操作的持续时间往往较短,并且较不频繁,因此可以将提交锁从每个事务一个锁变更为全局提交锁。
然后,在步骤S120,响应于发起对事务的提交,针对在同步复制系统中进行的每个事务生成日志,以记录相应事务的所有操作对同步复制系统的影响。通过该步骤,事务的所有操作对同步复制系统的数据所作的改动均被保存在日志中。在实现中,所述日志可以以日志文件、例如.bak文件的形式存在。
接下来,在步骤S130,对已生成日志的事务作标记。在一个实施例中,对已生成日志的事务作标记包括针对已生成日志的事务创建标记文件。在另一个实施例中,对已生成日志的事务作标记包括在数据库表中添加与相应事务相关联的标记。
随后,在步骤S140,完成对已被作标记的事务的提交。由此,该事务的操作所涉及的改动被应用到同步复制系统中的数据集合,以更新该数据集合。
另外,方法100可以可选地包括在完成对事务的提交之后移除对该事务所作的标记,例如移除标记文件。
此外,可以理解,以上步骤S110至S140均是在同步复制系统中的源站点处执行的。在源站点失效时,可以发起向目标站点的切换,由目标站点接管源站点的相应功能从而继续为用户提供服务。响应于发起向目标站点的切换,在目标站点处可执行如下操作。首先,确定未完成提交的事务是否已被作标记。在确定未完成提交的事务已被作标记的情况下,在目标站点处信任针对该事务生成的目志的内容,从而以针对该事务生成的日志的内容来更新从源站点同步复制到目标站点的、与该事务关联的数据。在执行更新之后,可以移除针对该事务生成的日志的内容。
另一方面,在如下情况之一下,未完成提交的事务是没有被作标记的:
(1)在该事务的操作所涉及的数据尚在内存中时,源站点失效而发起向目标站点的切换;
(2)在针对该事务生成日志期间源站点失效而发起向目标站点的切换;
(3)在已针对该事务生成日志、但是还未对该事务作标记时,源站点失效而发起向目标站点的切换;
(4)在源站点处已经利用针对该事务生成的日志的内容来更新了与该事务关联的数据时,源站点失效而发起向目标站点的切换;
在确定未完成提交的事务没有被作标记的情况下,信任从源站点同步复制到目标站点的、与该事务关联的数据。可以理解,在上述情况(4)下,在目标站点处可能存在针对该事务生成的日志的内容。此时由于该事务没有被作标记,因此不信任日志的内容,而是移除日志的内容。
在上述方法100中,为事务的操作生成日志,从将事务的所有操作对同步复制系统的数据所作的任何改动均被保存在日志中。随后,对已生成日志的事务作标记。在切换到目标站点时,如果确定存在对事务所作的标记,则信任针对事务所生成的日志的内容,否则信任已被复制到目标站点侧的数据集合的内容,由此解决了实施同步复制的系统中发生失效切换时数据集合的内容不一致的问题。
作为一个示例性实施例,同步复制系统的源站点和目标站点可以以虚拟数据移动器(Virtual Data Mover,VDM)的形式存在。VDM通常包括数据LUN(Logical Unit Number,逻辑单元号)和控制LUN。数据存储于数据LUN上,而元数据存储于控制LUN上。在控制LUN上,元数据通常以NAS数据库(Network Attached Storage Database)的形式来组织、管理和存储。NAS数据库是基于事务机制的文本数据库。为了保持源VDM和目标VDM上的数据尽可能一致,在源VDM和目标VDM之间通常实施块层面的数据同步复制。在这种情况下,在从源VDM向目标VDM失效切换时,由于无法保持针对NAS数据库的事务的原子性,经常会出现在失效切换后,一些NAS数据库表包含事务之后的数据,而另一些NAS数据库表包含事务之前的数据,导致NAS数据库不一致。上述方法100也能够适用于保持NAS数据库事务的原子性,以解决这种NAS数据库不一致问题。然而,应当理解,本发明的方法可以应用于各种类型的基于事务机制的数据组织形式,而不局限于数据库。
本发明的实施方式还提供了一种用于在同步复制系统中处理事务的装置。图2示出了根据本发明一个实施方式的用于在同步复制系统中处理事务的装置200的框图。
如图2所示,装置200包括布置在所述同步复制系统的源站点处的:串行化单元210,被配置为将所述同步复制系统中的事务提交串行化,以使得在同一时间仅有一个事务能够被提交;日志生成单元220,被配置为响应于发起对事务的提交,针对在所述同步复制系统中进行的每个事务生成日志,以记录相应事务的所有操作对所述同步复制系统的影响;标记单元230,被配置为对已生成日志的事务作标记;以及提交完成单元240,被配置为完成对已被作标记的事务的提交。
在一个实施方式中,串行化单元210被进一步配置为使得在同一时间仅有一个事务能够获得提交锁。
在一个实施方式中,装置200进一步包括:切换单元,被配置为响应于所述源站点失效而发起向所述同步复制系统中的目标站点的切换;其中,在所述源站点和所述目标站点之间实现数据的同步复制。
在一个实施方式中,装置200进一步包括:检查单元,被配置为在所述目标站点处,确定未完成提交的事务是否已被作标记;确定单元,被配置为响应于确定所述事务已被作标记,以针对所述事务生成的目志的内容来更新从所述源站点同步复制到所述目标站点的、与所述事务关联的数据。
在一个实施方式中,装置200进一步包括:检查单元,被配置为在所述目标站点处,确定未完成提交的事务是否已被作标记;确定单元,被配置为响应于确定所述事务未被作标记,信任从所述源站点同步复制到所述目标站点的、与所述事务关联的数据。
在一个实施方式中,装置200进一步包括:移除单元,被配置为移除针对所述事务所生成的日志。
在一个实施方式中,标记单元230被进一步配置为针对已生成日志的事务创建标记文件。
本发明的实施方式还提供了一种计算机程序产品,其包括计算机可读介质。所述计算机可读介质承载在其中体现的用于与计算机一起使用的计算机程序代码。所述计算机程序代码包括:用于将所述同步复制系统中的事务提交串行化,以使得在同一时间仅有一个事务能够被提交的代码;用于响应于发起对事务的提交,针对在所述同步复制系统中进行的每个事务生成日志,以记录相应事务的所有操作对所述同步复制系统的影响的代码;用于对已生成日志的事务作标记的代码;以及用于完成对已被作标记的事务的提交的代码。
下面参考图3,其示出了适于用来实践本发明实施方式的计算机系统300的示意性框图。例如,图3所示的计算机系统300可以用于实现如上文描述的用于加速磁盘阵列的数据重构装置1800。
如图3所示,计算机系统300可以包括:CPU(中央处理单元)301、RAM(随机存取存储器)302、ROM(只读存储器)303、系统总线304、硬盘控制器305、键盘控制器306、串行接口控制器307、并行接口控制器308、显示控制器309、硬盘310、键盘311、串行外部设备312、并行外部设备313和显示器314。在这些设备中,与系统总线304耦合的有CPU 301、RAM 302、ROM 303、硬盘控制器305、键盘控制器306、串行控制器307、并行控制器308和显示控制器309。硬盘310与硬盘控制器305耦合,键盘311与键盘控制器306耦合,串行外部设备312与串行接口控制器307耦合,并行外部设备313与并行接口控制器308耦合,以及显示器314与显示控制器309耦合。应当理解,图3所述的结构框图仅仅为了示例的目的而示出的,而不是对本发明范围的限制。在某些情况下,可以根据具体情况而增加或者减少某些设备。
如上所述,装置200可以实现为纯硬件,例如芯片、ASIC、SOC等。这些硬件可以集成在计算机系统300中。此外,本发明的实施方式也可以通过计算机程序产品的形式实现。例如,参考图1描述的方法100可以通过计算机程序产品来实现。该计算机程序产品可以存储在例如图3所示的RAM 302、ROM 303、硬盘310和/或任何适当的存储介质中,或者通过网络从适当的位置下载到计算机系统300上。计算机程序产品可以包括计算机代码部分,其包括可由适当的处理设备(例如,图3中示出的CPU 301)执行的程序指令。所述程序指令至少可以包括用于实现方法100的步骤的指令。
应当注意,本发明的实施方式可以通过硬件、软件或者软件和硬件的结合来实现。硬件部分可以利用专用逻辑来实现;软件部分可以存储在存储器中,由适当的指令执行系统,例如微处理器或者专用设计硬件来执行。本领域的普通技术人员可以理解上述的设备和方法可以使用计算机可执行指令和/或包含在处理器控制代码中来实现,例如在诸如磁盘、CD或DVD-ROM的载体介质、诸如只读存储器(固件)的可编程的存储器或者诸如光学或电子信号载体的数据载体上提供了这样的代码。本发明的设备及其模块可以由诸如超大规模集成电路或门阵列、诸如逻辑芯片、晶体管等的半导体、或者诸如现场可编程门阵列、可编程逻辑设备等的可编程硬件设备的硬件电路实现,也可以用由各种类型的处理器执行的软件实现,也可以由上述硬件电路和软件的结合例如固件来实现。
说明书中提及的通信网络可以包括各类网络,包括但不限于局域网(“LAN”),广域网(“WAN”),根据IP协议的网络(例如,因特网)以及端对端网络(例如,ad hoc对等网络)。
应当注意,尽管在上文详细描述中提及了设备的若干装置或子装置,但是这种划分仅仅并非强制性的。实际上,根据本发明的实施方式,上文描述的两个或更多装置的特征和功能可以在一个装置中具体化。反之,上文描述的一个装置的特征和功能可以进一步划分为由多个装置来具体化。
此外,尽管在附图中以特定顺序描述了本发明方法的操作,但是,这并非要求或者暗示必须按照该特定顺序来执行这些操作,或是必须执行全部所示的操作才能实现期望的结果。相反,流程图中描绘的步骤可以改变执行顺序。附加地或备选地,可以省略某些步骤,将多个步骤合并为一个步骤执行,和/或将一个步骤分解为多个步骤执行。
虽然已经参考若干具体实施方式描述了本发明,但是应该理解,本发明并不限于所公开的具体实施方式。本发明旨在涵盖所附权利要求的精神和范围内所包括的各种修改和等同布置。所附权利要求的范围符合最宽泛的解释,从而包含所有这样的修改及等同结构和功能。
Claims (15)
1.一种用于在同步复制系统中处理事务的方法,包括在所述同步复制系统的源站点处:
将所述同步复制系统中的事务提交串行化,以使得在同一时间仅有一个事务能够被提交;
响应于发起对事务的提交,针对在所述同步复制系统中进行的每个事务生成日志,以记录相应事务的所有操作对所述同步复制系统的影响;
对已生成日志的事务作标记;以及
完成对已被作标记的事务的提交。
2.根据权利要求1所述的方法,其中,将所述同步复制系统中的事务提交串行化,以使得在同一时间仅有一个事务能够被提交包括:
使得在同一时间仅有一个事务能够获得提交锁。
3.根据权利要求2所述的方法,进一步包括:
响应于所述源站点失效而发起向所述同步复制系统中的目标站点的切换;
其中,在所述源站点和所述目标站点之间实现数据的同步复制。
4.根据权利要求3所述的方法,进一步包括:
在所述目标站点处,确定未完成提交的事务是否已被作标记;
响应于确定所述事务已被作标记,以针对所述事务生成的日志的内容来更新从所述源站点同步复制到所述目标站点的、与所述事务关联的数据。
5.根据权利要求3所述的方法,进一步包括:
在所述目标站点处,确定未完成提交的事务是否已被作标记;
响应于确定所述事务未被作标记,信任从所述源站点同步复制到所述目标站点的、与所述事务关联的数据。
6.根据权利要求5所述的方法,进一步包括:
移除针对所述事务所生成的日志。
7.根据权利要求1至6中任一项所述的方法,其中对已生成日志的事务作标记包括:
针对已生成日志的事务创建标记文件。
8.一种用于在同步复制系统中处理事务的装置,包括布置在所述同步复制系统的源站点处的:
串行化单元,被配置为将所述同步复制系统中的事务提交串行化,以使得在同一时间仅有一个事务能够被提交;
日志生成单元,被配置为响应于发起对事务的提交,针对在所述同步复制系统中进行的每个事务生成日志,以记录相应事务的所有操作对所述同步复制系统的影响;
标记单元,被配置为对已生成日志的事务作标记;以及
提交完成单元,被配置为完成对已被作标记的事务的提交。
9.根据权利要求8所述的装置,其中所述串行化单元被进一步配置为使得在同一时间仅有一个事务能够获得提交锁。
10.根据权利要求9所述的装置,进一步包括:
切换单元,被配置为响应于所述源站点失效而发起向所述同步复制系统中的目标站点的切换;
其中,在所述源站点和所述目标站点之间实现数据的同步复制。
11.根据权利要求10所述的装置,进一步包括:
检查单元,被配置为在所述目标站点处,确定未完成提交的事务是否已被作标记;
确定单元,被配置为响应于确定所述事务已被作标记,以针对所述事务生成的日志的内容来更新从所述源站点同步复制到所述目标站点的、与所述事务关联的数据。
12.根据权利要求10所述的装置,进一步包括:
检查单元,被配置为在所述目标站点处,确定未完成提交的事务是否已被作标记;
确定单元,被配置为响应于确定所述事务未被作标记,信任从所述源站点同步复制到所述目标站点的、与所述事务关联的数据。
13.根据权利要求12所述的装置,进一步包括:
移除单元,被配置为移除针对所述事务所生成的日志。
14.根据权利要求9至13中任一项所述的装置,其中所述标记单元被进一步配置为针对已生成日志的事务创建标记文件。
15.一种计算机程序产品,包括计算机可读介质,所述计算机可读介质承载在其中体现的用于与计算机一起使用的计算机程序代码,所述计算机程序代码包括:
用于将所述同步复制系统中的事务提交串行化,以使得在同一时间仅有一个事务能够被提交的代码;
用于响应于发起对事务的提交,针对在所述同步复制系统中进行的每个事务生成日志,以记录相应事务的所有操作对所述同步复制系统的影响的代码;
用于对已生成日志的事务作标记的代码;以及
用于完成对已被作标记的事务的提交的代码。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510004778.4A CN105893386B (zh) | 2015-01-04 | 2015-01-04 | 用于在同步复制系统中处理事务的方法和装置 |
US14/970,978 US11507599B2 (en) | 2015-01-04 | 2015-12-16 | Processing transactions in a synchronized replication system |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510004778.4A CN105893386B (zh) | 2015-01-04 | 2015-01-04 | 用于在同步复制系统中处理事务的方法和装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN105893386A true CN105893386A (zh) | 2016-08-24 |
CN105893386B CN105893386B (zh) | 2021-08-06 |
Family
ID=56286651
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510004778.4A Active CN105893386B (zh) | 2015-01-04 | 2015-01-04 | 用于在同步复制系统中处理事务的方法和装置 |
Country Status (2)
Country | Link |
---|---|
US (1) | US11507599B2 (zh) |
CN (1) | CN105893386B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108415793A (zh) * | 2017-02-09 | 2018-08-17 | 慧与发展有限责任合伙企业 | 经由日志操作修改复制组的成员资格 |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10872074B2 (en) | 2016-09-30 | 2020-12-22 | Microsoft Technology Licensing, Llc | Distributed availability groups of databases for data centers |
CN108984334B (zh) | 2017-06-02 | 2021-11-05 | 伊姆西Ip控股有限责任公司 | 用于管理会话的方法和设备 |
US11120048B2 (en) * | 2019-03-06 | 2021-09-14 | Netapp Inc. | Non-disruptive transition to synchronous replication state |
US11099835B1 (en) * | 2019-12-13 | 2021-08-24 | Stripe, Inc. | Continuous integration framework for development of software for EMV-based card present transaction processing |
CN112988883B (zh) * | 2019-12-16 | 2023-03-10 | 金篆信科有限责任公司 | 数据库的数据同步方法、装置以及存储介质 |
US11436110B2 (en) | 2021-02-11 | 2022-09-06 | Huawei Technologies Co., Ltd. | Distributed database remote backup |
Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20050165858A1 (en) * | 2004-01-09 | 2005-07-28 | Tom Richard W. | Well-known transactions in data replication |
US20060190504A1 (en) * | 2005-02-18 | 2006-08-24 | International Business Machines Corporation | Simulating multi-user activity while maintaining original linear request order for asynchronous transactional events |
US20060218206A1 (en) * | 2002-08-12 | 2006-09-28 | International Business Machines Corporation | Method, System, and Program for Merging Log Entries From Multiple Recovery Log Files |
US20070021970A1 (en) * | 2005-07-21 | 2007-01-25 | Ivan Schreter | Selectively transmitting transaction data |
US20100191884A1 (en) * | 2008-06-12 | 2010-07-29 | Gravic, Inc. | Method for replicating locks in a data replication engine |
CN102037463A (zh) * | 2008-02-26 | 2011-04-27 | 甲骨文国际公司 | 使用全局确认的提交进行分布式事务的基于日志的复制 |
CN102891849A (zh) * | 2012-09-25 | 2013-01-23 | 北京星网锐捷网络技术有限公司 | 业务数据同步方法、恢复方法及装置和网络设备 |
CN103885986A (zh) * | 2012-12-21 | 2014-06-25 | 阿里巴巴集团控股有限公司 | 主备数据库同步的方法和装置 |
CN103970833A (zh) * | 2014-04-02 | 2014-08-06 | 浙江大学 | 一种基于日志的异构数据库同步系统中双向同步数据循环的解决方法 |
US20140258223A1 (en) * | 2013-03-08 | 2014-09-11 | Oracle International Corporation | Adaptive high-performance database redo log synchronization |
Family Cites Families (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH0827755B2 (ja) * | 1991-02-15 | 1996-03-21 | インターナショナル・ビジネス・マシーンズ・コーポレイション | データの単位を高速度でアクセスする方法 |
US7415466B2 (en) * | 1996-03-19 | 2008-08-19 | Oracle International Corporation | Parallel transaction recovery |
US7577868B2 (en) | 2005-09-30 | 2009-08-18 | Lockheed Martin Corporation | No data loss IT disaster recovery over extended distances |
US8108580B1 (en) | 2007-04-17 | 2012-01-31 | American Megatrends, Inc. | Low latency synchronous replication using an N-way router |
US8286030B1 (en) | 2009-02-09 | 2012-10-09 | American Megatrends, Inc. | Information lifecycle management assisted asynchronous replication |
US8055615B2 (en) | 2009-08-25 | 2011-11-08 | Yahoo! Inc. | Method for efficient storage node replacement |
US8560792B2 (en) | 2010-12-16 | 2013-10-15 | International Business Machines Corporation | Synchronous extent migration protocol for paired storage |
US9053073B1 (en) | 2011-04-18 | 2015-06-09 | American Megatrends, Inc. | Use of timestamp logic in synchronous replication |
KR101322401B1 (ko) | 2012-01-31 | 2013-10-28 | 주식회사 알티베이스 | 동기적 이중화를 위한 데이터베이스 관리 시스템의 병렬 처리 장치 및 방법 |
US9052833B2 (en) | 2013-03-11 | 2015-06-09 | International Business Machines Corporation | Protection of former primary volumes in a synchronous replication relationship |
US9965359B2 (en) * | 2014-11-25 | 2018-05-08 | Sap Se | Log forwarding to avoid deadlocks during parallel log replay in asynchronous table replication |
-
2015
- 2015-01-04 CN CN201510004778.4A patent/CN105893386B/zh active Active
- 2015-12-16 US US14/970,978 patent/US11507599B2/en active Active
Patent Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20060218206A1 (en) * | 2002-08-12 | 2006-09-28 | International Business Machines Corporation | Method, System, and Program for Merging Log Entries From Multiple Recovery Log Files |
US20050165858A1 (en) * | 2004-01-09 | 2005-07-28 | Tom Richard W. | Well-known transactions in data replication |
US20060190504A1 (en) * | 2005-02-18 | 2006-08-24 | International Business Machines Corporation | Simulating multi-user activity while maintaining original linear request order for asynchronous transactional events |
US20070021970A1 (en) * | 2005-07-21 | 2007-01-25 | Ivan Schreter | Selectively transmitting transaction data |
CN102037463A (zh) * | 2008-02-26 | 2011-04-27 | 甲骨文国际公司 | 使用全局确认的提交进行分布式事务的基于日志的复制 |
US20100191884A1 (en) * | 2008-06-12 | 2010-07-29 | Gravic, Inc. | Method for replicating locks in a data replication engine |
CN102891849A (zh) * | 2012-09-25 | 2013-01-23 | 北京星网锐捷网络技术有限公司 | 业务数据同步方法、恢复方法及装置和网络设备 |
CN103885986A (zh) * | 2012-12-21 | 2014-06-25 | 阿里巴巴集团控股有限公司 | 主备数据库同步的方法和装置 |
US20140258223A1 (en) * | 2013-03-08 | 2014-09-11 | Oracle International Corporation | Adaptive high-performance database redo log synchronization |
CN103970833A (zh) * | 2014-04-02 | 2014-08-06 | 浙江大学 | 一种基于日志的异构数据库同步系统中双向同步数据循环的解决方法 |
Non-Patent Citations (1)
Title |
---|
刘轶等: "一种支持事务内I/O操作的事务存储系统结构", 《电子学报》 * |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108415793A (zh) * | 2017-02-09 | 2018-08-17 | 慧与发展有限责任合伙企业 | 经由日志操作修改复制组的成员资格 |
CN108415793B (zh) * | 2017-02-09 | 2021-10-29 | 慧与发展有限责任合伙企业 | 经由日志操作修改复制组的成员资格 |
Also Published As
Publication number | Publication date |
---|---|
US20160196322A1 (en) | 2016-07-07 |
CN105893386B (zh) | 2021-08-06 |
US11507599B2 (en) | 2022-11-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105893386A (zh) | 用于在同步复制系统中处理事务的方法和装置 | |
US11514075B2 (en) | System and method for prioritizing replication copy activity | |
US20230100223A1 (en) | Transaction processing method and apparatus, computer device, and storage medium | |
US8364636B2 (en) | Real time data replication | |
US11250395B2 (en) | Blockchain-based transaction processing methods and apparatuses and electronic devices | |
US20190278770A1 (en) | Time Series Data Management Method, Device, And Apparatus | |
CN103593266A (zh) | 一种基于仲裁盘机制的双机热备方法 | |
US8090683B2 (en) | Managing workflow communication in a distributed storage system | |
US10515228B2 (en) | Commit and rollback of data streams provided by partially trusted entities | |
CN106899648A (zh) | 一种数据处理方法和设备 | |
TWI730690B (zh) | 在區塊鏈中同時執行交易的方法和裝置及電腦可讀儲存媒體與計算設備 | |
WO2022174735A1 (zh) | 基于分布式存储的数据处理方法、装置、设备以及介质 | |
CN106899654A (zh) | 一种序列值生成方法、装置及系统 | |
US11194682B2 (en) | Connectivity-aware witness for active-active storage | |
JP6975153B2 (ja) | データ格納サービス処理方法及び装置 | |
CN104462497A (zh) | 基于关系型数据库的跨库事务处理方法和系统 | |
CN105335143A (zh) | 一种业务处理方法及装置 | |
CN114827165A (zh) | 对多个交易进行分组的方法和区块链节点 | |
AU2019380380B2 (en) | Taking snapshots of blockchain data | |
CN104008100B (zh) | 集群环境并发处理方法 | |
US10127270B1 (en) | Transaction processing using a key-value store | |
US10728326B2 (en) | Method and system for high availability topology for master-slave data systems with low write traffic | |
CN105989445A (zh) | 规则管理方法及系统 | |
US20210218827A1 (en) | Methods, devices and systems for non-disruptive upgrades to a replicated state machine in a distributed computing environment | |
CN116821232A (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 | ||
TA01 | Transfer of patent application right | ||
TA01 | Transfer of patent application right |
Effective date of registration: 20200413 Address after: Massachusetts, USA Applicant after: EMC IP Holding Company LLC Address before: Massachusetts, USA Applicant before: EMC Corp. |
|
GR01 | Patent grant | ||
GR01 | Patent grant |