当前位置: 首页 > 专利查询>微软公司专利>正文

已分区的、可缩放的、并且可用的结构化存储中的分区管理制造技术

技术编号:7155133 阅读:189 留言:0更新日期:2012-04-11 18:40
提供了用于可缩放的结构化存储系统的分区管理。该存储系统提供有一个或多个表来表示的存储,这些表中的每一个包括表示数据实体的行。表被分成多个分区,每一分区包括连续范围的行。各分区由表服务器提供并且由表主机来管理。跟踪表服务器和分区的负载分布信息,并且表主机基于该负载分布信息来确定要拆分和/或归并各分区。

【技术实现步骤摘要】
【国外来华专利技术】已分区的、可缩放的、并且可用的结构化存储中的分区管理
技术介绍
包括服务器农场、web服务等的分布式系统对于提供巨大量的计算和存储资源已变得日益常见。例如,分布式存储系统被用来为各种应用存储并检索巨大量的数据。在一些情况下,存储系统利用结构化存储来更高效地存储、检索以及查询数据。结构化存储系统可以跨遍及网络的多个节点来存储数据。随着提供这样的存储所需的计算资源量的增加, 这样的存储系统可以通过添加附加计算设备而“扩展”,从而提供可以按需添加附加资源的灵活的拓扑结构。因此,结构化存储系统可例如从千万亿字节的存储数据扩展成百万万亿字节的存储数据。结果,管理这样的结构化存储系统内的数据以使得数据总是可供访问并且持久以防止数据丢失通常是复杂的。概述提供本概述是为了以简化的形式介绍将在以下详细描述中进一步描述的一些概念。本
技术实现思路
不旨在标识所要求保护的主题的关键特征或本质特征,也不旨在用于帮助确定所要求保护的主题的范围。本专利技术的各实施例涉及结构化数据存储系统中的分区管理。在该存储中,结构化数据被划分成可由不同的服务器提供的多个分区。使用分区图来跟踪这些分区的所在之处。更具体地,使用分区图,客户机可以找出哪一服务器正在提供特定数据段。跟踪各分区的详细负载信息。各分区可以在服务器之间移动,以跨各服务器来达到负载平衡。在一些实施例中,为了达到更好的负载平衡,标识具有高负载的分区来进行拆分。确定拆分该分区的位置,并且将该分区拆分以创建子分区,在一些实施例中,这些子分区可被卸载到另一服务器。更新分区图以反映该分区已被拆分成各子分区。在一些实施例中,标识两个或更多个分区来进行归并。归并这些分区并更新分区图来反映经归并的分区。结构化存储是在流系统的顶层构建的,该流系统呈现只可添加(append-only)的文件系统界面。流类似于只可添加的文件。每一分区具有与它相关联的一组流。该分区的所有持久状态都保持在与它相关联的这一组流中。在该组流中,存在该分区的元数据流,它包含到该分区的所有其他流的指针以及该分区的必要信息,该必要信息诸如是该分区中包括的所有行的分区键范围。附图简述下面参考附图详细描述本专利技术,附图中附图说明图1是适用于实现本专利技术的各实施例的示例性计算环境的框图;图2描绘根据本专利技术的一实施例的表结构;图3是其中可以实现本专利技术的各实施例的示例性系统的框图;图4是根据本专利技术的一实施例的示出一个分区的框图;图5是根据本专利技术的一实施例的示出用于拆分一分区的方法的流程图;图6描绘根据本专利技术的一实施例的被拆分成两个子分区的父分区的示例;图7是根据本专利技术的另一实施例的示出用于拆分一分区的方法的流程图;图8是根据本专利技术的一实施例的示出用于将各分区归并成一个经归并的分区的方法的流程图;图9是根据本专利技术的一实施例的示出用于恢复破坏分区的方法的流程图;以及图10是根据本专利技术的一实施例的示出用于分区版本化和升级的方法的流程图。详细描述此处用细节来描述本专利技术的主题以满足法定要求。然而,该描述本身并非旨在限制本专利的范围。相反,专利技术人设想所要求保护的主题还可结合其他当前或未来技术按照其他方式来具体化,以包括不同的步骤或类似于本文中所描述的步骤的步骤组合。此外,尽管术语“步骤”和/或“框”可在此处用于指示所采用的方法的不同元素,但除非而且仅当明确描述了各个步骤的顺序,否则该术语不应被解释为意味着此处公开的各个步骤之中或之间的任何特定顺序。本专利技术的各实施例提供可缩放的、可用的、并且持久的结构化存储。该结构化存储由多个表来表示,这些表中的每一个包括多个行,每一行表示一数据实体。表被分成多个分区,每一分区包括来自该表的一定范围的行。各分区存储在表服务器上并且被使用表主机来进行管理。在一些实施例中,各分区是出于负载分布的目的来被拆分的。跟踪各表服务器和各分区的负载分布信息。基于该负载分布信息,表主机可以决定对各分区进行负载平衡,并将各分区重新分配给不同的节点以分布负载。另外,对于一些分区,表主机可以决定将拆分一分区以分布当前负载。表主机确定拆分比率,并查询提供该分区的表服务器以寻找用于定位该拆分的键信息。基于从表服务器接收到的键信息,表主机指令该表服务器拆分该分区。在接收到拆分请求后,表服务器卸载目标分区,创建子分区,并开始提供该子分区。在一些实施例中,子分区被分配给另一表服务器。更新分区图以反映提供子分区的表服务器。在一些实施例中,各分区被归并。同样,跟踪各表服务器和各分区的负载分布信息。基于该负载分布信息,标识两个或更多个分区来进行归并。提供这些分区的表服务器被指令停止提供这些分区。这些分区被归并,并且被加载到开始提供经归并的分区的表服务器,更新分区图以反映提供经归并的分区的表服务器。因此,在一个方面,本专利技术的一实施例针对由结构化存储系统内的一个或多个计算设备实现的方法,其中结构化存储由一个或多个表来表示,每一个表包括多个行,每一行表示由该结构化存储系统存储的数据实体并且包括用于标识该行的一个或多个键,在多个分区之间划分该多个行,每一分区包括来自该表内的多个行中的一定范围的行,其中该多个分区存储在多个表服务器上,并且其中表主机控制对多个表服务器的分区分配。该方法用于将一分区拆分成各子分区,并且包括基于分区的负载信息来标识要拆分的分区,其中该负载信息包括指定该分区的两个或更多个部分中的每一个部分上的负载的信息。该方法还包括由表主机基于该分区的两个或更多个部分中的每一个部分上的负载来确定用于拆分该分区的拆分比率。该方法还包括查询表服务器以寻找指示该分区内的与该分区比率相对应的实际位置的键信息。该方法还包括在表主机处从表服务器接收键信息,该键信息指示该分区内的与拆分比率相对应的实际位置。该方法还包括从表主机向表服务器发送拆分请求,该拆分请求指示基于键信息来拆分该分区。该方法还包括在与该键信息相对应的位置处拆分该分区,以创建子分区。该方法还包括通知表主机拆分已完成。该方法还包括基于被拆分成子分区的分区来更新分区图,分区图存储多个分区与提供该多个分区的多个表服务器之间的映射。在本专利技术的另一实施例中,一个方面针对存储用于执行一种方法的计算机可使用指令的一个或多个计算机存储介质,该方法用于管理由一个或多个表来表示的结构化存储系统,每一个表包括多个行,每一行表示由该结构化存储系统存储的数据实体并且包括用于标识该行的一个或多个键,在多个分区之间划分该多个行,每一分区包括来自该表内的多个行中的一定范围的行,其中该多个分区存储在多个表服务器上,并且其中表主机控制对多个表服务器的分区分配。该方法用于将该表的至少两个分区归并成经归并的分区,并且包括跟踪多个表服务器上的多个分区的负载信息。该方法还包括由表主机基于该负载信息来标识要归并的至少两个分区。该方法还包括由表主机创建该经归并的分区的元数据流。该方法还包括将该至少两个分区从提供该至少两个分区的至少一个表服务器上卸载。 该方法还包括由表主机将该经归并的分区分配给来自该多个表服务器的所选表服务器。该方法还包括在所选表服务器处加载并提供该经归并的分区。本专利技术的又一实施例针对存储用于执行一种方法的计算机可使用指令的一个或多个计算机存储介质,该方法用于管理由一个或多个表来表示的结构化存储系统,每一个表包括多个行,每一行表示由该本文档来自技高网...

【技术保护点】
1.一种由结构化存储系统内的一个或多个计算设备实现的方法,其中结构化存储由一个或多个表来表示,每一个表包括多个行,每一行表示由所述结构化存储系统存储的数据实体并且包括用于标识该行的一个或多个键,在所述多个分区之间划分所述多个行,每一分区包括来自所述表内的多个行中的一定范围的行,其中所述多个分区存储在多个表服务器上,并且其中表主机控制对所述多个表服务器的分区分配,所述方法用于将一分区拆分成各子分区,并且包括:基于分区的负载信息来标识(504)要拆分的分区,其中所述负载信息包括指定该分区中的两个或更多个部分中的每一个部分上的负载的信息;由所述表主机基于所述分区的两个或更多个部分中的每一个部分上的负载来确定(506)用于拆分所述分区的拆分比率;查询(508)所述表服务器以寻找指示所述分区内的与所述分区比率相对应的实际位置的键信息;在所述表主机处从所述表服务器接收(510)键信息,所述键信息指示所述分区内的与所述拆分比率相对应的实际位置;从所述表主机向所述表服务器发送(516)拆分请求,所述拆分请求指示基于所述键信息来拆分所述分区;在与所述键信息相对应的位置处拆分(518、520、522)所述分区以创建所述子分区;向所述表主机通知(524)拆分已完成;以及基于被拆分成所述子分区的分区来更新(526)分区图,所述分区图存储所述多个分区与提供所述多个分区的多个表服务器之间的映射。...

【技术特征摘要】
【国外来华专利技术】...

【专利技术属性】
技术研发人员:B·G·卡尔德
申请(专利权)人:微软公司
类型:发明
国别省市:US

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1