首页> 中国专利> 在持续工作负荷下的数据重新组织

在持续工作负荷下的数据重新组织

摘要

本发明提供了通过划分(拆分)或重新组合(合并)逻辑数据库来自动(例如,动态地)重新组织(重新分割)现有分区的能力的体系架构。可对属于同一顾客的逻辑数据库并且基于在这些数据库中的表的分割来执行这一重新组织。这可不仅包括拆分分区的次级副本或合并分区的次级副本,也包括拆分分区的次级副本以创建新分区以及将两个分区合并成一个分区。此外,这些操作可在逻辑数据库正接受工作负荷时(在线)发生。

著录项

  • 公开/公告号CN102804183A

    专利类型发明专利

  • 公开/公告日2012-11-28

    原文格式PDF

  • 申请/专利权人 微软公司;

    申请/专利号CN201180014116.5

  • 发明设计人 B·H·M·德尼;T·塔利乌斯;

    申请日2011-03-11

  • 分类号G06F17/30(20060101);G06F9/44(20060101);

  • 代理机构31100 上海专利商标事务所有限公司;

  • 代理人蔡悦

  • 地址 美国华盛顿州

  • 入库时间 2023-12-18 07:31:27

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2016-03-09

    授权

    授权

  • 2015-08-12

    专利申请权的转移 IPC(主分类):G06F17/30 变更前: 变更后: 登记生效日:20150720 申请日:20110311

    专利申请权、专利权的转移

  • 2013-01-23

    实质审查的生效 IPC(主分类):G06F17/30 申请日:20110311

    实质审查的生效

  • 2012-11-28

    公开

    公开

说明书

背景技术

提供数据库功能作为一项服务(称为“软件作为服务”)要求在物理数据 库内实现多重租赁。多重租赁数据可被托管以提供经由不同应用的从例如隔离 的至共享的不同等级的访问。因此,在隔离环境中,租户彼此在逻辑数据库中 被隔离。随着逻辑数据库大小的增长,或者工作负荷模式的改变,这一理想数 字会改变。因此,优化每个物理服务器的逻辑数据库的数量和大小变得令人期 望。

发明内容

下面提供了简化的发明内容,以便提供对此处所描述的一些新颖实施例的 基本理解。本概述不是广泛的概览,并且它不旨在标识关键/重要元素或描绘本 发明的范围。其唯一目的是以简化形式呈现一些概念,作为稍后呈现的更具体 实施例的序言。

所公开的体系架构提供了通过划分(拆分)或重新组合(合并)现有逻辑 数据库来自动(例如,动态地)重新组织(重新分割)现有逻辑数据库的能力。 可对属于同一顾客的逻辑数据库并且基于在这些数据库中的表的分割来执行 这一重新组织。这可不仅包括拆分分区或合并分区,还包括分割分区的次级副 本来创建新分区。此外,这些操作可在逻辑数据库正接受工作负荷(在线)时 发生。

为了实现上述及相关目的,本文结合下面的描述和附图来描述某些说明性 方面。这些方面指示了可以实践本文所公开的原理的各种方式,并且所有方面 及其等效方面旨在落入所要求保护的主题的范围内。结合附图阅读下面的详细 描述,其它优点和新颖特征将变得显而易见。

附图说明

图1示出根据所公开的体系结构的计算机实现的数据库管理系统。

图2示出数据库管理系统的可替换实施例,其中更详细地示出分区和分区 副本。

图3示出逻辑数据库单元中所做的修改可被复制到其它逻辑数据库单元的 不同方式的图示。

图4示出根据所公开的体系结构的合并操作的图示。

图5示出基于对数据库性能的负面影响将第一分区分割成多个子分区的系 统。

图6示出了根据所公开的体系结构的计算机实现的数据库管理方法。

图7示出图6的方法的其它方面。

图8示出了根据本公开的体系结构的用于在持续工作负荷下重新组织经分 割的数据的计算系统的框图。

具体实施方式

本公开的体系结构为分布式数据库中的复制提供了拆分和合并功能。这一 功能动态地划分或重新组合数据库的逻辑数据库单元(例如,属于同一顾客的 单元)这甚至可在逻辑数据库单元正接受工作负荷(也称为在线数据)时进行。

该体系结构还适用于使用这些数据库中的表的分区的数据库系统。分区可 被视为一种在事务处理上一致的模式和数据单元,一种能够在分布式数据库系 统中向外扩大的单元。分区可包括主副本和零个或多个次级副本(分区的复制 品)。主副本接收数据修改并随后向次级副本发送(例如,同时地)该修改。 由于硬件和/或软件故障,副本通常位于多个机器上以保护数据。

分区包括数据库中的表。表包括具有在所有表中都有相同名称的一列,并 且表是根据列来分割的。该列被称为分割密钥。每个分区包含水平的一部分表, 其由分割密钥的值的范围所定义。所有的写是针对主副本执行的;还可任选地 针对次级副本来执行读。

每个分区具有一个主副本和多个次级副本。写是针对主副本执行的。读也可任 选地针对次级副本执行。当改变正由数据库系统的关系引擎所执行时,所有针对索引 所执行的改变都被捕获。模式和数据都被复制。这保证了在各副本之间不可能会有模 式失配,因为所有的改变遵循相同的复制协议并且总是发生在主副本上。

改变随后被异步地发送至多个次级副本。这不会阻止主副本进一步取得进展, 直到达到提交事务的时刻。在一个实现中,可在副本中使用法定数量系统(quorum  system)。在这一情景中,从次级副本获取法定数量(一半+1)的确认。仅仅等待 法定数量的确认消除了一些副本和提交所存在的瞬时减速,即使一些副本正故障但却 未接收到故障通知。最慢次级副本和主副本之间的最大增量也可被控制,这确保了故 障恢复期间的可管理的追赶时间。

在法定数量的次级副本发送确认之后,由事务所保持的锁定被释放,并且向数 据库系统客户机确认事务提交。如果法定数量的副本没有确认,则客户机连接被中止 并且事务的结果未被定义,直到故障恢复完成。

故障恢复系统确保只要法定数量的副本可用,事务就会被保留。值得注意的是, 与分布式事务系统(也称为双阶段提交系统)相反,这是单阶段提交。值得注意的是, 与传统异步复制的主要区别在于在任何时间点容许故障恢复而无数据丢失的能力,其 中当处于异步数据库复制系统中时,数据丢失的量没有被定义,因为主副本和次级副 本彼此可任意地不同。

为了从故障中恢复,提出了CSN(提交序列号)概念,其中CSN是一个(时间 点(epoch),序号)元组,被用于唯一地标识系统中被提交的事务。使用相同的CSN 顺序来对主副本和次级副本作出改变。CSN被记录在数据库系统事务日志中并且在数 据库系统崩溃恢复期间被恢复。CSN允许副本在故障恢复期间被比较。在新的主副本 的可能的候选之中,具有最高CSN的副本被挑选。这确保所有已向数据库系统客户 机确认过的事务已被保留,只要法定数量个副本是可用的。时间点组件在每次故障恢 复发生时增加,并且被用于消除在故障期间正进行中的事务(否则将会分配重复的事 务提交序号)。

在一次故障之后,副本可尝试从当前的主副本追赶。用于在这一过程中起 到协助的机制包括存储器中的追赶队列、使用数据库系统事务日志作为可持久 的存储的持久保存追赶队列、以及副本拷贝。

追赶和拷贝算法是在线的,即当次级副本正被追赶或拷贝时,主副本既可 接受读请求也可接受写请求。追赶算法(基于追赶期间次级副本所提供的CSN) 标识对次级副本来说未知的第一事务并且从该处重新进行改变。

在其中追赶算法不太有效的受限制的示例中(例如,从一个故障点之后有 太多改变,通过提交没有被其它副本所提交的事务而导致的副本分歧),拷贝 算法可被用来追赶次级副本,并且其具有以下特性:拷贝算法是在线的,其通 过使拷贝在两个数据流即拷贝扫描流和在线改变流中运行来支持;两个流使用 主副本处的锁定来同步;拷贝操作是安全的,因为其不会破坏次级分区的事务 一致性,直到拷贝成功完成;以及拷贝操作不具有追赶阶段并且被确保在拷贝 扫描一结束后就完成。

无论是在追赶还是拷贝期间,次级副本都运行在“幂等模式”中,“幂等 模式”被定义为:如果没有行就插入行(或创建模式实体);如果行存在则更 新行(或修改模式实体);并且如果行存在则删除行(或丢弃模式实体)。由 于在追赶期间,可能具有已在次级副本上提交过的重叠事务,所以采用幂等模 式。幂等模式允许忽略已在次级副本应用的改变的能力。另外,在拷贝期间, 拷贝流可能发送仅作为部分在线流而创建的行或模式实体。在线流也可能尝试 更新或删除还未被拷贝的行。

所公开的体系结构捕捉针对索引所执行的所有数据修改,因为这些修改是 由数据库系统的引擎(例如,关系引擎)在主副本处执行的。这些修改随后被 异步地发送至次级副本。

现在将参考附图,全部附图中相同的附图标记用于指代相同的元素。在下 面的描述中,为了进行说明,阐述了很多具体细节以便提供对本发明的全面理 解。然而,显而易见,可以没有这些具体细节的情况下实施各新颖实施方式。 在其他情况下,以框图形式示出了各个公知的结构和设备以便于描述本发明。 本发明将涵盖落入所要求保护的主题的精神和范围内的所有修改、等效方案和 替换方案。

图1示出根据所公开的体系结构的计算机实现的数据库管理系统100。总 的来说,系统100包括重新组织组件108,其作为既使用拆分功能也使用合并 功能的复制组件112的一部分。拆分功能允许添加一个或多个次级副本的分区, 同与父分区相关联的密钥范围相比,次级副本包含较小部分的分区密钥范围。 这些副本被称为“经过滤的”,并且仅对落在对应的较小的分区密钥范围内的 表格行应用修改。合并功能执行相反的操作,使得多个(例如,两个)主副本 发送修改至跨两个分区密钥范围的单个次级副本。

当经过滤的次级副本被添加到分区时,存在其中复制机制能确保次级副本 接收到其需要的所有修改的方法。这些方法包括追赶和拷贝。

追赶将所有发生在分区上的修改从主副本发送至次级副本。在这种情况 下,次级副本过滤出对应相关的修改。拷贝不查看修改,而是从主副本上的表 格中读取(扫描)并将当前数据发送给次级副本。在这种情况下,主副本上的 表格扫描可被限制为仅针对与经过滤的次级副本有关的行。

为了支持这一特性,系统100可包括通过参数104定义的、并且由提供在 线数据的逻辑数据库单元(记为逻辑数据库1-N)组成106的分布式数据库(例 如,关系数据库)102。系统100还可包括重新组织组件108,其监视与性能限 制有关的参数104并且对数据库组成106执行动态调整,以响应于影响数据库 性能的改变来创建逻辑数据库单元的新的组成110(记为逻辑数据库1-S)。换 句话说,基于性能参数,数据库被动态调节以增加或减少数据库组成中的逻辑 数据库单元的数量。

在重新组织组件108执行调整期间,逻辑数据库单元在线地操作(可在任 何时间访问的数据)以提供持续的对数据的访问。重新组织组件108可响应于 对数据库性能的不利影响将一个逻辑数据库单元拆分成两个逻辑数据库单元。 两个逻辑数据库单元对所接收的修改进行过滤以仅允许相关修改供复制。逻辑 数据库单元是副本的分区的副本,其接收修改以经由复制追赶操作来复制数 据。逻辑数据库单元是副本的分区的副本,其接收修改以经由复制拷贝操作来 复制数据,复制拷贝操作仅扫描与该副本有关的源副本表。

重新组织组件108还可将多个逻辑数据库单元合并成单个逻辑数据库单 元,以减少与独立管理多个逻辑数据库单元相关联的开销成本。多个逻辑数据 库单元可以是被合并成单个逻辑数据库单元中的修改所来自的不同分区的主 副本,该单个逻辑数据库单元是次级副本。最终,这一次级副本成为新的合并 分区的主副本。

图2示出数据库管理系统200的可替换实施例,其中更详细地示出分区和 分区副本。系统200包括由参数204定义的、并且由提供数据的副本(记为主 副本和次级副本1-N)组成206的分布式数据库202。副本的组成206在线地操 作以提供对数据的持续访问。重新组织组件108监视例如与性能限制有关的参 数204,并且响应于影响数据库性能的改变来执行对副本的数据库组成206的 动态调整以创建新的副本组成208(记为主副本和次级副本1-S)。

重新组织组件108可响应于对数据库性能的不利影响将副本拆分成更小的 副本。更小的数据库各自对从主副本接收的数据修改进行过滤以仅允许相关的 修改。从该拆分所得到的副本(子)能经由复制追赶操作或复制拷贝操作来接 收数据修改。重新组织组件108还可将多个副本合并成单个副本,以减少以其 他方式与独立管理多个逻辑数据库单元相关联的开销成本,其中多个副本是被 合并成单个副本的修改所来自的不同分区的主副本。

分布式数据库202可以是分布式关系数据库,其包括主副本和分布在多个 服务器机器上的一个或多个次级副本。重新组织组件108可根据对数据库性能 的影响通过增加或减少次级副本的数量来动态地调整组成206。

图3示出逻辑数据库单元中所做的修改可被复制到其它逻辑数据库单元的 不同方式的图示300。此处,逻辑数据库单元是以下副本:主副本302、第一 次级副本304、第二次级副本306、以及第二次级副本308。主副本302具有分 区密钥范围[A-B),其中左方括号“[”代表这组分区密钥范围A-B的封闭端, 而右圆括号“)”代表这组分区密钥范围A-B的开放端。

在第一示例中,对主副本302所做的所有修改被发送给第一次级副本304。 第一次级副本304未经过滤,使得发送的所有修改都被复制到第一次级副本 304。

第二次级副本306使用过滤器310,该过滤器310过滤来自主副本302的 与范围[A-C)中的分区密钥相关联的所有修改。如所示出的,密钥范围[A-C)是 较大范围[A-B)的子范围,记为(A<C<B)。因此,对于从主副本302发送给第 二次级副本306的修改来说,只有那些与分区密钥范围[A-B),更具体来说是子 范围[A-C)内所标识的分区表条目相关联的修改被复制到第二次级副本306。值 得注意的是,对第二次级副本506的复制经由追赶方法来实现。如之前所指出 的,追赶方法将发生在分区上的所有修改从主副本发送给次级副本,而次级副 本过滤出对应相关的修改。值得注意的是,在所有情况下,过滤器可以是执行 过滤功能的一组表达式。

第三次级副本308通过拷贝来使用过滤,这仅发生在主副本表处。回忆起 拷贝不查看修改,而是读取(扫描)主副本上的表格并将当前数据修改发送给 次级副本。主副本302上的表格扫描可被限制为仅针对与经过滤的次级副本有 关的行。再次,如所描绘的,密钥范围[A-C)是较大范围[A-B)的子范围,记为 (A<C<B)。因此,对于从主副本302发送给第三次级副本308的修改来说, 只有那些与分区密钥范围[A-B),更具体来说是子范围[A-C)内所标识的主副本 302中的分区表条目相关联的修改被复制到第三次级副本308。

图4示出根据所公开的体系结构的合并操作的图示400。此处,主副本402 的修改被合并成单个次级副本。例如,主副本402可包括在分区密钥范围[C-D) 中具有修改的第一分区的第一主副本404和在分区密钥范围[E-F)中具有修改的 第二分区的第二主副本406。合并功能被应用于将来自主副本402的修改合并 成分区密钥范围[A-B)的单个次级副本408,其中C、D、E以及F位于范围[A-B) 内。

以下是可在外部接口中使用的用于初始化拆分和合并的示例语法。拆分命 令语法可以是:

Splitpartition<appName>,<tablegroupName>,<low>,<high>,<split-point>[,<split-point>…]

一种实现可允许仅单个拆分点,而另一实现可允许多个拆分点。

合并命令语法可以是:

Mergepartition<appName>,<tablegroupName>,<new-low>,<new-high>

这创建了一个具有<new-low>至<new-high>范围的合并的分区并且包括该 范围内的所有现有分区。<new-low>或者与现有分区中的<low>相匹配或者处于 未分配的范围中。<new-high>或者与现有分区中的<high>相匹配或者处于未分 配的范围中。

图5示出基于对数据库性能的不利影响将第一分区502(逻辑数据库单元) 拆分成子分区504(逻辑数据库单元)的系统500。这一功能可发生在分区级 以减少例如臃肿的分区的大小。考虑第一分区502包括主分区506和三个次级 分区508。第一分区502的大小已增长到已对数据库和/或机器性能产生不利影 响。也可以是这种情况:被监视的数据库和/或机器的参数现在违反管理数据库 和/或机器系统的性能的一个或多个正在实施的策略。

在任意情况下,重新组织组件108监视并将第一分区502的副本组成(506 和508)动态地调整成两个子分区:第二分区510和第三分区512。第二分区 510被创建为如今包括第二主副本514和次级副本516(以及可任选地其它次 级物)。第三分区512被创建为如今包括第三主副本518和次级副本(520和 522)。

分区(510和512)可根据需要被重新安置到不同机器,或都保留在同一 机器上,因为资源如今可独立分配给分区(520和522)。可对拆分副本应用 如此处所描述的过滤。

重新组织组件还可应用合并操作来合并分区,使得在根据策略针对被监视 的参数进行管理时,合并不会对数据库/系统性能产生不利影响,或甚至有可能 改进性能。类似于此处所描述的副本合并来执行合并。

以下是对拆分和合并功能的附加描述。分区拆分和合并被用于管理分区大 小。当分区对于单个服务器机器或例如基于某些其它的基于策略的限制来说变 得过大时,分区可被拆分成一个或多个其它子分区,使得新数据可仍旧被添加 到该分区。相反,当分区大小由于例如数据删除变小时,独立地管理和查询分 区的开销成本变大。因此,合并分区是有用的以便例如减少总的开销或出于其 它有益的目的。

在逻辑数据库单元作为分区的上下文中,分区拆分和合并可被模型化为副 本创建和分区重新配置的组合。首先,构建一个或多个目标副本并随后进行重 新配置以解除激活源分区并激活目标分区。在拆分的情况下,目标分区是拆分 (或子)分区,而源分区是当前分区。对于合并,目标分区是组合的经合并的 分区,而源分区是当前的各个分区。

当重新组织组件将一个分区拆分成两个或更多子分区时,分区拆分开始。 子分区被创建并被标记为依赖于父分区。在常规处理期间,根据父分区为子分 区创建副本。一旦每个子分区具有足够的副本,分区被重新配置以解除激活父 分区并激活子分区。这一过程使父分区被解除激活并且不再是主。此时子分区 变成独立分区。父分区被丢弃。

当提供了待合并的分区的列表时,分区合并开始。经合并的分区被创建, 而当前分区被标记为依赖于经合并的分区。在常规处理期间,根据当前的各个 分区为经合并的分区创建副本。一旦经合并的分区具有足够的副本,分区被重 新配置以解除激活原始分区并激活经合并的分区。这一过程使原始分区未激活 并且不再是主。经合并的分区变为活跃且作为主。原始分区被丢弃。

拆分和合并设计是相似的,并且可被概括为单个组合的设计。拆分/合并以 创建依赖于彼此的各个分区开始。在常规处理期间,基于现有分区为新创建的 分区创建副本。一旦新创建的分区具有足够的副本,该分区被重新配置以解除 激活原始分区并激活新创建的分区。这一过程使原始分区未激活并且不再是 主。此时新创建的分区是独立分区。原始分区最终被丢弃。

分区合并和拆分的这一实现包括依赖分区、跨分区复制、以及超级配置的 概念。依赖分区是对彼此具有依赖性且不能被独立处理的分区。这违背了当前 实现,在当前实现中各个分区是独立处理的。使用归属分区链接来指示分区之 间的依赖性链接。这些链接包括分区(或副本)所依赖于的分区的分区id。当 处理分区的消息或状态时,即使消息是被派往依赖分区,归属分区也被加载。 这允许归属分区能够保持对依赖分区的任何改变的知晓。可检索来自适当分区 的决策所需的信息。

对于跨分区复制,对构建和追赶子副本或经合并的副本的需要不再受限于 相同分区的副本。对于拆分,复制层处理仅包含主副本的子集的次级副本。如 之前所指示的,这些被称为经过滤的次级副本。对于合并,复制层能够处理在 单个次级副本处接收来自多个主副本的复制流。

超级配置是包含对于多个分区的分开的配置的配置。配置定义了至少副本 意义上的分区修补。对于法定数量的计算(基于主副本和确认接收到发送自主 副本的修改的一组子副本来计算法定数量),在超级配置之前的所有独立配置 的法定数量被视为已达到法定数量。

通过从现有副本拷贝而不是物理地拆分现有副本来构建拆分期间的子副 本(新副本);类似地,对于合并,经合并的副本不是通过缝合两个现有副本 来创建的,即使这些副本存在在同一节点(机器)上。

如之前所描述的,分区之间的依赖性可使用归属分区id的概念来指示。 这一id标识了当前负责处理给定分区的分区。

依赖分区可被作为单个组来处理。为了便于此,分区对象可以是相互依赖 的分区的树,其中根分区管理所有其它分区。由于根分区负责所有分区,当作 出抓取分区的请求时,即使请求只是针对依赖分区中的一个,也返回从根开始 的整棵树。

处理逻辑可处理对所有相互依赖的分区的处理,以包括处理消息、添加/ 丢弃副本以及重新配置。处理所需要的具体的值基于根分区、依赖分区或它们 的组合的值。

通过从使用与构建相同分区的副本相同的逻辑的原始分区的主副本构建 新的(子)分区的副本来创建该新的(子)分区的副本。在拆分的情况下,这 意味着将经过滤的次级副本添加到主副本的复制关系中。在合并的情况下,这 可涉及将新副本添加到各个原始分区的主副本的复制关系中。

拆分重新配置被拆分成两个阶段。因为拆分重新配置产生多个主副本并且 将重新配置的领导者的责任与主副本彼此拆分,所以能够这样做。第一阶段解 除激活父分区,并且还确保法定数量的子分区的每一个的初始配置被追赶至父 分区。此时子分区被追赶,因为第二阶段的重新配置不再能够访问父分区。这 暗示着每个子分区的初始配置是在解除激活重新配置开始前确定的。

初始配置由在拆分早期构建的一组副本中的副本所组成。这一初始配置在 解除激活重新配置的激活阶段被传递给各个子分区并因此被持久保存。这一重 新配置的主副本是父分区的当前主副本(或者如果当前主副本故障的话,可以 是任何其它父分区副本)。一旦重新配置完成,这一主副本停止作为主副本(这 一重新配置使得父分区没有主副本)。当解除激活重新配置完成时,子分区随 后变成独立分区。

第二阶段激活子分区。此时,为每个子分区启动独立的重新配置并为它们 建立激活的主副本。这些重新配置可并行执行。

此处所包括的是一组表示用于执行所公开的体系结构的新颖方面的示例 性方法的流程图。尽管出于解释简明的目的,此处例如以流程图形式示出的一 个或多个方法被示出并且描述为一系列动作,但是可以理解,各方法不受动作 的次序的限制,因为根据本发明,某些动作可以按与此处所示并描述的不同的 次序和/或与其他动作同时发生。例如,本领域的技术人员将明白并理解,方法 可被替换地表示为一系列相互相关联的状态或事件,诸如以状态图的形式。此 外,并非方法中所示出的所有动作都是新颖实现所必需的。

图6示出了根据所公开的体系结构的计算机实现的数据库管理方法。在 600,分布式数据库被组织为由逻辑数据库单元(例如,主副本和次级副本) 组成的分区。在602,监视与性能限制(软件、服务器机器硬件、小或大尺寸 的分区、网络带宽等)相关联的参数,该性能限制影响分布式数据库的性能。 在604,响应于数据库性能且在逻辑数据库单元在线时动态地重新组织分区的 组成(例如,逻辑数据库单元的数量)。

图7示出图6的方法的其它方面。在700,响应于对数据库性能的不利影 响,分区被拆分成逻辑数据库单元的两个新的分区。在702,分区与另一分区 合并来创建新分区以改进数据库性能。在704,逻辑数据库单元(其是一个副 本)被拆分成新的副本,新的副本被分配给新的分区。在706,逻辑数据库单 元(其是副本)被合并成该分区中的新副本或新的分区。在708,从源逻辑数 据库单元发送给接收的逻辑数据库单元的修改在源逻辑数据库单元处或在接 收的逻辑数据库单元处被过滤作为对修改的复制的一部分。

如在本申请中所使用的,术语“组件”和“系统”旨在表示计算机相关的 实体,其可以是硬件、软件和有形硬件的组合、软件、或者执行中的软件。例 如,组件可以是,但不限于,诸如处理器、芯片存储器、大容量存储设备(例 如,光驱、固态驱动器、和/或磁存储介质驱动器)、以及计算机等有形组件, 以及诸如运行在处理器上的进程、对象、可执行码、模块、执行的线程和/或程 序等软件组件。作为说明,在服务器上运行的应用和服务器两者都可以是组件。 一个或多个组件可以驻留在进程和/或执行的线程内,且组件可以位于一个计算 机上和/或分布在两个或更多的计算机之间。词语“示例性”在此处可用于表示 用作示例、实例或说明。在此被描述为“示例性”的任何方面或设计并不一定 要被解释为相比其它方面或设计更优选或有利。

现在参考图8,所示是根据所公开的体系结构的可用于在持续工作负荷之 下重新组织经分割的数据的计算系统800的框图。为了提供用于其各方面的附 加上下文,图8及以下讨论旨在提供对其中可实现各方面的合适的计算系统800 的简要概括描述。尽管以上描述是在可在一个或多个计算机上运行的计算机可 执行指令的一般上下文中进行的,但是本领域的技术人员将认识到,新颖实施 例也可结合其它程序模块和/或作为硬件和软件的组合来实现。

用于实现各方面的计算系统800包括计算机802,其具有处理单元804、 诸如系统存储器806等的计算机可读存储、以及系统总线808。处理单元804 可以是各种市场上可买到的处理器中的任一种,诸如单处理器、多处理器、单 核单元以及多核单元。此外,本领域的技术人员可以理解,各新颖方法可用其 它计算机系统配置来实施,包括小型机、大型计算机、以及个人计算机(例如, 台式、膝上型等)、手持式计算设备、基于微处理器的或可编程的消费电子产 品等,其每一个都可在操作上耦合到一个或多个相关联的设备。

系统存储器806可包括计算机可读存储,如易失性(VOL)存储器810(例 如,随机存取存储器(RAM))和非易失性存储器(NON-VOL)812(如ROM、 EPROM、EEPROM等)。基本输入/输出系统(BIOS)可被存储在非易失性存 储器812中,并且包括诸如在启动期间便于在计算机802内的组件之间传递数 据和信号的基本例程。易失性存储器810还可包括诸如静态RAM等高速RAM 来用于高速缓存数据。

系统总线808提供了用于包括,但不限于系统存储器806的系统组件到处 理单元804的接口。系统总线808可以是若干种总线结构中的任一种,这些总 线结构还可使用各类可购买到的总线架构中的任一种互连到存储器总线(带有 或没有存储器控制器)以及外围总线(例如,PCI、PCIe、AGP、LPC等)。

计算机802还包括机器可读存储子系统814以及用于将存储子系统814对 接到系统总线808和其他所需计算机组件的存储接口816。存储子系统814可 包括例如硬盘驱动器(HDD)、磁软盘驱动器(FDD)和/或光盘存储驱动器(例 如,CD-ROM驱动器、DVD驱动器)中的一个或多个。存储接口816可包括 诸如,例如EIDE、ATA、SATA和IEEE 1394等接口技术。

一个或多个程序和数据可被存储在存储器子系统806、机器可读和可移动 存储器子系统818(例如,闪存驱动器形状因子技术)和/或存储子系统814(例 如,光、磁、固态)中,这些程序和数据包括操作系统820、一个或多个应用 程序822、其他程序模块824以及程序数据826。

一个或多个应用程序822、其他程序模块824以及程序数据826可包括例 如图1的系统100的实体和组件、图2的系统200的实体和组件、图3的图示 300的实体和流程、图4的图示400的实体和流程、图5的系统500的实体和 组件、以及图6和7的流程图所表示的方法。

一般而言,程序模块包括执行特定任务或实现特定抽象数据类型的例程、 方法、数据结构、其他软件组件等等。操作系统820、应用822、模块824和/ 或数据826的全部或部分也可被高速缓存在诸如易失性存储器810等存储器 中。应该明白,所公开的体系结构可以用各种市场上可购得的操作系统或操作 系统的组合(例如,作为虚拟机)来实施。

存储子系统814和存储器子系统(806和818)用作用于数据、数据结构、 计算机可执行指令等的易失性和非易失性存储的计算机可读介质。存储子系统 814和存储器子系统(806和818)用作用于数据、数据结构、计算机可执行指 令等的易失性和非易失性存储的计算机可读介质。指令可以存在于非瞬态介 质。这些指令当由计算机或其他机器执行时,可使得计算机或其他机器执行方 法的一个或多个动作。执行动作的指令可被存储在一个介质上,或者可跨多个 介质存储,使得指令共同出现在一个或多个计算机可读存储介质上,而不管所 有指令是否都在同一介质上。

计算机可读介质可以是可由计算机802访问的任何可用介质,且包括可移 动和不可移动的易失性和非易失性、内部和/或外部介质。对于计算机802,介 质容纳以任何合适的数字格式对数据的存储。本领域的技术人员应当理解,可 使用其他类型的计算机可读介质,如zip驱动器、磁带、闪存卡、闪存驱动器、 磁带盒等来存储用于执行所披露的体系结构的新颖方法的计算机可执行指令。

用户可以使用诸如键盘和鼠标等外部用户输入设备828来与计算机802、 程序和数据交互。其他外部用户输入设备828可包括话筒、IR(红外)遥控器、 操纵杆、游戏手柄、照相机识别系统、指示笔、触摸屏、姿势系统(例如,眼 移动、头移动等)和/或类似物。在计算机802是例如便携式计算机的情况下, 用户可以使用诸如触摸垫、话筒、键盘等板载用户输入设备830来与计算机802、 程序和数据交互。这些和其它输入设备通过输入/输出(I/O)设备接口832经 由系统总线804连接到处理单元808,但也可通过其它接口连接,如并行端口、 IEEE 1394串行端口、游戏端口、USB端口、IR接口等。I/O设备接口832也 便于输出外围设备834的使用,如打印机、音频设备、摄像设备等,如声卡和 /或板载音频处理能力。

一个或多个图形接口836(通常也称为图形处理单元(GPU))提供计算 机802和外部显示器838(例如,LCD、等离子)和/或板载显示器840(例如, 对于便携式计算机)之间的图形和视频信号。图形接口836也可作为计算机系 统板的一部分来制造。

计算机802可以使用经由有线/无线通信子系统842到一个或多个网络和/ 或其他计算机的逻辑连接在联网环境(例如,基于IP的)中操作。其他计算机 可包括工作站、服务器、路由器、个人计算机、基于微处理器的娱乐设备、对 等设备或其他常见的网络节点,并且通常包括以上相对于计算机802描述的许 多或所有元件。逻辑连接可包括到局域网(LAN)、广域网(WAN)热点等的 有线/无线连接。LAN和WAN联网环境常见于办公室和公司,并且方便了诸如 内联网等企业范围计算机网络,所有这些都可连接到例如因特网等全球通信网 络。

当在联网环境中使用时,计算机802经由有线/无线通信子系统842(例如, 网络接口适配器、板载收发机子系统等)连接到网络来与有线/无线网络、有线 /无线打印机、有线/无线输入设备844等通信。计算机802可包括用于通过网 络建立通信的调制解调器或其他装置。在联网环境中,相对于计算机802的程 序和数据可被存储在远程存储器/存储设备中,如与分布式系统相关联。应该理 解,所示网络连接是示例性的,并且可以使用在计算机之间建立通信链路的其 他手段。

计算机802可用于使用诸如IEEE802.xx标准家族等无线电技术来与有线 /无线设备或实体通信,例如在操作上安置在与例如打印机、扫描仪、台式和/ 或便携式计算机、个人数字助理(PDA)、通信卫星、任何一件与无线可检测 标签相关联的设备或位置(例如,电话亭、报亭、休息室)以及电话的无线通 信(例如,IEEE802.11空中调制技术)中的无线设备。这至少包括对于热点的 Wi-Fi(或无线保真)、WiMax,以及BluetoothTM无线技术。由此,通信可以 是如对于常规网络那样的预定义结构,或者仅仅是至少两个设备之间的自组织 (ad hoc)通信。Wi-Fi网络使用称为IEEE802.11x(a、b、g等)的无线电技 术来提供安全、可靠、快速的无线连接。Wi-Fi网络可用于将计算机彼此连接、 连接到因特网以及连接到有线网络(使用IEEE 802.3相关的介质和功能)。

上面描述的包括所公开的体系结构的各示例。当然,描述每一个可以想到 的组件和/或方法的组合是不可能的,但本领域内的普通技术人员应该认识到, 许多其他组合和排列都是可能的。因此,该新颖体系结构旨在涵盖所有这些落 入所附权利要求书的精神和范围内的更改、修改和变化。此外,就在详细描述 或权利要求书中使用术语“包括”而言,这一术语旨在以与术语“包含”在被 用作权利要求书中的过渡词时所解释的相似的方式为包含性的。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号