[发明专利]使用逻辑文档日志的可扩展最终一致性系统有效
| 申请号: | 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 | 代理人: | 王英;刘瑜 |
| 地址: | 美国华*** | 国省代码: | 暂无信息 |
| 权利要求书: | 查看更多 | 说明书: | 查看更多 |
| 摘要: | |||
| 搜索关键词: | 使用 逻辑 文档 日志 扩展 最终 一致性 系统 | ||
1.一种用于在使得文档能够由多个用户访问的服务中提供可扩展最终一致性的方法,所述方法包括以下操作:
接收写请求,每个写请求包括文档标识符和文档数据;
在第一存储系统的所选择的分区中针对每个写请求而创建历史记录,所述历史记录示出了在版本与版本之间的对文档的改变;
在为写请求服务的所述第一存储系统的所述所选择的分区中针对每个写请求而创建运行记录;
尝试将所述运行记录复制到为读请求服务的第二存储系统,所述运行记录充当标识还没有与所述第二存储系统完全融合的写请求的动作项;以及
在已经成功地将所述运行记录复制到所述第二存储系统时从所述第一存储系统中删除所述运行记录;并且
当所述第一存储系统的所述所选择的分区包含运行记录时,重复以下操作:尝试将所述运行记录复制到为读请求服务的第二存储系统以及删除已经被成功地复制到所述第二存储系统的所述运行记录。
2.根据权利要求1所述的方法,其中,所述所选择的分区基于所述文档标识符。
3.根据权利要求1所述的方法,其中,所述第二存储系统按照为读请求服务所需的视图进行分区,其中,视图涵盖了用来向用户呈现文档的基于常见属性值的文档的任何索引、分组、或类别。
4.根据权利要求1所述的方法,还包括基于相关联的文档标识符向每个写请求分配分区键值的操作,每个分区键值与所述第一存储系统中的分区相对应。
5.根据权利要求4所述的方法,还包括基于所述相关联的文档标识符的散列值来计算所述写请求的所述分区键值的操作。
6.根据权利要求1所述的方法,还包括向所述写请求分配唯一的标识符的操作。
7.一种用于在使得文档能够由多个用户访问的服务中提供可扩展最终一致性的系统,所述系统包括:
第一存储系统,所述第一存储系统用于将与对文档的改变相关联的写请求存储在所选择的分区中;
第二存储系统,所述第二存储系统用于存储被用来为读请求服务的文档记录;
具有处理器和存储器的计算设备,所述计算设备用于:
接收写请求;
在所述第一存储系统的所述所选择的分区中针对所述写请求而创建历史记录,其中,所述历史记录适用于示出在版本与版本之间的对文档的改变;
在所述第一存储系统的所述所选择的分区中针对所述写请求来创建运行记录;
尝试将所述运行记录复制到所述第二存储系统,所述运行记录充当标识还没有与所述第二存储系统完全融合的写请求的动作项;
从所述第一存储系统中删除已经成功地复制的运行记录;以及
当所述第一存储系统的所述所选择的分区包含运行记录时,重复以下操作:尝试将所述运行记录复制到为读请求服务的第二存储系统以及删除已经被成功地复制到所述第二存储系统的所述运行记录。
8.根据权利要求7所述的系统,其中,所述第二存储系统按照为读请求服务所需的视图进行分区,其中,视图涵盖了用来向用户呈现文档的基于常见属性值的文档的任何索引、分组、或类别。
9.根据权利要求7所述的系统,其中,所述计算设备还用于不断地读取所述第一存储系统的所述所选择的分区以定位运行记录并且将所定位的运行记录复制到所述第二存储系统。
10.根据权利要求7所述的系统,其中,所述计算设备还用于向所述写请求分配唯一的标识符。
11.根据权利要求10所述的系统,其中,所述唯一的标识符包括与文档版本标识符相结合的文档标识符以及区分运行记录和历史记录的记录类型指示符。
12.一种包含计算机可执行指令的计算机可读介质,其中,当由计算机执行时,所述计算机可执行指令执行在使得文档能够由多个用户访问的大规模服务中提供可扩展最终一致性的方法,所述方法包括以下操作:
接收写请求,每个写请求包括文档标识符和文档数据;
基于所述文档标识符的散列值来计算每个写请求的分区键值,每个分区键值与为写请求服务的第一存储系统中的所选择的分区相对应;
将针对每个写请求的运行记录和历史记录添加至与所述写请求的所述分区键值相对应的所述第一存储系统中的所述所选择的分区,其中,所述历史记录示出了在版本与版本之间的对文档的改变;
尝试将所述运行记录复制到第二存储系统,所述第二存储系统为读请求服务,并且按照为读请求服务所需的视图来分区,其中,所述运行记录充当标识还没有与所述第二存储系统完全融合的写请求的动作项;
从所述第一存储系统中的所述所选择的分区中删除已经成功地复制到所述第二存储系统的每个运行记录;并且
当读取所述第一存储系统中的记录列表时,针对在所述记录列表中所发现的每个运行记录而重复以下操作:尝试将所述运行记录复制到第二存储系统,以及删除已经成功地复制到所述第二存储系统的每个运行记录。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于微软技术许可有限责任公司,未经微软技术许可有限责任公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201580032375.9/1.html,转载请声明来源钻瓜专利网。





