[发明专利]分派冲突的数据变更有效
| 申请号: | 201110008510.X | 申请日: | 2011-01-07 |
| 公开(公告)号: | CN102122289A | 公开(公告)日: | 2011-07-13 |
| 发明(设计)人: | R·王;M·哈本;Q·郭;A·奥克斯 | 申请(专利权)人: | 微软公司 |
| 主分类号: | G06F17/30 | 分类号: | G06F17/30 |
| 代理公司: | 上海专利商标事务所有限公司 31100 | 代理人: | 顾嘉运;钱静芳 |
| 地址: | 美国华*** | 国省代码: | 美国;US |
| 权利要求书: | 查看更多 | 说明书: | 查看更多 |
| 摘要: | |||
| 搜索关键词: | 分派 冲突 数据 变更 | ||
背景技术
复制是跟踪、分派数据变更并到将数据变更从一个数据库应用到另一数据库的能力。在关系型数据库管理系统(RDBMS)中,通常出于恢复目的将数据库中的数据变更记入日志。关于复制的系统元数据确定正在变更什么数据以及要复制的变更。要复制的数据可以包括整个数据库、整张表、来自表的所选行、来自表的指定列或所存储的过程。随后可以标记日志中的数据变更以供复制。数据变更可以被分成连续日志范围,从而使得每一日志范围的数据变更在一批中复制到目的地站点。在常规的事务复制中,数据变更通常通过单个连接或流从源站点分派并在目的地站点处应用。虽然单个流确保将数据变更按照与源站点相同的次序在目的地站点处应用来维持事务一致性,但是由于这种方法会出现吞吐量限制。
为了避免这些吞吐量限制,使用多个流(即,多流)来执行复制,以使得数据变更在目的地站点处并行地应用。这种并行性导致系统作为整体的更高的吞吐量和性能。在使用多流方法来执行复制时,基于预定散列密钥将一批中的数据变更分派到多个不同的流中。结果,被分派到不同的流中的数据变更可能按照与它们在源站点处执行的不同的次序在目的地站点处应用。无序地应用数据变更可能违反冲突数据变更之间的一个或多个因果一致性约束。因果一致性约束的示例包括主键约束、唯一约束和外键约束。
发明内容
此处描述的是用于将冲突数据变更分派到多个流中的各种技术的实现。冲突数据变更可以指涉及同一因果一致性约束并且如果无序地在目的地站点处应用则会违反这些因果一致性约束的两个或更多数据变更。在一个实现中,计算机应用程序可以从源站点接收包括多个数据变更以及可以在目的地站点处应用相应的数据变更的次序的日志。计算机应用程序随后可以从日志中提取所有的数据变更。在从日志中提取数据变更之后,计算机应用程序可以生成一组散列值,从而使得每一数据变更中的每一约束具有一散列值。
在生成该组散列值时,计算机应用程序可以使用散列函数来为每一约束创建散列值。计算机应用程序随后可以将一个数据变更的所有散列值串接成二进制串并将该二进制串与来自日志的其相应的数据变更相关联。
在一个实现中,源站点和目的地站点可以通过多个流彼此连接。最初,如果将源站点连接到目的地站点的所有流都是空的,则计算机应用程序可以遵循如日志中指示的次序将非冲突数据变更平均地分派到多个流中。在已经分派了数据变更后但在目的地站点处提交数据变更之前,计算机应用程序可以维护一散列表来记住已经分派的数据变更。该散列表中的每一条目可以包括约束散列值、约束标识(ID)和其中已经分派数据变更的流的ID。
在一个实现中,在分派后续数据变更之前,计算机应用程序可以搜索散列表来确定散列表中的条目是否具有与后续数据变更相同的约束ID和相同的约束散列值(即,约束对)。如果计算机应用程序没有在散列表中找到匹配条目,则计算机应用程序可以将后续数据变更分派到流中从而使得数据变更被平均地分发到多个流中。在分派后续数据变更时,计算机应用程序可以将后续数据变更的约束ID、约束散列值和流ID作为新的条目添加到散列表中。
然而,如果计算机应用程序在散列表中找到匹配条目,则计算机应用程序可以确定该后续数据变更和与匹配条目中的约束ID和约束散列值相关的数据变更是冲突的。计算机应用程序随后可以将后续数据变更分派到匹配条目的数据变更被分派到的相同的流中来确保这两个数据变更按照其原始的相对次序来执行。
在一个实现中,后续数据变更可能与散列表中一个以上的条目冲突。在这种情况下,计算机应用程序可以将冲突的数据变更分派到不同的流中,但计算机应用程序可以扼住后续数据变更的流来避免违反任何约束。通过扼住后续数据变更的流,计算机应用程序可以确保在先的数据变更在后续数据变更之前发生,从而使得数据变更按照正确的次序在目的地处执行。在以上描述的实现中的任一个中,在一批中被分派到各个流中的所有数据变更可以在单个事务中被传递到目的地站点并因此一起应用。
提供以上引用的概述章节以便以简化形式介绍将在以下详细描述章节中进一步描述的一些概念。本发明内容并不旨在标识所要求保护的主题的关键特征或必要特征,也不旨在用于限制所要求保护的主题的范围。此外,所要求保护的主题不限于解决在本发明的任一部分中提及的任何或所有缺点的实现。
附图说明
图1示出其中可包括和实践此处所描述的各种技术的计算系统的示意图。
图2示出其中可包括和实践此处所描述的各种技术的事务式复制系统的示意图。
图3示出根据此处描述的各种技术的一个或多个实现的用于将冲突的数据变更分派到多个流中的方法的流程图。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于微软公司,未经微软公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201110008510.X/2.html,转载请声明来源钻瓜专利网。
- 上一篇:一种用于建筑窗户防排水的方法
- 下一篇:在用户剖析期间维持私密性
- 数据显示系统、数据中继设备、数据中继方法、数据系统、接收设备和数据读取方法
- 数据记录方法、数据记录装置、数据记录媒体、数据重播方法和数据重播装置
- 数据发送方法、数据发送系统、数据发送装置以及数据结构
- 数据显示系统、数据中继设备、数据中继方法及数据系统
- 数据嵌入装置、数据嵌入方法、数据提取装置及数据提取方法
- 数据管理装置、数据编辑装置、数据阅览装置、数据管理方法、数据编辑方法以及数据阅览方法
- 数据发送和数据接收设备、数据发送和数据接收方法
- 数据发送装置、数据接收装置、数据收发系统、数据发送方法、数据接收方法和数据收发方法
- 数据发送方法、数据再现方法、数据发送装置及数据再现装置
- 数据发送方法、数据再现方法、数据发送装置及数据再现装置





