CN102214205B - 用于经聚类的数据库系统中的逻辑复制的系统和方法 - Google Patents
用于经聚类的数据库系统中的逻辑复制的系统和方法 Download PDFInfo
- Publication number
- CN102214205B CN102214205B CN201110106115.5A CN201110106115A CN102214205B CN 102214205 B CN102214205 B CN 102214205B CN 201110106115 A CN201110106115 A CN 201110106115A CN 102214205 B CN102214205 B CN 102214205B
- Authority
- CN
- China
- Prior art keywords
- clone
- stream
- cluster
- data
- daily record
- 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
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
- G06F16/219—Managing data history or versioning
-
- 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/466—Transaction processing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/16—Error detection or correction of the data by redundancy in hardware
- G06F11/20—Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
- G06F11/202—Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where processing functionality is redundant
- G06F11/2041—Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where processing functionality is redundant with more than one idle spare processing component
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/16—Error detection or correction of the data by redundancy in hardware
- G06F11/20—Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
- G06F11/202—Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where processing functionality is redundant
- G06F11/2048—Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where processing functionality is redundant where the redundant components share neither address space nor persistent storage
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/16—Error detection or correction of the data by redundancy in hardware
- G06F11/20—Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
- G06F11/2097—Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements maintaining the standby controller/processing unit updated
-
- 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2201/00—Indexing scheme relating to error detection, to error correction, and to monitoring
- G06F2201/80—Database-specific techniques
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2201/00—Indexing scheme relating to error detection, to error correction, and to monitoring
- G06F2201/82—Solving problems relating to consistency
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Databases & Information Systems (AREA)
- Quality & Reliability (AREA)
- Software Systems (AREA)
- Data Mining & Analysis (AREA)
- Computing Systems (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明描述了带有自适应克隆的经聚类的数据库系统中的逻辑复制,提出了端到端解决方法的体系结构,用于来自无共享的经聚类的数据库管理系统的逻辑事务复制,该数据库管理系统使用自适应克隆以获得高可用性。使用全局逻辑时间戳,这可以是基于时间的。用于刷新陈旧克隆的所公开的体系结构不保留用户事务边界,这是一种比保留边界的情况更复杂的情况。在该场景中,对于给定的数据段,可能没有一个数据段的克隆包含完整的用户事务历史,并因此需要从多个不同的克隆日志中将历史接合在一起。实现以上动作使得日志获取与克隆状态转变相协调来确保逻辑复制的正确性。
Description
技术领域
本发明涉及数据库系统中的逻辑复制,尤其涉及带有自适应克隆的经聚类的数据库系统中的逻辑复制。
背景技术
为了使得数据库管理系统更具缩放性,可以按照将多个服务器进程一起用作单个逻辑系统的方式来将多个服务器进程聚类。数据库可被主存在多个节点(服务器)上,其中的每一个主存数据库的零个或多个段。为了分发数据,可以将对象(例如,表或表上的索引)在逻辑上细分成数据段。数据段的物理表现被称为克隆。因此,通过将实体(例如,表、索引)分成一个或多个逻辑数据段并跨各个节点分发与各逻辑段(克隆)相对应的数据可以实现系统的可缩放性。在这么做的时候,为了使数据高度可用且系统作为一个整体更加容错,可以维护数据的多个冗余副本(每一数据段的多个克隆)。当节点出于故障或有意的管理目的而在在线和离线状态之间移动时,在克隆离线(不可用)的同时发生的更新导致这些克隆可能变得陈旧。
灾难恢复(DR)是企业级数据库系统的关键要求。促进灾难恢复通常涉及在地理上分开的多个位置处维护最新的数据库副本。将分布在多个节点上的数据库复制到远程站点的一种初级方法是关闭数据库并将与该数据库相关联的数据复制到远程站点上,从而获得灾难恢复所需的更高效和更有效的技术。虽然该技术能够向远程站点提供与数据库一致的映像,但它涉及数据库停机时间。取决于数据库的大小,该过程是耗时的、低效的、资源密集的且多数时候招致数据损失。此外,使数据库离线,即使很短的时间段也可能是代价极高的且是有问题的。因此,灾难恢复需要更有效和高效的复制策略。
发明内容
下面呈现了简化的发明内容,以便提供对此处所描述的一些新颖实施例的基本理解。本发明内容不是详尽的概述,并且它不旨在标识关键/重要元素或描绘本发明的范围。其唯一的目的是以简化形式呈现一些概念,作为稍后呈现的更详细描述的序言。
所公开的体系结构提出了用于无共享(SN)的经聚类的数据库管理系统中的逻辑事务性复制的端到端解决方案,该数据库管理系统使用自适应克隆以获得高可用性。逻辑复制可以在与两个不同的数据库管理系统相关联的两个数据库之间建立。因为在逻辑层,所以复制是不知道如何将数据存储到源和目标上的。因此,源可以是无共享聚类而目标可以是独立的(未经聚类的)实例。使用全局逻辑时间戳的逻辑复制可以是基于时间的。
克隆是在聚类中维护数据的冗余副本的过程。克隆可以采用主要克隆以及一个或多个次要克隆。自适应克隆意味着当主要克隆变为不可用(例如,由于服务器故障/关闭)时,将最新的次要克隆切换成在线来变为主要克隆。因为该切换通常是非常快速的操作,所以不会损害数据的可用性。另外,可以拆分和/或合并克隆来动态地对系统进行负载平衡。
用于刷新陈旧克隆的所公开的体系结构不保留用户事务边界,这是一种比保留边界的情况更复杂的情况。在该场景中,对于给定的数据段,可能没有一个数据段的克隆包含完整的用户事务历史,并因此需要从多个不同的克隆日志中将历史接合在一起。实现以上动作从而将日志获取与克隆状态转变进行协调来确保逻辑复制的正确性。
为了实现上述及相关目的,本文结合下面的描述和附图来描述某些说明性方面。这些方面指示了可以实践本文所公开的原理的各种方式,并且所有方面及其等效方面旨在落入所要求保护的主题的范围内。结合附图阅读下面的详细描述,其它优点和新颖特征将变得显而易见。
附图说明
图1示出根据所公开的体系结构的计算机实现的数据库管理系统。
图2示出数据库管理系统的其他细节。
图3示出关于获取自适应克隆中出现的多个日志流的时间和活动表。
图4示出根据所公开的体系结构的计算机实现的数据库管理方法。
图5示出了图4的方法的其它方面。
图6示出了图4的方法的其它方面。
图7示出根据所公开的体系结构的在带有自适应克隆的无共享聚类中执行日志复制的计算系统的框图。
具体实施方式
所公开的体系结构解决了来自无共享(SN)的经聚类的数据库管理系统的逻辑事务性复制问题,该数据库管理系统采用自适应克隆以获得高数据库可用性。体系结构目标是提供单个系统映像。SN聚类中的每一节点(服务器或砖)自主地操作。即,每一节点对该节点上的数据具有唯一所有权。聚类中没有节点与另一节点共享数据。在利用聚类中的多个服务器时,跨多个服务器拆分数据。例如,如果单个服务器上的数据包括用户、订单和产品,则SN聚类方法采用三个分开的机器来划分数据——第一节点主存用户数据,第二节点主存订单数据,而第三节点主存产品数据。此外,可以跨聚类节点水平地划分数据。
数据库管理系统可以是包括服务器或实例集合的聚类系统。与必要的聚类基础结构链接在一起的服务器实例被称为砖(也是节点)。因此,聚类是一个或多个砖(也被称为节点)的集合。在系统中跨多个砖来分发数据以获得横向扩展和性能。将诸如表或索引等的数据库对象分成段。段是逻辑实体。数据段的物理表现被称为克隆。每一数据段具有与其相关联的一个或多个克隆——通常一个以上,来提供数据的高可用性。克隆是用最新状态维护并由数据库管理系统管理的数据的事务性一致的冗余副本,该数据库管理系统允许更高的可用性级别、动态负载平衡、容错以及其他所指定的目的。克隆具有角色——主要和次要。每一数据段中的一个且仅有一个克隆被指派为主要角色。给定数据段的其他冗余克隆被指派为次要角色。
当砖变为离线时(例如,由于故障或用户/管理触发的有意关闭),则物理上主存在该砖上的所有克隆都进入离线状态。离线克隆是不可访问的,并因此,在克隆保持不可访问的情况下无法传播更新。遗漏一个或多个更新的克隆变为陈旧的。当陈旧克隆物理地位于其上的砖回到在线(重新加入)时,需要将陈旧克隆刷新到最新状态。注意,陈旧克隆离线的同时砖可以是在线的从而使得当主存陈旧克隆的砖回到在线时(陈旧克隆再次变为可访问的)需要将陈旧克隆刷新到最新状态。只要至少数据段的主要克隆可用,更新便能够成功地完成。(某些分布式系统要求克隆的选出成员。)将每一段的更新应用于主要克隆,然后将其从主要克隆传播到同一事务中的相对应的次要克隆。主要克隆可以从不处于陈旧状态。当砖重新加入时,该砖上的克隆再次变为可访问的。
将陈旧克隆带回来与主要克隆事务性一致的过程被称为克隆刷新。克隆刷新不是通过重放相关联的事务日志(遗漏的更新)来完成的。相反,系统采用标识陈旧克隆中的不匹配并不按特定次序更新那些记录且无需保留用户事务边界的技术。这种算法通常不会遭受具有较长的追赶阶段的问题。
然而,使用这种克隆刷新方案的系统可能进入这样一种状态:对于给定的数据段,没有一个段克隆在相关联的日志中包含完整的用户事务历史。这使得逻辑复制变为更复杂的任务,尤其在不保留事务边界的情况下。如此处更详细地描述的,解决方法是将克隆状态转变与日志获取进行协调来确保逻辑复制的正确性。
现在参考附图,附图中通篇使用相似的附图标记表示相似的元件。在下面的描述中,为了进行说明,阐述了很多具体细节以便提供对本发明的全面理解。然而,显而易见,可以在没有这些具体细节的情况下实施各新颖实施例。在其它情况下,以框图形式示出了公知的结构和设备以便于描述它们。意图为涵盖落入所要求保护的主题的精神和范围内的所有修改、等效方案和替换方案。
图1示出根据所公开的体系结构的计算机实现的数据库管理系统100。系统100包括采用自适应克隆来跨聚类节点存储数据库的数据库段的无共享聚类102。每一数据库段与跟踪事务变更的事务日志记录相关联。可将事务日志记录形成事务日志流。因此,聚类102可以包括出现在聚类节点上的克隆中的变更的多个日志流104。复制组件106接收数据库的一组多个事务日志流108来创建变更的变更历史。复制组件106将一组多个日志流合并成单个变更流110,然后在逻辑上将变更作为单个变更流复制到一个或多个目的地数据系统112。
复制组件106在接收不同事务的多个事务日志记录时维护变更的原始数据操作次序。复制组件106遵守多个事务日志流中所生成的事务中的事务日志记录的原始数据变更次序。复制组件106接收基于聚类中所采用的提交过程的全局逻辑时间戳的多个事务日志记录。
复制组件106将变更历史创建为单个有序变更流,并且该单个有序流是从多个事务日志流中创建的,其中每一事务日志流可能是不完整的(缺少所有变更的完整记录)。
图2示出数据库管理系统的其他细节。系统200包括节点202的无共享聚类102,其采用自适应克隆来将数据段204存储为节点202上的克隆(206、208和210)。事务协调组件212协调与克隆(206、208和210)的变更相关联的多个事务日志记录的分布式事务处理。跨节点202中的某些来克隆数据段204中的每一个。例如,第一段214与分布在聚类102中的节点的克隆1相关联。类似地,第二段216与分布在聚类102中的节点的克隆2相关联,并且对于其他段和克隆如图所示地以此类推。当节点变为离线时,它可能影响或可能不影响数据段的所有克隆或其他数据段。
复制组件106从聚类节点202中将事务日志记录获取为日志流。数据虚拟化管理组件218负责克隆状态转变、克隆布置、动态负载平衡等等。
事务协调组件212可用作分布式事务协调管理器,该分布式事务协调管理器接收提交请求、从节点接收事务次序、并将全局逻辑时间戳广播给各节点来提交事务,以及其他功能和操作。
全局逻辑时间戳值是单调递增的值。来自事务协调管理器的每一提交/退出广播都会导致全局逻辑时间戳值的增加。各个事务与提交-全局逻辑时间戳值相关联,该提交-全局逻辑时间戳值与其中强化和广播提交决定的全局逻辑时间戳消息相对应。提交-全局逻辑时间戳值表示与事务提交相关联的逻辑时间。给定用不同的全局逻辑时间戳值来提交的两个事务,与较低的提交-全局逻辑时间戳值相关联的事务被认为是较早提交的。全局逻辑时间戳机制因此提供全局时钟来对聚类中的数据修改进行部分地排序。
陈旧克隆的刷新(以及克隆状态转变)由数据虚拟化组件218执行,并以到在刷新中的状态的转变来开始。将更新传播到在刷新中的克隆并取决于刷新操作所处的阶段来选择性地应用(如果正在进行的刷新活动无论如何都会赶上,则可以跳过/丢弃在刷新中的克隆上的某些更新)。在完成刷新过程时克隆适用于被指定为主要角色。
如前所述,主要克隆可以从不处于陈旧状态。然而,可以改变主要和次要角色指派。从数据段的主要克隆刷新陈旧克隆。如果陈旧程度高于预定阈值,则可以作出从另一源整体地重构克隆而非刷新克隆的决定。
具体地,每一记录具有键以及在主要和次要克隆中都出现的系统定义的克隆更新标识符(CUID)列。使用CUID来检测该记录是否是最新的。每一个表具有存储在元数据中的CUID“高水印”值。适当的数据操纵语言操作检测该CUID值,将该值作为运行时常量来对待,并更新具有相关联的值的每一行。
更具体地,当克隆变为离线时,将退出访问该克隆的语言操作。并发地更新元数据中的表的CUID高水印值并在元数据中标记不应再对该克隆进行更新(处于离线状态)。开始的任何新的操作将不会更新离线的次要克隆,并将新的CUID值放在操作对主要克隆进行插入或更新的行中。
当次要克隆回到在线时,更新元数据来指示该克隆现在要由语言来维护。这通过将陈旧克隆的转变过程的开头标记为在刷新中的状态来发生。已经在运行的操作继续运行而没有任何改变,并且不会意识到新的克隆。
在获得表上的模式锁并保持次要克隆最新(将更新传播到在刷新中或在线状态的次要克隆)的时间点之后开始的所有新的操作拾取新的元数据(在查询启动时刻而非编译时刻)。只要没有重复的记录就传播插入。如果更新/删除之前的CUID列在主要和次要克隆之间成功地进行比较,则只传播更新和删除。即,如果克隆是最新的,则仅对次要克隆中的行执行更新或删除操作;否则,忽略,并从主要克隆更新/删除。当所有旧的操作完成之后,元数据检测到不再使用旧的元数据版本,删除元数据,并发送该克隆现在正式处于在刷新中的状态的通知。
此时,刷新算法用读提交模式在主要克隆和次要克隆之间运行和执行外联结,寻找可能过时的行的键(换言之,键不存在于主要和次要克隆中,或者如果键存在于两个克隆中但CUID值不匹配)。将该组键插入到临时表中。因为所有新的操作传播到了次要,保证外联结找到所有过时的行;然而,操作还可以找到实际上一致的某些行。
接着,用重复读取模式运行一系列批处理事务。操作锁定主要克隆上的一组键,删除来自次要克隆的所有这些键,将来自主要克隆的数据行插入到次要克隆中,并提交事务。当批处理完成时,该组记录是一致的,并且将因为语言操作不断地更新记录而永远保持一致。该过程继续,并造成通过表的单个传递。在表传递完成时,次要克隆是最新的。
诸如此处描述的算法试图避免通常与和回放事务日志的算法相似的方案相关联的较长的追赶(克隆的刷新)。然而,刷新克隆所涉及的更新不保留原始的用户事务边界。因此,经过时间的推移,可能存在其中没有一个克隆在相关联的日志中完全具有完整的用户事务历史的数据段。一种解决方法是将日志获取与克隆状态转变进行协调。
以下描述是SN聚类数据库中的分布式事务的生存周期的一般概述。用户启动分布式事务。其上启动事务的砖被指定为事务的根砖。用户随后在该事务之下发出查询。查询的一部分需要在其他砖上运行。当查询将部分发送给其他砖时,还发送事务信息。在涉及该事务的新的砖中建立独立的事务分支。在完成查询之后,事务分支停留该在砖中直到事务被提交或回退。
在使用当前请求的事务的远程砖完成之后,将事务的活动的概述发送回根事务分支。根分支跟踪参与该事务的所有砖以及在每一砖中写入最后一个事务日志记录的时间。
用户通过根分支请求提交事务。因为根分支跟踪所有参与的砖以及参与的砖中的每一个中的事务所执行的工作,所以一旦查明日志的相关部分已经被保存在每一参与的砖上,它便可以确定事务何时准备好了。
当事务准备好了,根分支将提交请求发送给分布式事务管理器(协调组件212)。每一砖本地地批处理各个事务提交请求,然后将完整的批处理作为事务次序发送给事务管理器。分布式事务管理器从所有砖中收集事务次序并聚集次序。按某一预定时间间隔,事务管理器发出包括在该间隔期间收集到的所有事务次序的全局逻辑时间戳广播。每一广播与单调递增的全局逻辑时间戳相关联。只有在根砖接收到这一广播之后才本地地提交根事务分支。类似地,当广播到达事务的远程的参与砖时,清除远程痕迹。
直到处理提交之后才释放事务分支所持有的锁,这只在事务提交被包括在广播中之后发生。这确保了(对相同的数据片段操作)具有数据冲突的两个事务被串联并且无法用同一全局时间戳来提交。
可以将基于时间的方案用于分布式事务的协调和提交。每一砖本地地批处理各个事务提交请求,并将完整的批处理作为事务次序发送给事务管理器。
分布式事务协调组件212从所有的砖收集一段时间内的事务次序,然后聚集次序。在该时间段的末尾,(在持久保留了决定之后)协调组件212将该组事务的这些提交/退出决定广播到聚类中的所有砖。
为了向该组指派唯一的时间戳,全局逻辑时间戳与该组事务相关联。全局逻辑时间戳可以是单调递增的数。每一提交/退出广播都会导致全局逻辑时间戳的增加。各个事务与提交全局逻辑时间戳相关联,该全局逻辑时间戳与其中强化并广播提交决定的组消息相对应。提交全局逻辑时间戳表示与事务提交相关联的逻辑时间。给定用不同的提交全局逻辑时间戳来提交的两个事务,与较低的提交全局逻辑时间戳相关联的全局逻辑时间戳被认为是较早提交的。全局逻辑时间戳机制因此提供了全局逻辑时间戳来部分地对聚类中的数据修改进行排序。
跨多个日志流维护从属事务的日志记录的复制次序。维护从多个日志流中对不同事务的日志记录的获取来保持原始的操作次序。利用这一次序来维护数据的逻辑一致性(例如,外键关系)。考虑作为运行示例的以下模式:
其中事务T1将行(p1,s1,v1)插入到表pk_tab中,而事务T2将行(fp2,p1)插入到表fk_tab中,其中p1引用pk_tab1内的行。
为了使复制一致,必须将事务T1在事务T2之前应用到订阅者。如果未维护次序,则在将变更应用于订阅者时可能出现外键违反。
归因于经批处理的提交处理,具有数据冲突的事务用不同的提交广播来提交。用相关联的提交广播的次序来复制事务确保复制保留了次序,并因此保留了约束。
接着是多个日志流中生成的事务中的日志记录的复制次序。事务中的日志记录可以分布在多个日志中。基于日志的复制从多个日志中提取数据变更,并将数据变更合并成单个数据变更流。在将数据变更应用于远程数据库服务器之后接着是事务中的原始数据变更次序;否则,可能违反数据一致性。
继续以上示例,考虑数据库包括两个数据库段的情况,其中数据库是一个或多个数据库段的集合。此外,考虑pk_tab位于dbsegment1中而fk_tab位于dbsegment2中的情况。考虑以下事务:
虽然可以独立地获取这些日志,但按次序应用所提取的变更“insertrow(p1,s1,v1)intotablepk_tab”和“insertarow(fp2,p1)intotablefk_tab”;否则,将违反fk_tab中的外键约束。
每一事务分支具有命令序列标识符的种子。当事务的根分支开始时,根分支将种子初始化为1。在事务分支处,在使用种子生成了新的命令序列标识符值之后,递增种子。当事务分支将数据变更请求发送给同一事务的另一分支时,将源事务分支的当前种子与请求一起发送。在事务分支接收到带有种子x2的请求之后,其新的种子变为max(x1,x2),其中x1是其当前的种子。当事务分支发送响应时,也发送当前的种子。在事务分支接收到响应之后,用与以上相同的方式来改变接收者的种子,即,在事务分支接收到带有种子x2的请求之后,其新的种子将变为max(x1,x2),其中x1是其当前的种子。
原理是如果事务中的两个变更的相对次序与逻辑一致性有关,则变更命令序列标识符必须是正确的次序;否则,事务中的两个数据变更可以在不同的数据库段中并行地发生且命令序列标识符的值是无关的。命令序列标识符生成不保证对事务中的所有数据变更进行排序;它只保证对应于逻辑一致性的部分排序。
图2示出关于获取自适应克隆中出现的多个日志流的时间和活动表200。如上所述,克隆刷新在使陈旧克隆变为最新时不保留更新的完整事务性历史。使用与以上相同的模式,考虑与三个独立故障单元相关联的三个日志流之间的以下场景:
数据段pk_tab具有分别在砖B1和B2上的克隆pk_tab_c1和pk_tab_c2;砖B1上的克隆是主要克隆而砖B2上的克隆是次要克隆。Fk_tab是主要克隆,fk_tab_c1在砖B3上。
按照相关联的事务的提交全局逻辑时间戳的次序来执行日志获取和对订阅者的变更应用(复制)。考虑以下对pk_tab的日志的获取:
从砖B1中获取从对数据段pk_tab的所有变更一直到全局逻辑时间戳N-1的日志,并且在克隆pk_tab_c2变为在线之后从砖B2中获取剩余的变更集。
该次序违反了一致性。在(1)砖B1和全局逻辑时间戳N+1处以及在(2)砖B3和全局逻辑时间戳N+2处的两个更新是依赖于次序的。虽然,在克隆pk_tab_c2变为在线之前,克隆刷新过程已经应用了(1)中的更新;该更新在插入外键引用的从属事务之后提交的事务中被标记。如果砖B2的日志在全局逻辑时间戳N和N+6之间获取,则在将变更应用于订阅者期间,将违反外键约束。
一般而言,在克隆刷新期间所生成的日志记录对于获取是不安全的。相反,只可以获取生成到在线克隆的日志记录。为了在日志获取和应用于订阅者期间考虑确保所有用户事务的一致性历史,克隆刷新和将克隆切换到在线状态遵守以下约束:
如果克隆在全局逻辑时间戳N处变为在刷新中的状态而刷新在全局逻辑时间戳N+x处完成,则只有在日志读取器已经获取直到并包括全局逻辑时间戳N+x的所有全局逻辑时间戳的日志记录之后才能使克隆变回在线状态。
考虑表段具有两个克隆——一个主要(在线)和其他次要在刷新中的状态,在克隆在全局逻辑时间戳N+x处完成刷新之后,主存主要克隆的砖变为离线。此时,虽然包含刚完成刷新的克隆的砖准备好将该表段提供给用户,但是其日志记录对获取是不安全的。相反,需要首先恢复并使离线的砖变为在线从而使得可以获取直到全局逻辑时间戳N+x的日志。有了以上约束,保证了只要表段在线,其历史数据变更便可从包含其在线克隆的砖的日志中获得。
换言之,提供了执行来自采用自适应克隆的无共享聚类的数据的复制的数据库管理系统。聚类跨聚类节点存储数据库的数据库段,每一数据段具有跟踪事务变更的事务日志记录,将该事务日志记录形成事务日志流。复制组件基于全局逻辑时间戳和命令序列标识符从在线克隆接收多个事务日志流来创建变更的有序变更历史,将多个日志流合并成单个变更流,并根据变更历史将单个变更流中的变更复制到目的地。
复制组件在获取多个日志流时维护变更的原始数据操作次序,其中的每一个日志流缺少所有变更的完整记录。复制组件将日志获取与无共享聚类的数据虚拟化管理组件进行协调,从而使得直到日志获取已经进展到完成在线刷新时才将离线克隆切换为在线。
此处所包括的是一组代表用于执行所公开的体系结构的新颖方面的示例性方法的流程图。尽管出于解释简明的目的,此处例如以流图或流程图形式示出的一个或多个方法被示出并描述为一系列动作,但是可以理解和明白,各方法不受动作的次序的限制,因为根据本发明,某些动作可以按与此处所示并描述的不同的次序和/或与其他动作同时发生。例如,本领域技术人员将会明白并理解,方法可被替换地表示为一系列相互关联的状态或事件,诸如以状态图的形式。此外,并非在一方法中示出的所有动作都是新颖实现所必需的。
图4示出了根据所公开的体系结构的计算机实现的数据库管理方法。在400,接收采用自适应克隆的无共享聚类中的数据克隆的变更日志流。在402,将日志流合并成单个有序变更流。在404,将有序变更复制到目的地数据系统。
图5示出了图4的方法的其他方面。在500,在合并日志流时维护变更的原始数据操作次序。在502,在日志流中维护所生成的事务中的日志流的原始数据变更次序。在504,将事务日志记录的复制限于在线克隆。在506,根据全局逻辑时间戳来复制变更。
图6示出了图4的方法的其他方面。在600,根据经合并的变更日志历史来创建有序变更的单个日志流以供复制。在602,从克隆事务日志中创建单个日志流,其中的每一克隆事务日志缺少完整的变更历史。在604,基于提交全局逻辑时间戳来复制变更。
如在本申请中所使用的,术语“组件”和“系统”旨在表示计算机相关的实体,其可以是硬件、硬件和软件的组合、软件、或者执行中的软件。例如,组件可以是,但不限于,诸如处理器、芯片存储器、大容量存储设备(例如,光驱、固态驱动器、和/或磁存储介质驱动器)、以及计算机等有形组件,以及诸如运行在处理器上的进程、对象、可执行码、模块、执行的线程和/或程序等软件组件。作为说明,运行在服务器上的应用程序和服务器都可以是组件。一个或多个组件可以驻留在进程和/或执行的线程内,且组件可以位于一台计算机上和/或分布在两台或更多的计算机之间。词语“示例性”此处可用于表示用作示例、实例或说明。在此被描述为“示例性”的任何方面或设计并不一定要被解释为相比其他方面或设计更优选或有利。
现在参考图7,示出了执行根据所公开的体系结构的在带有自适应克隆的无共享聚类中执行日志复制的计算系统700的框图。为了提供用于其各方面的附加上下文,图7及以下讨论旨在提供对其中可实现各方面的合适的计算系统700的简要概括描述。尽管以上描述是在可在一个或多个计算机上运行的计算机可执行指令的一般上下文中进行的,但是本领域的技术人员将认识到,新颖实施例也可结合其它程序模块和/或作为硬件和软件的组合来实现。
用于实现各方面的计算系统700包括计算机702,其具有处理单元704、诸如系统存储器706等的计算机可读存储、以及系统总线708。处理单元704可以是各种市场上可买到的处理器中的任一种,包括单处理器、多处理器、单核单元以及多核单元。此外,本领域的技术人员可以理解,各新颖方法可用其它计算机系统配置来实施,包括小型机、大型计算机、以及个人计算机(例如、台式、膝上型等)、手持式计算设备、基于微处理器的或可编程消费电子产品等,其每一个都可在操作上耦合到一个或多个相关联的设备。
系统存储器706可包括计算机可读存储(物理存储介质),如易失性(VOL)存储器710(例如,随机存取存储器(RAM))和非易失性存储器(NON-VOL)712(如ROM、EPROM、EEPROM等)。基本输入/输出系统(BIOS)可被存储在非易失性存储器712中,并且包括诸如在启动期间便于在计算机702内的组件之间传递数据和信号的基本例程。易失性存储器710还可包括诸如静态RAM等高速RAM来用于高速缓存数据。
系统总线708提供了用于包括,但不限于系统存储器706的系统组件对处理单元704的接口。系统总线708可以是若干种总线结构中的任一种,这些总线结构还可使用各类可购买到的总线体系结构中的任一种互连到存储器总线(带有或没有存储器控制器)以及外围总线。
计算机702还包括用于机器可读存储子系统714以及将存储子系统714接口到系统总线708和其他所需计算机组件的存储接口716。存储子系统714(物理存储介质)可包括例如硬盘驱动器(HDD)、磁软盘驱动器(FDD)和/或光盘存储驱动器(例如,CD-ROM驱动器、DVD驱动器)中的一种或多种。存储接口716可包括诸如,例如EIDE、ATA、SATA和IEEE1394等接口技术。
一个或多个程序和数据可被存储在存储器子系统706、机器可读和可移动存储器子系统718(例如,闪存驱动器形状因子技术)和/或存储子系统714(例如,光、磁、固态)中,包括操作系统720、一个或多个应用程序722、其他程序模块724以及程序数据726。
一个或多个应用程序722、其他程序模块724以及程序数据726可包括例如图1的系统100的实体和组件、图2的系统200的实体和组件、图3的表300中的状态和活动、以及图4-6的流程图所表示的方法。
一般而言,程序模块包括执行特定任务或实现特定抽象数据类型的例程、方法、数据结构、其他软件组件等等。操作系统720、应用程序722、模块724和/或数据726的全部或部分也可被高速缓存在诸如易失性存储器710等存储器中。应该明白,所公开的体系结构可以用各种市场上可购得的操作系统或操作系统的组合(例如,作为虚拟机)来实施。
存储子系统714和存储器子系统(706和718)用作用于数据、数据结构、计算机可执行指令等的易失性和非易失性存储的计算机可读介质。这些指令当由计算机或其他机器执行时,可使得计算机或其他机器执行方法的一个或多个动作。执行动作的指令可被存储在一个介质上,或者可跨多个介质存储,使得指令共同出现在一个或多个计算机可读存储介质上,而不管所有指令是否都在同一介质上。
计算机可读介质可以是可由计算机702访问的任何可用介质,且包括易失性和非易失性、可移动和不可移动的内部和/或外部介质。对于计算机702,介质容纳适当的数字格式的数据的存储。本领域的技术人员应当理解,可使用其他类型的计算机可读介质,如zip驱动器、磁带、闪存卡、闪存驱动器、磁带盒等来存储用于执行所公开的体系结构的新颖方法的计算机可执行指令。
用户可以使用诸如键盘和鼠标等外部用户输入设备728来与计算机702、程序和数据交互。其他外部用户输入设备728可包括话筒、IR(红外)遥控器、操纵杆、游戏手柄、照相机识别系统、指示笔、触摸屏、姿势系统(例如,眼移动、头移动等)和/或类似物。在计算机702是例如便携式计算机的情况下,用户可以使用诸如触摸垫、话筒、键盘等板载用户输入设备730来与计算机702、程序和数据交互。这些和其它输入设备通过输入/输出(I/O)设备接口732经由系统总线708连接到处理单元704,但也可通过其它接口连接,如并行端口、IEEE1394串行端口、游戏端口、USB端口、IR接口等等。I/O设备接口732还便于使用输出外围设备734,如打印机、音频设备、照相机设备等,如声卡和/或板载音频处理能力。
一个或多个图形接口736(通常也称为图形处理单元(GPU))提供计算机702和外部显示器738(例如,LCD、等离子)和/或板载显示器740(例如,对于便携式计算机)之间的图形和视频信号。图形接口736也可作为计算机系统板的一部分来制造。
计算机702可以使用经由有线/无线通信子系统742到一个或多个网络和/或其他计算机的逻辑连接在联网环境(例如,基于IP的)中操作。其他计算机可包括工作站、服务器、路由器、个人计算机、基于微处理器的娱乐设备、对等设备或其他常见的网络节点,并且通常包括以上相对于计算机702描述的许多或所有元件。逻辑连接可包括到局域网(LAN)、广域网(WAN)热点等的有线/无线连接。LAN和WAN联网环境常见于办公室和公司,并且方便了诸如内联网等企业范围计算机网络,所有这些都可连接到例如因特网等全球通信网络。
当在联网环境中使用时,计算机702经由有线/无线通信子系统742(例如,网络接口适配器、板载收发机子系统等)连接到网络来与有线/无线网络、有线/无线打印机、有线/无线输入设备744等通信。计算机702可包括用于通过网络建立通信的调制解调器或其他装置。在联网环境中,相对于计算机702的程序和数据可被存储在远程存储器/存储设备中,如与分布式系统相关联。应该理解,所示网络连接是示例性的,并且可以使用在计算机之间建立通信链路的其他手段。
计算机702可用于使用诸如IEEE802.xx标准家族等无线电技术来与有线/无线设备或实体通信,例如在操作上安置在与例如打印机、扫描仪、台式和/或便携式计算机、个人数字助理(PDA)、通信卫星、任何一件与无线可检测标签相关联的设备或位置(例如,电话亭、报亭、休息室)以及电话的无线通信(例如,IEEE802.11空中调制技术)中的无线设备。这至少包括用于热点的Wi-Fi(即无线保真)、WiMax和蓝牙TM无线技术。由此,通信可以是如对于常规网络那样的预定义结构,或者仅仅是至少两个设备之间的自组织(adhoc)通信。Wi-Fi网络使用称为IEEE802.11x(a、b、g等等)的无线电技术来提供安全、可靠、快速的无线连接。Wi-Fi网络可用于将计算机彼此连接、连接到因特网以及连接到有线网络(使用IEEE802.3相关介质和功能)。
上面描述的包括所公开的体系结构的各示例。当然,描述每一个可以想到的组件和/或方法的组合是不可能的,但本领域内的普通技术人员应该认识到,许多其他组合和排列都是可能的。因此,该新颖体系结构旨在涵盖所有这些落入所附权利要求书的精神和范围内的更改、修改和变化。此外,就在说明书或权利要求书中使用术语“包括”而言,这一术语旨在以与术语“包含”在被用作权利要求书中的过渡词时所解释的相似的方式为包含性的。
Claims (15)
1.一种计算机实现的数据库管理系统,具有存储由处理器执行的可执行指令的计算机可读介质的,包括:
无共享聚类,所述无共享聚类采用自适应克隆来跨聚类节点存储数据库的数据库段,用于将数据库段的冗余副本维护成聚类中的克隆,每一数据库段具有跟踪事务变更的事务日志记录,将所述事务日志记录形成事务日志流,其中实行自适应克隆从而在主要克隆变得不可用时激活次要克隆变成新的主要克隆,在刷新陈旧克隆时无共享聚类不重放遗漏的更新而是标识陈旧克隆记录中的不匹配,并使用主要克隆和次要克隆之间的外联结更新这些记录以标识过时的陈旧克隆的行的键,在新的主要克隆上锁定所述键,删除来自陈旧克隆的键,以及将与来自新的主要克隆的键相关联的数据行插入到陈旧克隆中;
复制组件,所述复制组件从基于全局逻辑时间戳的在线克隆接收多个事务日志流来创建有序变更的变更历史,将多个日志流合并成单个变更流,并根据变更历史将单个变更流中的变更复制到目的地;以及
微处理器,所述微处理器执行与无共享聚类或复制组件中的至少之一相关联的计算机可执行指令。
2.如权利要求1所述的系统,其特征在于,所述复制组件在接收不同事务的多个事务日志记录时维护所述变更的原始数据操作次序。
3.如权利要求1所述的系统,其特征在于,所述复制组件遵守所述多个事务日志流中所生成的事务中的事务日志记录的原始数据变更次序。
4.如权利要求1所述的系统,其特征在于,所述复制组件基于所述聚类中所采用的提交过程的全局逻辑时间戳接收多个事务日志记录。
5.如权利要求1所述的系统,其特征在于,所述复制组件将所述变更历史创建为单个有序变更流,所述单个有序流是从所述多个事务日志流中创建的,所述多个事务日志流中的每一个缺少所有变更的完整记录。
6.如权利要求1所述的系统,其特征在于,所述复制组件接收仅从在线克隆中生成的事务日志记录。
7.如权利要求1所述的系统,其特征在于,所述复制组件将日志流处理与所述无共享聚类的数据虚拟化管理组件进行协调,所述复制组件从聚类节点中将所述事务日志记录获取为日志流。
8.一种经由处理器和存储器执行的计算机实现的数据库管理方法,包括:
接收在采用自适应克隆的无共享聚类中的数据克隆的变更日志流用于将数据克隆维护成聚类中的数据库段的冗余副本,从而在主要克隆变得不可用时激活次要克隆变成新的主要克隆;
通过把克隆状态转变与日志流获取相协调来确保逻辑复制的正确性将所述日志流合并成有序变更的单个日志流,其中从克隆事务日志中创建单个日志流,每一克隆事务日志缺少完整的变更历史;以及
将所述有序变更复制到目的地数据系统。
9.如权利要求8所述的方法,其特征在于,还包括在合并所述日志流时维护所述变更的原始数据操作次序。
10.如权利要求8所述的方法,其特征在于,还包括在所述日志流中维护所生成的事务中的所述日志流的原始数据变更次序。
11.如权利要求8所述的方法,其特征在于,还包括,将事务日志记录的复制限于在线克隆。
12.如权利要求8所述的方法,其特征在于,还包括根据全局逻辑时间戳来复制所述变更。
13.如权利要求8所述的方法,其特征在于,还包括根据经合并的变更日志历史来创建有序变更的单个日志流以供复制。
14.如权利要求8所述的方法,其特征在于,还包括从克隆事务日志中创建所述单个日志流,所述克隆事务日志中的每一个缺少完整的变更历史。
15.如权利要求8所述的方法,其特征在于,还包括基于提交全局逻辑时间戳来复制所述变更。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US12/758,045 US8671074B2 (en) | 2010-04-12 | 2010-04-12 | Logical replication in clustered database system with adaptive cloning |
US12/758,045 | 2010-04-12 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102214205A CN102214205A (zh) | 2011-10-12 |
CN102214205B true CN102214205B (zh) | 2016-02-24 |
Family
ID=44745513
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201110106115.5A Active CN102214205B (zh) | 2010-04-12 | 2011-04-11 | 用于经聚类的数据库系统中的逻辑复制的系统和方法 |
Country Status (2)
Country | Link |
---|---|
US (2) | US8671074B2 (zh) |
CN (1) | CN102214205B (zh) |
Families Citing this family (66)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9047351B2 (en) | 2010-04-12 | 2015-06-02 | Sandisk Enterprise Ip Llc | Cluster of processing nodes with distributed global flash memory using commodity server technology |
US9164554B2 (en) | 2010-04-12 | 2015-10-20 | Sandisk Enterprise Ip Llc | Non-volatile solid-state storage system supporting high bandwidth and random access |
US8954385B2 (en) * | 2010-06-28 | 2015-02-10 | Sandisk Enterprise Ip Llc | Efficient recovery of transactional data stores |
US10430298B2 (en) * | 2010-10-28 | 2019-10-01 | Microsoft Technology Licensing, Llc | Versatile in-memory database recovery using logical log records |
JP5673234B2 (ja) * | 2011-03-10 | 2015-02-18 | 日本電気株式会社 | データベースのレプリケーション方法 |
US8874515B2 (en) | 2011-04-11 | 2014-10-28 | Sandisk Enterprise Ip Llc | Low level object version tracking using non-volatile memory write generations |
US9600513B2 (en) * | 2011-06-09 | 2017-03-21 | International Business Machines Corporation | Database table comparison |
US9542279B2 (en) * | 2011-11-07 | 2017-01-10 | Sap Se | Shadow paging based log segment directory |
US8671085B2 (en) | 2011-12-09 | 2014-03-11 | Microsoft Corporation | Consistent database recovery across constituent segments |
US8527462B1 (en) | 2012-02-09 | 2013-09-03 | Microsoft Corporation | Database point-in-time restore and as-of query |
US9135064B2 (en) | 2012-03-07 | 2015-09-15 | Sandisk Enterprise Ip Llc | Fine grained adaptive throttling of background processes |
US10776383B2 (en) * | 2012-05-31 | 2020-09-15 | International Business Machines Corporation | Automatic replication of ambiguous data based on a point system |
KR20140047230A (ko) * | 2012-10-10 | 2014-04-22 | (주)티베로 | 분산 시스템에서 분산 트랜잭션의 최적화를 위한 방법 및 트랜잭션을 최적화한 분산 시스템 |
US9514208B2 (en) * | 2012-10-30 | 2016-12-06 | Vekatachary Srinivasan | Method and system of stateless data replication in a distributed database system |
US9063980B2 (en) * | 2012-12-21 | 2015-06-23 | Microsoft Technology Licenising, LLC | Log consolidation |
US9501501B2 (en) | 2013-03-15 | 2016-11-22 | Amazon Technologies, Inc. | Log record management |
US11030055B2 (en) | 2013-03-15 | 2021-06-08 | Amazon Technologies, Inc. | Fast crash recovery for distributed database systems |
US10180951B2 (en) | 2013-03-15 | 2019-01-15 | Amazon Technologies, Inc. | Place snapshots |
US9514007B2 (en) | 2013-03-15 | 2016-12-06 | Amazon Technologies, Inc. | Database system with database engine and separate distributed storage service |
US9672237B2 (en) | 2013-03-15 | 2017-06-06 | Amazon Technologies, Inc. | System-wide checkpoint avoidance for distributed database systems |
US10747746B2 (en) | 2013-04-30 | 2020-08-18 | Amazon Technologies, Inc. | Efficient read replicas |
US9760596B2 (en) | 2013-05-13 | 2017-09-12 | Amazon Technologies, Inc. | Transaction ordering |
US9208032B1 (en) | 2013-05-15 | 2015-12-08 | Amazon Technologies, Inc. | Managing contingency capacity of pooled resources in multiple availability zones |
US10303564B1 (en) | 2013-05-23 | 2019-05-28 | Amazon Technologies, Inc. | Reduced transaction I/O for log-structured storage systems |
US9047189B1 (en) | 2013-05-28 | 2015-06-02 | Amazon Technologies, Inc. | Self-describing data blocks of a minimum atomic write size for a data store |
US10216949B1 (en) | 2013-09-20 | 2019-02-26 | Amazon Technologies, Inc. | Dynamic quorum membership changes |
US9460008B1 (en) | 2013-09-20 | 2016-10-04 | Amazon Technologies, Inc. | Efficient garbage collection for a log-structured data store |
US9699017B1 (en) | 2013-09-25 | 2017-07-04 | Amazon Technologies, Inc. | Dynamic utilization of bandwidth for a quorum-based distributed storage system |
US10223184B1 (en) | 2013-09-25 | 2019-03-05 | Amazon Technologies, Inc. | Individual write quorums for a log-structured distributed storage system |
US9552242B1 (en) * | 2013-09-25 | 2017-01-24 | Amazon Technologies, Inc. | Log-structured distributed storage using a single log sequence number space |
KR20150049877A (ko) * | 2013-10-31 | 2015-05-08 | 삼성에스디에스 주식회사 | 데이터 군집 관리 장치 및 방법 |
US9880933B1 (en) | 2013-11-20 | 2018-01-30 | Amazon Technologies, Inc. | Distributed in-memory buffer cache system using buffer cache nodes |
US9223843B1 (en) | 2013-12-02 | 2015-12-29 | Amazon Technologies, Inc. | Optimized log storage for asynchronous log updates |
US10831528B2 (en) * | 2013-12-19 | 2020-11-10 | International Business Machines Corporation | Replication of batch jobs of computing systems |
US20150205464A1 (en) * | 2014-01-22 | 2015-07-23 | Microsoft Corporation | Updating a user interface to a service |
WO2015145587A1 (ja) * | 2014-03-25 | 2015-10-01 | 株式会社Murakumo | データベースシステム、情報処理装置、方法およびプログラム |
US9779128B2 (en) * | 2014-04-10 | 2017-10-03 | Futurewei Technologies, Inc. | System and method for massively parallel processing database |
JP6402598B2 (ja) | 2014-11-12 | 2018-10-10 | 富士通株式会社 | 情報処理装置、通信方法、通信プログラム、及び、情報処理システム |
US10078680B2 (en) * | 2014-12-17 | 2018-09-18 | Codership Oy | Method for streaming transactions in database cluster |
HUE053427T2 (hu) * | 2015-08-28 | 2021-07-28 | Swirlds Inc | Módszerek és készülékek egy hálózaton belüli elosztott adatbázis számára |
US20170091262A1 (en) * | 2015-09-25 | 2017-03-30 | Netapp, Inc. | Object storage backed file system cache |
US20170091215A1 (en) * | 2015-09-25 | 2017-03-30 | Netapp, Inc. | Write-back cache transaction replication to object-based storage |
US11361000B2 (en) * | 2015-10-27 | 2022-06-14 | Talkcycle Llc | Predictive and adaptive queue flushing for real-time data reconciliation between local and remote databases |
US11640410B1 (en) * | 2015-12-02 | 2023-05-02 | Amazon Technologies, Inc. | Distributed log processing for data replication groups |
EP3438847A4 (en) * | 2016-04-22 | 2019-05-01 | Huawei Technologies Co., Ltd. | METHOD AND DEVICE FOR DUPLICATING A DATABASE IN A DISTRIBUTED SYSTEM |
US10509778B2 (en) * | 2016-05-25 | 2019-12-17 | Google Llc | Real-time transactionally consistent change notifications |
US10346298B2 (en) | 2016-06-10 | 2019-07-09 | Sap Se | Interval garbage collection for multi-version concurrency control in database systems |
US10379775B2 (en) * | 2016-06-28 | 2019-08-13 | Vmware, Inc. | Notification service in a decentralized control plane of a computing system |
US10521311B1 (en) | 2016-06-30 | 2019-12-31 | Amazon Technologies, Inc. | Prioritized leadership for data replication groups |
US10216582B2 (en) | 2016-08-15 | 2019-02-26 | International Business Machines Corporation | Recovery log analytics with a big data management platform |
US10437810B2 (en) * | 2016-09-30 | 2019-10-08 | Microsoft Technology Licensing, Llc | Systems and methods for maintaining cardinality schema to prevent corruption in databases indifferent to cardinality |
US10810102B2 (en) * | 2016-11-28 | 2020-10-20 | Sap Se | Database monitoring by data virtualization |
US10489381B2 (en) * | 2017-04-13 | 2019-11-26 | Sap Se | Adaptive metadata refreshing |
WO2018201237A1 (en) * | 2017-05-01 | 2018-11-08 | Blockchain Technology Group Inc. Dba Blockchain Intelligence Group | System, devices and method for approximating a geographic origin of a cryptocurrency transaction |
US10901944B2 (en) | 2017-05-24 | 2021-01-26 | Microsoft Technology Licensing, Llc | Statelessly populating data stream into successive files |
US10452516B2 (en) * | 2017-07-10 | 2019-10-22 | Microsoft Technology Licensing, Llc | Replaying time-travel traces relying on processor undefined behavior |
US10558493B2 (en) * | 2017-10-31 | 2020-02-11 | Ab Initio Technology Llc | Managing a computing cluster using time interval counters |
US11914571B1 (en) | 2017-11-22 | 2024-02-27 | Amazon Technologies, Inc. | Optimistic concurrency for a multi-writer database |
CN108184170B (zh) * | 2017-11-27 | 2021-08-20 | 北京奇艺世纪科技有限公司 | 一种数据处理方法及装置 |
US10963312B2 (en) * | 2018-11-16 | 2021-03-30 | International Business Machines Corporation | Generation of unique ordering of events at cloud scale |
US11086840B2 (en) | 2018-12-07 | 2021-08-10 | Snowflake Inc. | Transactional streaming of change tracking data |
US11321354B2 (en) * | 2019-10-01 | 2022-05-03 | Huawei Technologies Co., Ltd. | System, computing node and method for processing write requests |
US11487631B2 (en) * | 2020-03-26 | 2022-11-01 | International Business Machines Corporation | Data refresh in a replication environment |
US11341163B1 (en) | 2020-03-30 | 2022-05-24 | Amazon Technologies, Inc. | Multi-level replication filtering for a distributed database |
US11461201B2 (en) * | 2020-12-21 | 2022-10-04 | Sap Se | Cloud architecture for replicated data services |
CN115443457A (zh) * | 2021-04-06 | 2022-12-06 | 华为云计算技术有限公司 | 事务处理方法、分布式数据库系统、集群及介质 |
Family Cites Families (38)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5287501A (en) | 1991-07-11 | 1994-02-15 | Digital Equipment Corporation | Multilevel transaction recovery in a database system which loss parent transaction undo operation upon commit of child transaction |
US5469562A (en) | 1992-06-26 | 1995-11-21 | Digital Equipment Corporation | Durable atomic storage update manager |
WO1997004389A1 (en) | 1995-07-20 | 1997-02-06 | Novell, Inc. | Transaction synchronization in a disconnectable computer and network |
US5787247A (en) | 1996-07-12 | 1998-07-28 | Microsoft Corporation | Replica administration without data loss in a store and forward replication enterprise |
US6226650B1 (en) | 1998-09-17 | 2001-05-01 | Synchrologic, Inc. | Database synchronization and organization system and method |
US6438705B1 (en) | 1999-01-29 | 2002-08-20 | International Business Machines Corporation | Method and apparatus for building and managing multi-clustered computer systems |
US7774469B2 (en) | 1999-03-26 | 2010-08-10 | Massa Michael T | Consistent cluster operational data in a server cluster using a quorum of replicas |
JP3763992B2 (ja) | 1999-03-30 | 2006-04-05 | 富士通株式会社 | データ処理装置及び記録媒体 |
US6374241B1 (en) * | 1999-03-31 | 2002-04-16 | Verizon Laboratories Inc. | Data merging techniques |
US6567823B1 (en) | 2000-08-07 | 2003-05-20 | Corigin Ltd. | Change propagation method using DBMS log files |
US6801921B2 (en) | 2000-09-08 | 2004-10-05 | Hitachi, Ltd. | Method and system for managing multiple database storage units |
GB0022131D0 (en) | 2000-09-09 | 2000-10-25 | Ibm | Data sorting in information storage systems |
US6671686B2 (en) | 2000-11-02 | 2003-12-30 | Guy Pardon | Decentralized, distributed internet data management |
US6847983B2 (en) | 2001-02-28 | 2005-01-25 | Kiran Somalwar | Application independent write monitoring method for fast backup and synchronization of open files |
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 |
CA2419883A1 (en) | 2003-02-26 | 2004-08-26 | Ibm Canada Limited - Ibm Canada Limitee | Discriminatory replay of log files during table space recovery in a database management system |
FR2855924B1 (fr) | 2003-06-06 | 2005-07-15 | Radiotelephone Sfr | Procede de controle avec gestion d'un identifiant opaque d'utilisateur de la livraison complete d'un service utilisant un ensemble de serveurs |
US20050010588A1 (en) | 2003-07-08 | 2005-01-13 | Zalewski Stephen H. | Method and apparatus for determining replication schema against logical data disruptions |
US7490113B2 (en) | 2003-08-27 | 2009-02-10 | International Business Machines Corporation | Database log capture that publishes transactions to multiple targets to handle unavailable targets by separating the publishing of subscriptions and subsequently recombining the publishing |
US7334002B2 (en) | 2004-02-27 | 2008-02-19 | Microsoft Corporation | System and method for recovery units in databases |
US20050283658A1 (en) | 2004-05-21 | 2005-12-22 | Clark Thomas K | Method, apparatus and program storage device for providing failover for high availability in an N-way shared-nothing cluster system |
US7257690B1 (en) | 2004-10-15 | 2007-08-14 | Veritas Operating Corporation | Log-structured temporal shadow store |
GB0428109D0 (en) | 2004-12-23 | 2005-01-26 | Ibm | A method for determining participation in a distributed transaction |
US7509307B2 (en) | 2005-01-19 | 2009-03-24 | International Business Machines Corporation | Redundant version information in history table that enables efficient snapshot querying |
US7693882B2 (en) * | 2005-10-04 | 2010-04-06 | Oracle International Corporation | Replicating data across the nodes in a cluster environment |
US7801846B2 (en) | 2006-04-04 | 2010-09-21 | Computer Associates Think, Inc. | Generating log sequence identifiers to apply a transaction to a storage system |
US7668878B2 (en) | 2006-07-31 | 2010-02-23 | Oracle International Corporation | Replicating data between heterogeneous data systems |
US7917469B2 (en) * | 2006-11-08 | 2011-03-29 | Hitachi Data Systems Corporation | Fast primary cluster recovery |
US20080140734A1 (en) * | 2006-12-07 | 2008-06-12 | Robert Edward Wagner | Method for identifying logical data discrepancies between database replicas in a database cluster |
US8156107B2 (en) | 2007-02-02 | 2012-04-10 | Teradata Us, Inc. | System and method for join-partitioning for local computability of query over shared-nothing clusters |
US20080243769A1 (en) | 2007-03-30 | 2008-10-02 | Symantec Corporation | System and method for exporting data directly from deduplication storage to non-deduplication storage |
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 |
US8091082B2 (en) | 2008-03-12 | 2012-01-03 | DGN Technologies, Inc. | Systems and methods for risk analysis and updating of software |
US8396863B2 (en) | 2008-03-28 | 2013-03-12 | Oracle International Corporation | Temporal class loader |
US8078582B2 (en) | 2009-04-06 | 2011-12-13 | Microsoft Corporation | Data change ordering in multi-log based replication |
US8108343B2 (en) | 2009-04-23 | 2012-01-31 | Microsoft Corporation | De-duplication and completeness in multi-log based replication |
US8266101B1 (en) * | 2009-07-16 | 2012-09-11 | Binpeng Shuai | Share nothing database cluster and real time synchronization by signaling |
US8676753B2 (en) * | 2009-10-26 | 2014-03-18 | Amazon Technologies, Inc. | Monitoring of replicated data instances |
-
2010
- 2010-04-12 US US12/758,045 patent/US8671074B2/en active Active
-
2011
- 2011-04-11 CN CN201110106115.5A patent/CN102214205B/zh active Active
-
2014
- 2014-01-21 US US14/159,640 patent/US20140195489A1/en not_active Abandoned
Also Published As
Publication number | Publication date |
---|---|
US20140195489A1 (en) | 2014-07-10 |
CN102214205A (zh) | 2011-10-12 |
US8671074B2 (en) | 2014-03-11 |
US20110251997A1 (en) | 2011-10-13 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102214205B (zh) | 用于经聚类的数据库系统中的逻辑复制的系统和方法 | |
US11516072B2 (en) | Hybrid cluster recovery techniques | |
JP6553822B2 (ja) | 分散システムにおける範囲の分割および移動 | |
CN102142024B (zh) | 在分布式数据库中使用递增捕捉来进行逻辑数据备份和回退 | |
CN104040481B (zh) | 用于融合、存储和检索增量式备份数据的方法和系统 | |
CN102804183B (zh) | 在持续工作负荷下的数据重新组织 | |
US8805783B2 (en) | Synchronization of subsets of data including support for varying set membership | |
CN101809558B (zh) | 远程异步数据复制系统和方法 | |
WO2016177026A1 (zh) | 一种去中心化自治组织的数据处理方法及装置 | |
US20150213100A1 (en) | Data synchronization method and system | |
CN107209704A (zh) | 检测丢失的写入 | |
CN104081354A (zh) | 在可缩放环境中管理分区 | |
CN103842969A (zh) | 信息处理系统 | |
CN104081353A (zh) | 可缩放环境中的动态负载平衡 | |
CN103597463A (zh) | 恢复服务的自动配置 | |
KR20110044858A (ko) | 데이터 센터들에 걸쳐 데이터 서버들내 데이터 무결정의 유지 | |
CN103593266A (zh) | 一种基于仲裁盘机制的双机热备方法 | |
CN102317923A (zh) | 存储系统 | |
CN103902410A (zh) | 云存储系统的数据备份加速方法 | |
CN103902405A (zh) | 一种准连续性数据复制方法及装置 | |
CN102323930A (zh) | 对数据库系统中的数据变更进行镜像 | |
CN104978336A (zh) | 基于Hadoop分布式计算平台的非结构化数据存储系统 | |
WO2017014814A1 (en) | Replicating memory volumes | |
CN107577564A (zh) | 一种基于块同步技术实现双活系统的方法 | |
US20140040574A1 (en) | Resiliency with a destination volume in a replication environment |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
ASS | Succession or assignment of patent right |
Owner name: MICROSOFT TECHNOLOGY LICENSING LLC Free format text: FORMER OWNER: MICROSOFT CORP. Effective date: 20150721 |
|
C41 | Transfer of patent application or patent right or utility model | ||
TA01 | Transfer of patent application right |
Effective date of registration: 20150721 Address after: Washington State Applicant after: Micro soft technique license Co., Ltd Address before: Washington State Applicant before: Microsoft Corp. |
|
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |