经去重复文件的细粒度部分召回的制作方法_4

文档序号:9291675阅读:来源:国知局
块,如步骤708-716概括表示的。当优化在时刻t end 完成时,文件760 (其数据)被重解析点764替换且文件的主数据流被删除(变零)。注意, 这一过程对首次优化以及先前已优化文件的重新优化同样有效。
[0092] 过滤器在重解析点被去重复系统更新之后停止跟踪写,如步骤718概括表示的。
[0093] 因而,优化系统在它开始优化文件之前(即,在它开始读取并将文件分块之前)向 去重复过滤器下发通知。这一通知的接收使得过滤器在步骤704开始跟踪该文件的写。在 结束点去重复之后,过滤器通过在它上面设置相关标志来对流句柄上下文加标签。以此方 式,在该过程崩溃时,过滤器在句柄清除期间检测到这一点,所以正确的清除可被执行(包 括停止跟踪写)。
[0094] 写范围被跟踪在存储器中。如果存在崩溃,则该信息丢失,但这不是问题,因为无 论如何优化都需要从头开始。写范围(偏移、长度)按召回(位图)粒度来缩放,并且被存 储在数据结构中(如召回/数据访问)。指向数据结构的指针被添加到流上下文。如果这 一指针是NULL (空),则这指示对于给定文件(默认),范围没有被跟踪。
[0095] 写跟踪保持活动,直至文件的重解析点被更新之后,这经由发送给去重复过滤器 的另一通知来知晓。文件将被写的范围维护在其数据流766中,因为它们没有被截除(标 志720)。写跟踪通常在写前状态下完成,除了在过滤器开始跟踪写之前开始的写;那些写 在写后状态中被跟踪。写被加标签,以告知它们是否被跟踪。
[0096] 在存在处于写前状态的写时,写范围在以下位置被更新:
[0097] 如果范围已经是脏的(被召回),则过滤器将写下发到文件系统。在这种情况下, 在范围状态检查完成时,该范围被标记为已写。
[0098] 如果该范围是干净的且写与召回大小对齐,则该范围在该范围被标记为脏的同一 位置被标记为已写。这将原子地发生(同时使文件的流上下文保持锁定)。
[0099] 如果该范围是干净的且未对齐,则召回首先发生。被写的范围在召回执行时在写 时复制线程中被更新,同样是原子地执行的。
[0100] 使用以上策略,不存在范围被标记为脏的但没有被写在被优化的文件的区域内的 情况。
[0101]
[0102] 在首次优化或持续的情况下,该系统可以执行部分提交,例如,约每1千兆字节。 作为部分提交的一部分,重解析点被更新,并且文件的主数据流被截除(设置成零数据), 直至文件中在块存储中被备份的点。这允许针对写跟踪的有价值的优化,即代替跟踪从文 件的开头到提交偏移的写,该系统只需跟踪从先前提交偏移到新提交点的写(提交点之间 的距离是约1GB)。因为提交偏移在提交之前是未知的,所以它可以通过将每会话最大块的 注册表把手(registry knob)和最大块大小(默认是2GB)相乘来逼近它。
[0103] 在重新优化期间,当前不存在"真实"部分提交。即,重解析点不能被更新,直至重 新优化到达文件偏移,至此文件被块存储所备份(它是文件的结束,除非它已被扩展)。因 此,在重新优化期间,文件的主数据流不能被截除。一旦提交点通过由块存储所备份的大 小,截除就发生。这意味着过滤器需要跟踪从文件的开始到提交点的写(这使用更多存储 器)。
[0104] 示例联网以及分布式环境
[0105] 本领域技术人员可以理解,此处描述的各实施例和方法可结合任何计算机或其它 客户机或服务器设备来实现,其可被部署为计算机网络的部分或在分布式计算环境中,并 且可以被连接到任何类型一个或多个数据存储。在这一点上,此处描述的各实施例可在具 有任何数量的存储器或存储单元的、并且任何数量的应用和进程跨任何数量的存储单元发 生的任何计算机系统或环境中实现。这包括但不限于具有部署在具有远程或本地存储的网 络环境或分布式计算环境中的服务器计算机和客户计算机的环境。
[0106] 分布式计算通过计算设备和系统之间的通信交换来提供计算机资源和服务的共 享。这些资源和服务包括信息的交换、对于诸如文件之类的对象的高速缓存存储和盘存储。 这些资源和服务还包括多个处理单元之间的处理能力共享以便进行负载平衡、资源扩展、 处理专门化等等。分布式计算利用网络连接,从而允许客户机利用其集体力量来使整个企 业受益。就此,各种设备可具有可如参考本发明的各实施例描述地参与资源管理机制的应 用、对象或资源。
[0107] 图8提供了示例性的联网或分布式计算环境的示意图。该分布式计算环境包括计 算对象810、812等以及计算对象或设备820、822、824、826、828等,这些计算对象或设备可 包括如由示例应用830、832、834、836、838表示的程序、方法、数据存储、可编程逻辑等。可 以理解,计算对象810、812等以及计算对象或设备820、822、824、826、828等可包括不同的 设备,诸如个人数字助理(PDA)、音频/视频设备、移动电话、MP3播放器、个人计算机、膝上 型计算机等。
[0108] 每一个计算对象810、812等以及计算对象或设备820、822、824、826、828等可通过 通信网络840直接或间接与一个或多个其他计算对象810、812等以及计算对象或设备820、 822、824、826、828等进行通信。尽管在图8中被示为单个元件,但通信网络840可包括向图 8的系统提供服务的其他计算对象和计算设备和/或可表示未示出的多个互连网络。每个 计算对象810、812等或计算对象或设备820、822、824、826、828等还可以包含应用,诸如可 以利用API或其他对象、软件、固件和/或硬件的、适于根据本发明的各实施例所提供的应 用实现与其进行通信的应用830、832、834、836、838。
[0109] 存在支持分布式计算环境的各种系统、组件和网络配置。例如,计算系统可由有线 或无线系统、本地网络或广泛分布的网络连接在一起。当前,许多网络被耦合至因特网,因 特网为广泛分布的计算提供了基础结构并包含许多不同的网络,但任何网络基础结构都可 用于便于与如各实施例中所描述的系统的示例通信。
[0110] 由此,可使用诸如客户机/服务器、对等、或混合体系结构之类的网络拓扑结构和 网络基础结构的主机。"客户机"是使用与其无关的另一类或组的服务的一类或组中的成 员。客户机可以是进程,例如大致上是请求由另一程序或进程提供的服务的一组指令或任 务。客户机进程使用所请求的服务,而无需"知道"关于其他程序或服务本身的任何工作细 -K- To
[0111] 在客户机/服务器体系结构中,尤其在联网系统中,客户机通常是访问另一计算 机(例如,服务器)所提供的共享网络资源的计算机。在图8的图示中,作为非限制性示 例,计算对象或设备820、822、824、826、828等可被认为是客户机而计算对象810、812等可 被认为是服务器,其中计算对象810、812等作为提供数据服务的服务器,诸如从客户机计 算对象或设备820、822、824、826、828等接收数据、存储数据、处理数据、向客户机计算对象 或设备820、822、824、826、828等发送数据,但任何计算机都可取决于环境而被认为是客户 机、服务器、或两者。
[0112] 服务器通常是可通过诸如因特网或无线网络基础架构之类的远程网络或本地网 络访问的远程计算机系统。客户机进程可在第一计算机系统中活动,而服务器进程可在第 二计算机系统中活动,它们通过通信介质相互通信,由此提供分布式功能性并允许多个客 户机利用服务器的信息收集能力。
[0113] 在通信网络840或总线是因特网的网络环境中,例如,计算对象810、812等可以是 其他计算对象或设备820、822、824、826、828等经由诸如超文本传输协议(HTTP)之类的多 种已知协议中的任一种与其通信的web服务器。计算对象810、812等作为服务器还可用作 例如计算对象或设备820、822、824、826、828等的客户机,这可以是如分布式计算环境的特 性。
[0114] 示例计筧设备
[0115] 如上所述,有利地,本文所描述的技术可应用于任何设备。因此,应当理解,构想了 结合各实施例使用的所有种类的手持式、便携式和其它计算设备和计算对象。因此,以下在 图9中所述的通用远程计算机只是计算设备的一个示例。
[0116] 各实施例可部分地经由操作系统来实现,以供设备或对象的服务开发者使用和/ 或被包括在用于执行本文中所述的各实施例的一个或多个功能方面的应用软件内。软件可 以在由诸如客户机工作站、服务器或其它设备等一个或多个计算机执行的诸如程序模块等 计算机可执行指令的通用上下文中描述。本领域的技术人员将理解,计算机系统具有可用 于传递数据的各种配置和协议,并且由此没有特定配置或协议应当被认为是限制性的。
[0117] 图9由此示出了其中可实
当前第4页1 2 3 4 5 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1