[发明专利]已分区的、可缩放的、并且可用的结构化存储中的分区管理有效
申请号: | 200980142662.X | 申请日: | 2009-10-23 |
公开(公告)号: | CN102197372A | 公开(公告)日: | 2011-09-21 |
发明(设计)人: | B·G·卡尔德;J·王;A·E·绍尔斯沃德;S·斯里瓦斯塔瓦;N·尼拉康特恩;D·巴德瓦杰 | 申请(专利权)人: | 微软公司 |
主分类号: | G06F9/44 | 分类号: | G06F9/44;G06F15/16 |
代理公司: | 上海专利商标事务所有限公司 31100 | 代理人: | 陈斌 |
地址: | 美国华*** | 国省代码: | 美国;US |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 分区 缩放 并且 可用 结构 存储 中的 管理 | ||
背景技术
包括服务器农场、web服务等的分布式系统对于提供巨大量的计算和存储资源已变得日益常见。例如,分布式存储系统被用来为各种应用存储并检索巨大量的数据。在一些情况下,存储系统利用结构化存储来更高效地存储、检索以及查询数据。结构化存储系统可以跨遍及网络的多个节点来存储数据。随着提供这样的存储所需的计算资源量的增加,这样的存储系统可以通过添加附加计算设备而“扩展”,从而提供可以按需添加附加资源的灵活的拓扑结构。因此,结构化存储系统可例如从千万亿字节的存储数据扩展成百万万亿字节的存储数据。结果,管理这样的结构化存储系统内的数据以使得数据总是可供访问并且持久以防止数据丢失通常是复杂的。
概述
提供本概述是为了以简化的形式介绍将在以下详细描述中进一步描述的一些概念。本发明内容不旨在标识所要求保护的主题的关键特征或本质特征,也不旨在用于帮助确定所要求保护的主题的范围。
本发明的各实施例涉及结构化数据存储系统中的分区管理。在该存储中,结构化数据被划分成可由不同的服务器提供的多个分区。使用分区图来跟踪这些分区的所在之处。更具体地,使用分区图,客户机可以找出哪一服务器正在提供特定数据段。跟踪各分区的详细负载信息。各分区可以在服务器之间移动,以跨各服务器来达到负载平衡。在一些实施例中,为了达到更好的负载平衡,标识具有高负载的分区来进行拆分。确定拆分该分区的位置,并且将该分区拆分以创建子分区,在一些实施例中,这些子分区可被卸载到另一服务器。更新分区图以反映该分区已被拆分成各子分区。在一些实施例中,标识两个或更多个分区来进行归并。归并这些分区并更新分区图来反映经归并的分区。
结构化存储是在流系统的顶层构建的,该流系统呈现只可添加(append-only)的文件系统界面。流类似于只可添加的文件。每一分区具有与它相关联的一组流。该分区的所有持久状态都保持在与它相关联的这一组流中。在该组流中,存在该分区的元数据流,它包含到该分区的所有其他流的指针以及该分区的必要信息,该必要信息诸如是该分区中包括的所有行的分区键范围。
附图简述
下面参考附图详细描述本发明,附图中:
图1是适用于实现本发明的各实施例的示例性计算环境的框图;
图2描绘根据本发明的一实施例的表结构;
图3是其中可以实现本发明的各实施例的示例性系统的框图;
图4是根据本发明的一实施例的示出一个分区的框图;
图5是根据本发明的一实施例的示出用于拆分一分区的方法的流程图;
图6描绘根据本发明的一实施例的被拆分成两个子分区的父分区的示例;
图7是根据本发明的另一实施例的示出用于拆分一分区的方法的流程图;
图8是根据本发明的一实施例的示出用于将各分区归并成一个经归并的分区的方法的流程图;
图9是根据本发明的一实施例的示出用于恢复破坏分区的方法的流程图;以及
图10是根据本发明的一实施例的示出用于分区版本化和升级的方法的流程图。
详细描述
此处用细节来描述本发明的主题以满足法定要求。然而,该描述本身并非旨在限制本专利的范围。相反,发明人设想所要求保护的主题还可结合其他当前或未来技术按照其他方式来具体化,以包括不同的步骤或类似于本文中所描述的步骤的步骤组合。此外,尽管术语“步骤”和/或“框”可在此处用于指示所采用的方法的不同元素,但除非而且仅当明确描述了各个步骤的顺序,否则该术语不应被解释为意味着此处公开的各个步骤之中或之间的任何特定顺序。
本发明的各实施例提供可缩放的、可用的、并且持久的结构化存储。该结构化存储由多个表来表示,这些表中的每一个包括多个行,每一行表示一数据实体。表被分成多个分区,每一分区包括来自该表的一定范围的行。各分区存储在表服务器上并且被使用表主机来进行管理。
在一些实施例中,各分区是出于负载分布的目的来被拆分的。跟踪各表服务器和各分区的负载分布信息。基于该负载分布信息,表主机可以决定对各分区进行负载平衡,并将各分区重新分配给不同的节点以分布负载。另外,对于一些分区,表主机可以决定将拆分一分区以分布当前负载。表主机确定拆分比率,并查询提供该分区的表服务器以寻找用于定位该拆分的键信息。基于从表服务器接收到的键信息,表主机指令该表服务器拆分该分区。在接收到拆分请求后,表服务器卸载目标分区,创建子分区,并开始提供该子分区。在一些实施例中,子分区被分配给另一表服务器。更新分区图以反映提供子分区的表服务器。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于微软公司,未经微软公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/200980142662.X/2.html,转载请声明来源钻瓜专利网。