[发明专利]使用逻辑文档日志的可扩展最终一致性系统有效
| 申请号: | 201580032375.9 | 申请日: | 2015-06-16 |
| 公开(公告)号: | CN106663103B | 公开(公告)日: | 2020-08-18 |
| 发明(设计)人: | P·A·奥特考特;T·塞维尔米什;A·卡帕迪亚;R·扬德尔 | 申请(专利权)人: | 微软技术许可有限责任公司 |
| 主分类号: | G06F16/27 | 分类号: | G06F16/27;G06F16/16;G06F16/178;G06F16/18;G06F16/176;G06F16/21;G06F16/93;G06F16/23 |
| 代理公司: | 永新专利商标代理有限公司 72002 | 代理人: | 王英;刘瑜 |
| 地址: | 美国华*** | 国省代码: | 暂无信息 |
| 权利要求书: | 查看更多 | 说明书: | 查看更多 |
| 摘要: | |||
| 搜索关键词: | 使用 逻辑 文档 日志 扩展 最终 一致性 系统 | ||
一种可扩展最终一致性系统。该系统使用逻辑文档日志来在大规模服务中跨多个分区而提供最终一致性。该系统允许通过并行化来对大量互连的文档图进行事务性编辑而不牺牲线性可扩展性。该系统将编辑的权限与重复的存储进行分离,以允许高效的事务和线性可扩展性。所有文档写都被写入到日志中的特定于文档的分区,在这里文档写进行排队直到改变被传播至存储的基于视图的分区为止。通过不断地检查日志并且尝试将任何未完成的文档写复制到存储,该系统在没有复杂的同步机制的情况下提供了最终一致性。该系统以允许将最终影响多于一个文档的文档写作为对单个文档的编辑来通过日志高效地处理的方式来对文档的隶属和包含关系进行建模。
背景技术
大规模服务允许跨海量数据的事务(transaction)并且经常保存数据的多个复本。基础资源具有有限限度,这限制了能够在任意单个事务中处理的数据的量。作为结果,大规模服务通常被设计为具有固定的规模单位(scale unit)。当服务上的负载超过规模单位时,可以添加额外的规模单位并且数据可以跨多个规模单位进行分区。尽管这允许服务容纳增加的量的数据,但是事务不再能够跨已经被分区的数据来执行。
针对该问题的传统的解决方案包括使用同步机制来调和数据、迫使对数据进行的人工划分适应该规模单位、或者放弃事务。同步机制经常非常复杂并且具有多方主导的问题。如果针对文档进行了冲突的编辑,则需要用户干预来解决该冲突。由于传播延迟,冲突可能在用户已经得到事务成功的确认并且登出服务之后才会发生。因此,冲突可能长时间无法解决。
使得未解决的冲突最小化的一种机制是具有负责特定的记录的权限,但是这在记录被复制并存储在多个地方时不能够得到高效地处理。传统的解决方案使用诸如Paxos之类的一致性协议来在存储复本的顶端构建人工权限。然而,当一致性系统中的节点由于网络运行中断而不可用或者无法进行通信时,该一致性系统存在问题。
关于这些和其他考虑而进行了本发明。尽管已经讨论了相对具体的问题,但是应当理解的是,在本文中所公开的实施例不应该限于解决在背景技术中所标识的具体的问题。
发明内容
提供了该发明内容以用简化的形式引入了在下文的具体实施方式部分中所进一步描述的概念的选择。该发明内容不旨在标识所要求保护的主题的关键特征或本质特征,也不旨在用来帮助确定所要求保护的主题的范围。
一种可扩展最终一致性系统的实施例包括事务对象模型,其允许针对大规模服务的高效且可扩展的最终一致性。在可扩展最终一致性系统内,由分离的层来处理写请求和读请求。日志服务写请求(例如,对文档的写入)在分区方案中与写动作相一致。存储服务读请求(即,视图的读取)在分区方案中与读动作相一致。该日志包括用于存储文档的至少一个基于文档的分区。该存储包括用于存储文档的至少一个基于视图的分区。
当用户执行诸如创建、修改、或删除文档之类的动作时,写请求被传送至可扩展最终一致性系统。在接收之后,该可扩展最终一致性系统首先将该写请求保存至日志。在已经将该写请求保存至日志之后,对文档的改变被认为是将要接受的。该可扩展最终一致性系统的实施例可以在接收之后在至少两个不同的位置中将该写请求保存至日志。可以将该写请求的一个副本作为运行记录来保存,所述运行记录充当标识还没有与存储完全融合的写请求的动作项。该写请求的另一个副本可以作为示出了不同版本之间的对文档的改变的历史记录来保存。
改变提交层负责将写请求从日志传播至存储。文档写从日志流至存储从而没有复杂的同步机制。在各个实施例中,可扩展最终一致性系统可以当运行记录在日志中被创建时进行首次尝试以将所述运行记录复制到存储。一旦已经成功地复制了运行记录,就将该运行记录从日志中删除。
一致性恢复层负责改变提交层的循环操作并最后提供最终一致性。一致性恢复层持续地提示改变提交层以通读由日志所保存的现有的记录并且将任何运行记录复制到存储。
附图说明
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于微软技术许可有限责任公司,未经微软技术许可有限责任公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201580032375.9/2.html,转载请声明来源钻瓜专利网。





