CN105893386B - 用于在同步复制系统中处理事务的方法和装置 - Google Patents
用于在同步复制系统中处理事务的方法和装置 Download PDFInfo
- Publication number
- CN105893386B CN105893386B CN201510004778.4A CN201510004778A CN105893386B CN 105893386 B CN105893386 B CN 105893386B CN 201510004778 A CN201510004778 A CN 201510004778A CN 105893386 B CN105893386 B CN 105893386B
- Authority
- CN
- China
- Prior art keywords
- transaction
- site
- synchronous replication
- replication system
- commit
- 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
Images
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、ROM303、硬盘控制器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 (7)
1.一种用于在具有源站点和目标站点的同步复制系统中处理事务的方法,其中数据的同步复制被在所述源站点和所述目标站点之间执行,包括在所述同步复制系统的所述源站点处:
按照顺序对所述同步复制系统中的待提交的事务的提交进行排序,以使得在一个时间点仅有一个事务能够被提交,其中按照顺序对待提交的事务的提交进行排序包括:使得在所述一个时间点仅有一个事务能够获得提交锁,其中当一个事务的操作完成时,所述提交锁由所述一个事务获得,并且其中所述提交锁相对于源站点是全局的同时,所述源站点作为所述同步复制系统中的活跃站点;
响应于获得所述提交锁并且发起对事务的提交,针对在所述同步复制系统中进行的每个事务生成日志,以记录相应事务的所有操作对所述同步复制系统的影响;
对已生成日志的事务作标记;
根据所述顺序完成对已被作标记的事务的提交,其中完成所述提交修改所述同步复制系统中的数据库;
在完成对所述事务的提交之后,移除对所述事务所作的标记;以及
响应于所述源站点失效而发起向所述同步复制系统中的目标站点的切换,其中发起向所述同步复制系统中的所述目标站点的切换使:所述目标站点开始作为所述同步复制系统中的所述活跃站点并且继续为用户提供服务,并且其中使所述目标站点开始作为所述同步复制系统中的所述活跃站点使:所述全局提交锁相对于所述目标站点成为全局的,同时所述目标站点作为所述活跃站点,
在发起向所述同步复制系统中的目标站点的切换之后,在所述目标站点处,确定未完成提交的事务是否已被作标记;
响应于确定所述事务已被作标记,以针对所述事务生成的日志的内容来更新从所述源站点同步复制到所述目标站点的、与所述事务关联的数据;
响应于确定所述事务未被作标记,信任从所述源站点同步复制到所述目标站点的、与所述事务关联的数据。
2.根据权利要求1所述的方法,进一步包括:
移除针对所述事务所生成的日志。
3.根据权利要求1或2所述的方法,其中对已生成日志的事务作标记包括:
针对已生成日志的事务创建标记文件。
4.一种用于在具有源站点和目标站点的同步复制系统中处理事务的装置,其中数据的同步复制被在所述源站点和所述目标站点之间执行,包括布置在所述同步复制系统的所述源站点处的:
排序单元,被配置为按照顺序对所述同步复制系统中的待提交的事务的提交进行排序,以使得在一个时间点仅有一个事务能够被提交,其中按照顺序对待提交的事务的提交进行排序包括:使得在所述一个时间点仅有一个事务能够获得提交锁,其中当一个事务的操作完成时,所述提交锁由所述一个事务获得,并且其中所述提交锁相对于源站点是全局的同时,所述源站点作为所述同步复制系统中的活跃站点;
日志生成单元,被配置为响应于获得提交锁并且发起对事务的提交,针对在所述同步复制系统中进行的每个事务生成日志,以记录相应事务的所有操作对所述同步复制系统的影响;
标记单元,被配置为对已生成日志的事务作标记;
提交完成单元,被配置为根据所述顺序完成对已被作标记的事务的提交,其中完成所述提交修改所述同步复制系统中的数据库;以及
移除单元,被配置为在完成对所述事务的提交之后,移除对所述事务所作的标记;
切换单元,被配置为响应于所述源站点失效而发起向所述同步复制系统中的目标站点的切换,其中发起向所述同步复制系统中的所述目标站点的切换使:所述目标站点开始作为所述同步复制系统中的所述活跃站点并且继续为用户提供服务,并且其中使所述目标站点开始作为所述同步复制系统中的所述活跃站点使:所述全局提交锁相对于所述目标站点成为全局的,同时所述目标站点作为所述活跃站点;
检查单元,被配置为在所述目标站点处,确定未完成提交的事务是否已被作标记;
确定单元,被配置为响应于确定所述事务已被作标记,以针对所述事务生成的日志的内容来更新从所述源站点同步复制到所述目标站点的、与所述事务关联的数据;并且
响应于确定所述事务未被作标记,信任从所述源站点同步复制到所述目标站点的、与所述事务关联的数据。
5.根据权利要求4所述的装置,进一步包括:
移除单元,被配置为移除针对所述事务所生成的日志。
6.根据权利要求4或5所述的装置,其中所述标记单元被进一步配置为针对已生成日志的事务创建标记文件。
7.一种非瞬态计算机可读介质,所述非瞬态计算机可读介质具有存储于其上的用于在同步复制系统中处理事务的计算机可读指令,所述同步复制系统具有源站点和目标站点,其中数据的同步复制被在所述源站点和所述目标站点之间执行,
其中,所述计算机可读指令在由至少一个处理器执行时使设备执行动作,所述动作包括:
按照顺序对同步复制系统中的待提交的事务的提交进行排序,以使得在一个时间点仅有一个事务能够被提交,其中按照顺序对待提交的事务的提交进行排序包括:使得在所述一个时间点仅有一个事务能够获得提交锁,其中当一个事务的操作完成时,所述提交锁由所述一个事务获得,并且其中所述提交锁相对于源站点是全局的同时,所述源站点作为所述同步复制系统中的活跃站点;
响应于获得所述提交锁并且发起对事务的提交,针对在所述同步复制系统中进行的每个事务生成日志,以记录相应事务的所有操作对所述同步复制系统的影响;
对已生成日志的事务作标记;
根据所述顺序完成对已被作标记的事务的提交,其中完成所述提交修改所述同步复制系统中的数据库;
在完成对所述事务的提交之后,移除对所述事务所作的标记;以及
响应于所述源站点失效而发起向所述同步复制系统中的目标站点的切换,其中发起向所述同步复制系统中的所述目标站点的切换使:所述目标站点开始作为所述同步复制系统中的所述活跃站点并且继续为用户提供服务,并且其中使所述目标站点开始作为所述同步复制系统中的所述活跃站点使:所述全局提交锁相对于所述目标站点成为全局的,同时所述目标站点作为所述活跃站点;
在发起向所述同步复制系统中的目标站点的切换之后,在所述目标站点处,确定未完成提交的事务是否已被作标记;
响应于确定所述事务已被作标记,以针对所述事务生成的日志的内容来更新从所述源站点同步复制到所述目标站点的、与所述事务关联的数据;
响应于确定所述事务未被作标记,信任从所述源站点同步复制到所述目标站点的、与所述事务关联的数据。
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 CN105893386A (zh) | 2016-08-24 |
CN105893386B true 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) |
Families Citing this family (7)
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 |
US10416905B2 (en) * | 2017-02-09 | 2019-09-17 | Hewlett Packard Enterprise Development Lp | Modifying membership of replication groups via journal operations |
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 |
Family Cites Families (21)
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 |
US7076508B2 (en) * | 2002-08-12 | 2006-07-11 | International Business Machines Corporation | Method, system, and program for merging log entries from multiple recovery log files |
US7143123B2 (en) * | 2004-01-09 | 2006-11-28 | Microsoft Corporation | Well-known transactions in data replication |
US7376675B2 (en) * | 2005-02-18 | 2008-05-20 | International Business Machines Corporation | Simulating multi-user activity while maintaining original linear request order for asynchronous transactional events |
US7698712B2 (en) * | 2005-07-21 | 2010-04-13 | Sap Ag | Selectively transmitting transaction data |
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 |
US8650155B2 (en) * | 2008-02-26 | 2014-02-11 | Oracle International Corporation | Apparatus and method for log based replication of distributed transactions using globally acknowledged commits |
US7962458B2 (en) * | 2008-06-12 | 2011-06-14 | Gravic, Inc. | Method for replicating explicit locks in a data replication engine |
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 | 주식회사 알티베이스 | 동기적 이중화를 위한 데이터베이스 관리 시스템의 병렬 처리 장치 및 방법 |
CN102891849B (zh) * | 2012-09-25 | 2015-07-22 | 北京星网锐捷网络技术有限公司 | 业务数据同步方法、恢复方法及装置和网络设备 |
CN103885986B (zh) * | 2012-12-21 | 2017-12-19 | 阿里巴巴集团控股有限公司 | 主备数据库同步的方法和装置 |
US9418129B2 (en) * | 2013-03-08 | 2016-08-16 | Oracle International Corporation | Adaptive high-performance database redo log synchronization |
US9052833B2 (en) | 2013-03-11 | 2015-06-09 | International Business Machines Corporation | Protection of former primary volumes in a synchronous replication relationship |
CN103970833B (zh) * | 2014-04-02 | 2017-08-15 | 浙江大学 | 一种基于日志的异构数据库同步系统中双向同步数据循环的解决方法 |
US9959178B2 (en) * | 2014-11-25 | 2018-05-01 | Sap Se | Transactional and parallel log replay for 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
Also Published As
Publication number | Publication date |
---|---|
US20160196322A1 (en) | 2016-07-07 |
US11507599B2 (en) | 2022-11-22 |
CN105893386A (zh) | 2016-08-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105893386B (zh) | 用于在同步复制系统中处理事务的方法和装置 | |
US8868514B2 (en) | Transaction support for distributed data | |
US10824361B2 (en) | Changing data reliability type within a storage system | |
US9798792B2 (en) | Replication for on-line hot-standby database | |
US10242027B2 (en) | Three phase commit for a distributed file system | |
US8364636B2 (en) | Real time data replication | |
Yan et al. | Carousel: Low-latency transaction processing for globally-distributed data | |
US10983981B1 (en) | Acid transaction for distributed, versioned key-value databases | |
WO2017181931A1 (zh) | 一种处理分布式事务的方法与设备 | |
US20200167320A1 (en) | Versioned and hierarchical data structures and distributed transactions | |
US9535931B2 (en) | Data seeding optimization for database replication | |
Padhye et al. | Scalable transaction management with snapshot isolation for NoSQL data storage systems | |
US20190196918A1 (en) | Methods and systems of operating a database management system dmbs in a strong consistency mode | |
US10983709B2 (en) | Methods for improving journal performance in storage networks and devices thereof | |
US20180129668A1 (en) | Intermediate file processing method, client, server, and system | |
US9015116B2 (en) | Consistent replication of transactional updates | |
US11334445B2 (en) | Using non-volatile memory to improve the availability of an in-memory database | |
US20200401575A1 (en) | Streamlined database commit for synchronized nodes | |
Wang et al. | System restore in a multi-cloud data pipeline platform | |
JP2007264770A (ja) | データベースアクセス方法及び装置 | |
US11442828B2 (en) | Handling failures in distributed data system | |
US20170255499A1 (en) | Hybrid quorum system with persistent and non-persistent | |
JP5832592B1 (ja) | データ管理装置 | |
US20240152429A1 (en) | Recoverable Processes | |
CN107797885A (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 |