CN102591944A - 去重复的文件的部分召回 - Google Patents

去重复的文件的部分召回 Download PDF

Info

Publication number
CN102591944A
CN102591944A CN2011104441391A CN201110444139A CN102591944A CN 102591944 A CN102591944 A CN 102591944A CN 2011104441391 A CN2011104441391 A CN 2011104441391A CN 201110444139 A CN201110444139 A CN 201110444139A CN 102591944 A CN102591944 A CN 102591944A
Authority
CN
China
Prior art keywords
data
file
storage
scope
request
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN2011104441391A
Other languages
English (en)
Other versions
CN102591944B (zh
Inventor
A·古普塔
R·卡拉赫
C·H·张
J·R·本顿
J-T·普芬宁
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Microsoft Technology Licensing LLC
Original Assignee
Microsoft Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Microsoft Corp filed Critical Microsoft Corp
Publication of CN102591944A publication Critical patent/CN102591944A/zh
Application granted granted Critical
Publication of CN102591944B publication Critical patent/CN102591944B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/17Details of further file system functions
    • G06F16/174Redundancy elimination performed by the file system
    • G06F16/1748De-duplication implemented within the file system, e.g. based on file segments

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本公开涉及去重复的文件的部分召回。本公开针对将文件从完全去重复状态改为部分去重复状态,在部分去重复状态中,一些文件数据在块存储中去重复,而一些被召回到文件中,即文件的存储卷中。诸如在文件系统过滤器中的部分召回机制跟踪(例如,经由文件重解析点中的位图)文件数据是维护在块存储中还是已经被召回到文件。按需从块存储中召回数据并将其提交(例如,刷新)给文件。还描述了通过使用跟踪信息来确定文件的哪些部分已经去重复到块存储中以便避免其进一步去重复处理来使文件有效地返回到完全去重复状态。

Description

去重复的文件的部分召回
技术领域
本发明涉及去重复的文件的部分召回。
背景技术
数据去重复(有时也称为数据优化)指的是消除存储系统中的冗余数据从而减少需要被存储在盘上或需要在网络上进行传送的数据的物理字节量,而不会损害原始数据的保真性和完整性。通过减少存储和/或传送数据所需的资源,数据去重复因此导致硬件成本(用于存储)以及数据管理成本(例如,备份)的节约。随着数字化存储的数据的数量增长,这些成本节约变得重要。
数据去重复通常使用用于消除持久存储的文件内部及其之间的冗余性的技术的组合。一种技术用于标识一个或多个文件中的数据的相同部分,并在物理上只存储一个唯一部分(块),同时与文件相关联地维护对该块的引用。另一技术是例如通过存储经压缩的块来将数据去重复与压缩进行混合。
去重复的文件的数据因此被存储在块存储中的诸个块或压缩的块中,其中文件本身被保留为包括对这些块的引用的“残根”。当用户或应用需要访问去重复的文件时,去重复引擎将数据带回到存储器中(被称为再水合(rehydration))或带回到盘中(被称为召回)。当用户或应用修改该数据时,可能需要部分的旧的经优化数据来确保数据一致性和完整性。
再水合或召回的过程由于(可能)对块解压缩的需求、由于块化而引入的文件碎片、以及由于块存储的位置/实现而在数据访问中引入了延迟。完整的文件召回引入了高延迟以及相对可观的I/O超载。当文件较大时,延迟和资源消耗问题更为恶化。
此外,当召回了完整的大文件时,去重复引擎可能需要再次对文件去重复。这要求大量资源并影响总体数据去重复吞吐量,考虑到典型的去重复系统需要管理的大量数据,这也是一挑战。
发明内容
提供本发明内容以便以简化形式介绍将在以下的具体实施方式中进一步描述的一些代表性概念。本发明内容不旨在标识出所要求保护的主题的关键特征或必要特征,也不旨在以限制所要求保护的主题的范围的任何方式来使用。
简要而言,此处所述的本主题的各个方面针对管理文件数据的技术,使得文件可处于部分去重复的状态,在该状态中,一些文件数据在块存储中被去重复,一些文件数据被召回到文件中,即代替对块存储的引用而被召回到文件的存储卷中。当写入一数据范围时,文件可从完全去重复状态变为部分去重复状态。这种改变可通过如下来进行:从块存储中读取块,并将块的至少部分提交(例如,刷新)到存储卷或包含文件作为被召回范围的其它介质。与文件相关联地(例如,在重解析点)维护跟踪信息,以跟踪已经召回了哪些数据范围以及哪些数据范围驻留在块存储中。访问跟踪信息以按需从适当的源返回数据。
在一个方面中,可读取块以获取比所需的更多的数据,诸如为了与文件系统分配边界对齐、和/或预期到访问附加数据的需求。例如,文件可被分成固定大小的分区,任何分区都包含被充分填充至分区边界的召回数据。
在另一方面中,跟踪信息可作为去重复文件的元数据来维护,例如,作为位图相关(辅助)结构,其每分区具有一个比特以指示该分区是否包含召回的文件数据或数据是否驻留在块存储中。跟踪信息可被维护在重解析点缓冲区、替换数据流、或文件系统提供用于存储关于文件的元数据的任何其它装置中。元数据可存储在有限量的空间中。如果需要更多空间,则位图相关结构中的数据可被用来表示多于一个的分区,和/或可被压缩(例如,编码)以减少所消耗的空间。可召回文件数据以使得压缩更为高效。
结合附图阅读以下具体实施方式,本发明的其他优点会变得显而易见。
附图说明
作为示例而非限制,在附图中示出了本发明,附图中相同的附图标记指示相同或相似的元素,附图中:
图1是表示将去重复文件的诸个范围召回成部分去重复文件和/或访问部分去重复文件的数据的示例组件的框图。
图2是对包含数据范围的诸个块如何被调用并在盘上被对齐的示意图。
图3是对包含数据范围的诸个块外加附加快如何被调用并在盘上被对齐的示意图。
图4是包括缓冲区的去重复重解析点的示意图,该缓冲区包含用于跟踪部分去重复文件的哪些范围已经被召回以及哪些范围被保留在块存储中的召回位图。
图5和6包括表示在一个示例实现中使用的部分召回算法的各步骤的流程图。
图7A-7C是对替换示例实现中部分去重复文件数据可如何被召回并与用户数据一起被写回的示意图。
图8-10包括表示在替换示例实现中使用的部分召回算法的各步骤的流程图。
图11是表示其中可实现此处描述的各种实施例的示例性非限制联网环境的框图。
图12是表示其中可实现此处所描述各种实施例的一个或多个方面的示例性非限制计算系统或操作环境的框图。
具体实施方式
此处描述的技术的各个方面一般针对与召回整个文件相对地召回去重复文件的部分部位(范围),这提供了相对于完整文件召回的性能好处(尤其当文件较大时)。为此目的,本技术的各方面允许以I/O高效的方式实现并跟踪存储器中和/或盘上的召回范围。该技术还便于通过扫描和流传送仅仅召回的文件范围(相对于整个文件)来对部分召回的文件重新去重复,从而节省了机器资源并增加了去重复吞吐量。
为了实现部分去重复,提供了各种机制和优化,包括针对调整召回的文件范围、I/O类型和最小化刷新的机制和优化。还可利用对召回的范围进行跟踪的经压缩的位图结构。
应当理解的是,此处的任何示例均是非限制的。因此,本发明不限制于在此描述的任何具体的实施例、方面、概念、结构、功能或示例。相反,此处所描述的实施例、方面、概念、结构、功能或示例中的任一个都是非限制性的,并且本发明一般能够以在计算和数据处理方面提供好处和优点的各种方式来使用。
图1示出了去重复文件102的部分召回的示例概念。一般而言,当文件被完全去重复时,该文件与元数据104相关联,该元数据104包括将块存储108中的文件块(例如,C3、C6和C7)映射回逻辑文件的去重复(去重)元数据106。一般而言,当应用110请求访问文件时,去重复机制112(例如,实现在文件系统过滤器中)访问块存储108中所引用的诸个块(或者,当仅有一个块时访问一个块),并在适当的任何解压缩之后,将块作为召回的文件数据来返回。从应用110的角度而言,数据是原封不动的,因此若非延迟,应用110的用户不了解或不关心文件是否被去重复。
存在使得文件从去重复状态变为非去重复状态的各种操作。这包括当用户或进程向文件写入时,使得位于写入偏移位置处的经修改的文件数据不再匹配于先前包含数据的块或诸个块。完全召回整个文件以支持这样的文件修改通常是低效的。
如此处所述的,提供部分召回机制114,该机制允许仅召回相关块,使去重复文件处于部分去重复状态中(部分去重复文件102),包含某些召回的文件数据116以及对未被召回的块的引用。例如,在图1中,考虑仅召回块C7/其对应数据被写入(弄脏)。文件102(例如,一旦将数据提交给盘或其它稳定存储)在它的召回的文件数据116中包含由写操作所修改的召回的块数据;更新去重复元数据106以反映这一部分召回状态,以便于了解文件102包含召回的数据,并且以便于不再指向现在已过时的块C7。注意,部分去重复文件可如下所述地被改回完全去重复文件状态,或被完全召回至非去重复状态。
因此,部分召回一般指的是召回比全部的块要少的块(一般而言是与改变相关的那些块),并跟踪文件的哪个或哪些部分已经被召回以及哪些被保留在去重复的块中。文件因此可存在于非去重复状态、部分去重复(部分召回)状态或完全去重复状态中。
在一个实现中,去重复机制112被实现为文件系统过滤器118,结合有部分召回机制114作为去重复机制112的子组件(例如,软件代码行)。如此处所述的,部分召回机制114执行各种跟踪操作,包括维护关于文件的哪些部分已经被召回以及哪些被保留在块存储块中的跟踪数据。
在一个实现中,对应于
Figure BSA00000647168700051
NTFS配置,跟踪数据被维护在NTFS重解析点中,NTFS重解析点也向过滤器118通知文件被部分去重复。在其它使用场景中,解析点是公知的且不在此处详细描述。注意到,重解析点仅是一个备选;可为跟踪目的替换地使用其它元数据/流。一般而言,任何的将元数据与文件相关联的方式(包括经由重解析点、流、数据库查找等)都可被用于提供对去重复元数据的访问。
当召回数据时,有通常与文件系统相关的多个策略选项可用。例如,基于NTFS的去重复可使用具有固定簇大小(例如,64k簇大小的块)的倍数的空间分配的稀疏文件。在这样的实现中,文件的去重复块大小可能不与文件系统的数据分配大小对齐。作为示例,文件可具有100K和28K的去重复块(总共128K),而NTFS可将其存储在64K的两个簇中(总共128K)。
因此,由于这样的差异,当用户向某一大小的块(例如,100K)写入时,通常要求召回更多的数据(例如,128K)。作为示例,考虑用户请求访问50K数据范围,如图2由数据范围220所示的。然而,这与包含数据范围220的块不一致,且因此需要召回两个块222和224来提供所请求的全部数据范围。注意到,在此示例中,块不是固定大小的,然而在许多实现中可使用固定大小的块。此外,考虑对于稀疏文件,文件系统在数据写所需之时分配64K的空间,如图2所示的也无法与诸个块对齐。(支持可变范围的文件系统可能没有这样的问题。)
因此存在可用的多个选项,包括仅将用户需要的块带到存储器中。在这种情况中,存在比所需要更为多的数据,但是这些数据不足以填充三个64K的分配。所有块数据可被写入盘中,所分配的空间中未被写入的其它部分用零填充。或者,在图2的示例中,可仅保留所需要的50K块数据加上任何其它块数据至多至64K分配边界,因此仅需要分配64K的空间,然后完全填充该64K分配。
在图3中所示的另一替换方案中,可请求比50K范围所需的更多的块(块222和224以及块332和334),使得块222和块224完全位于盘上。注意到,对块332和334,仅保留落在64K边界内的部分,以便完全利用文件系统所分配的空间。
因此,这是关于如何处理额外数据或空间的策略选择,这可被用来最小化延迟和I/O,例如通过分配和填充比所需的更多的空间,如果预期对额外空间的写入可能有益。从图2和3的示例可见,一个策略实现基于固定的扇区对齐边界来节省写操作,丢掉处于边界之外的任何不需要的块数据。一个策略实现读取足够的数据以充分填充稀疏文件的每个分配的范围。(一个实现对于处理块数据采取这两个策略动作。)
转向至关于跟踪召回的数据相比于块存储中的数据的各方面,所维护的跟踪数据具有可能与文件系统有关的各个方面。例如,一个文件系统可对稀疏文件仅分配所需要的文件空间,借此这样的文件系统本身可足以跟踪哪些已经被召回以及哪些还未被召回。然而,NTFS不保证它将不会分配比所需的更多的稀疏文件范围,且因此在NTFS实现中,过滤器118需要跟踪哪些分区(例如,对应于稀疏文件分配的64KB边界处)被召回到部分去重复的文件,以及哪些分区作为去重复块被保留。
在图4一般表示的一个实现中,NTFS重解析点440被用于跟踪。重解析点440维护位图结构442或位图结构442的压缩表示。更具体地,为了部分召回文件,去重复过滤器118创建文件的虚拟分区视图,分区在预定边界(例如,在64K边界)处进行。过滤器118在重解析点缓冲区中以位图结构来维护此分区视图,例如位图中的置位表示该分区被召回至去重复文件,反之零位表示该分区驻留在块存储中。在设置重解析点时,可增加分区的大小。
在重解析点实现中,位图大小有限。如果文件变得过大,则位图不能使用每个分区一个位来跟踪各个分区。此处描述的是在这种情况下调节位图的各种方式。
调节位图的一种方式是使用一个位来表示多个分区,并一致地作为不能分割的单元一起访问多个分区的每一组。例如,如果一个位表示2分区单元,则对于64K分区,每一分区作为128K单元的一部分被召回,以此类推。
调节位图的另一方式是在重解析点中压缩位图,并在需要访问它时将位图解压缩到存储器中。例如,行程编码是适于一和零的位图行程的公知的压缩技术。
注意到,如果压缩不再能减少经压缩的位图的大小,选择分区可被召回,以使得召回的分区中更多个分区是连续的,从而提高压缩效率,使得压缩的位图大小适合重解析点所允许的空间。例如,考虑偶尔被零位中断的大部分是一位的长行程。如果召回了与偶尔的零位对应的块,则行程编码可在单个行程表示中表示长得多的一位的行程。
注意到,数据在一个时间召回,而位图在另一时间更新,这导致可能的崩溃相关不一致性。如此处所述的,当将数据提交(例如,刷新)到稳定存储(例如,盘等)时,操作的次序使得系统崩溃一致。更具体地,位图的改变仅在它所表示的对应数据被刷新到盘之后才被刷新到盘上。以此方式,直到该数据被认为安全地被刷新到盘上之前,位图决不指示数据已经被部分召回。注意到,如果盘和文件系统支持直写(write-through),则直写(write-through)可被用来代替刷新。注意到,尽管通常使用将文件数据/元数据刷新到盘作为此处的示例,但这仅是示例。因此,“提交到稳定存储”还包括文件系统和存储介质直写的概念(以及使用文件系统和存储介质刷新或任何其它手段的概念)。
在另一方面中,可使用跟踪数据来有效地将部分召回的文件数据转回完全去重复的文件。为此目的,当为了去重复而扫描文件时,可使用跟踪数据,使得仅向去重复系统提供部分召回的文件范围以用于去重复。当这些范围被添加到块存储时,包括跟踪数据的去重复元数据则被调整以反映所召回的范围是现在优化后的块而不再是部分召回的范围。
作为一个实现的示例,为了部分召回文件,去重复过滤器118创建文件的虚拟分区视图。分区可在固定扇区对齐的边界处(例如在64K边界处)进行。过滤器在重解析点446的缓冲区中以位图结构442维护此分区视图。在设置重解析点时,可增加分区的大小。
图5和6包括表示部分召回机制的一个实现的示例步骤的流程图,其中块是固定大小的,位图结构被维护在重解析点缓冲区中等等。图5在需要召回操作时开始,给定RecallOperation(召回操作)(FileObject(文件对象),FileOffset(文件偏移量),Length(长度))参数,并从解析点获取用于召回的固定块大小,例如FixedRecallSize(固定召回大小)=ReparsePoint(解析点)->FixedSizeForRecall(用于召回的固定大小)(可能需要对齐扇区)。
步骤502表示基于可用粒度来对齐用户文件的偏移量,例如recallOffsetEnd(召回偏移量末尾)=FixedRecallSize*((FileOffset+Length+FixedRecallSize-1)/FixedRecallSize);注意到“/”符号指的是整数除法,它将答案向下舍入至其最接近的整数值。步骤504对召回循环初始化,即recallLength(召回长度)=FixedRecallSize并且recallOffset(召回偏移量)=recallOffsetStart(召回偏移量开头)。
步骤506-516一般针对对范围进行填充(包括通过计算第一个和最后一个对齐的偏移量),这通过读和写操作,并循环直到召回偏移量小于或等于召回偏移量末尾来执行。此时,步骤506分支至步骤518以将去重复文件的召回部分刷新到盘上,该过程继续至下文所述的图6。
步骤508表示文件末尾评估以确保召回操作本身没有增加逻辑文件大小。如果召回偏移量指示该过程将要从文件末尾召回最后的块,则该过程可使用如步骤510-512所表示的分页I/O技术。通过使用该技术,可使用非缓冲句柄从文件末尾召回数据,且仍然不扩展文件的大小(注意到,使用分页I/O仅仅是可对NTFS使用的一个示例,且替换技术可被使用)。因此,如果在步骤508,在文件的逻辑末尾进行写,则步骤510-512经由分页写操作来执行召回,即发出分页读以确保文件系统在分页写之前观察到分页读,从块存储中读取数据,并将该数据写入部分去重复文件。
对于非文件末尾情况,执行步骤514和515以从块存储读取数据,并将数据写入部分去重复文件。
注意到,块存储数据可按照缓存方式来读取(步骤511和514)。然而,在进行召回时,为了减少系统缓存中的重复,对去重复文件的写可能不被缓存,如步骤515中那样。如果召回边界是扇区对齐的,则该过程自动满足在非缓存读写期间进行扇区对齐I/O的文件系统要求。这可通过向文件系统查询卷的扇区大小并且随后为召回目的将文件划分成合理大小的扇区对齐块来动态配置。
回到步骤506,当召回偏移量小于或等于召回偏移量末尾时,在步骤518,召回的部分被刷新至盘。该过程然后继续至图6。
图6的步骤602表示对重解析缓冲区中的位图结构的更新。一旦被更新,就执行步骤604用于崩溃一致性,即刷新每块的位图结构。注意到,如果该结构是重解析点等(它是文件的一部分),则该结构作为图5的步骤518中刷新文件的一部分得到刷新,且因此作为优化,绕过步骤604可能是可以接受的。
执行步骤606来更新去重复文件的数据范围的存储器内表示。使用存储器内表示来提供查找的效率,且存储器内表示使得能更快地决定文件的什么部分已经被召回以及什么部分仍位于块存储中。注意到,这意味着存在去重复文件的数据范围的状态的两种表示;这些表示之一以类似于NTFS上的重解析点的结构的形式被渗入盘上,而另一表示被保存在存储器中以便快速查找。
在一个去重复实现中,为每个去重复文件维护被称为MCB(存储器控制块)的数据结构。该结构驻留在被称为流上下文的另一个按照去重复的流结构中。
如果在步骤608,整个文件是脏的,则文件的状态被改回非去重复文件。为此,步骤610删除重解析点(在此示例实现中),且如果文件原本不是稀疏的,则步骤612将文件标记为不是稀疏的(对其“去稀疏(unsparse)”)。
此时,不论文件状态是部分去重复还是非去重复的,从过滤器118的角度而言该召回操作完成。步骤614诸如经由中间过滤器管理器朝文件系统转发用户的修改请求,例如转发给文件系统或另一过滤器。
图7A-7C描述了其中对应于用户写的所有数据不被召回的替换实现。在此实现中,当接收到用户的修改/写请求时,部分召回机制仅取回使召回的文件部分与预定召回边界一致所需的经优化的数据的那些部分。这是通过首先允许用户写前往文件系统,然后检查用户写的范围以确定范围的什么部分不与召回边界对齐来实现的。然后将通过用适当的经优化数据对该范围加前缀和后缀来使范围与召回边界相对齐。
一旦已经召回了经优化的数据,该文件被刷新并且其位图被更新。此处的关键优势在于需要召回更少数量的经优化数据。
因此,用户的写请求在接收时被转发给文件系统。在文件系统完成写之后,但在将写完成返回给用户之前,部分召回机制确保对应于召回粒度的部分也已经被写到盘上。
作为示例,考虑图7A中一般表示的128K的文件以及64K的召回粒度。如果用户在偏移量70K处写20K的用户数据,则过滤器将写转发给文件系统。在写之后,文件的状态如图7A中所示(其中用户数据被标记为770)。
直到部分召回机制用老数据修补了从64K到128K的范围的其余部分之前,写不会完成。为此,部分召回机制拦截写,直到该范围的其余部分被用从块存储读取的数据为止。这在图7B中表示,其中用户数据被标记为770,从块存储读取的数据被标记为772A和772B。
注意到一般而言,召回了较少的用户数据。例如,在图5和6的实现中,召回了64K;在替换实现中,仅召回了(70K-64K)+(128K-90K)=44K。一旦修补了其余的44k,写就完成,并以成功或者出错状态返回给用户。
进一步考虑用于大型写请求的替换实现,例如其中用户写774横跨多个召回边界,如图7C中所示。如图可见,用户的写从70K到256K。在这样的情况中,仅召回从64K到70K的数据(块776)(与必须召回从64K到256K的所有数据形成对比)。
图8-10包括表示对应于图7A-7C的部分召回机制的上述替换实现的示例步骤的流程图。步骤800表示将操作转发给文件系统并等待完成;注意到如上所述,直到在读取并修补其它数据之前,完成不被返回给用户。
步骤802表示基于可用粒度对用户的文件偏移量进行对齐。步骤804向用户的修改/写范围的开头追加由经优化的数据所构成的前缀所需的数据读取偏移量和长度。这使用户范围的开头与召回边界对齐。如果用户范围的开头已经与召回边界完美对齐,则不需要这样的前缀。如图可见,这种计算是相对于用户数据的,且因此少于全部数据。注意到,如果召回偏移量小于或等于召回偏移量末尾,此示例中的步骤806结束该过程。
步骤808、810-812、814和815类似于步骤508、510-512、514和515,且因此为简明起见不再次详细描述。注意到,这些步骤仅召回对应于范围的开头部分的经优化数据。需要对范围的结尾部分进行类似的操作。图9中的步骤突出显示了召回对应于范围的结尾部分的经优化数据所需的步骤。
步骤904向用户的修改/写范围的末尾追加由经优化的数据所构成的后缀所需的数据读取偏移量和长度。这使用户范围的末尾与召回边界对齐。如果用户范围的末尾已经与召回边界完美对齐,则不需要这样的后缀。步骤908、910-912、914和915类似于步骤508、510-512、514和515,且因此为简明起见不再次详细描述。
图10的步骤大部分类似于图6的步骤,除了完成写返回至用户应用的步骤1014。此时,使用替换实现将数据召回到文件中,在该替换实现中仅取回使文件的召回部分与固定大小召回边界相一致的经优化数据的那些部分。
因此,替换实现是可用的。注意到,这些(以及任何其它)替换实现可单独或组合使用,取决于性能需求和/或任何文件系统约束。
如可见,描述了用于基于修改范围(用户写)或其它准则来部分召回去重复文件的文件范围的技术。通过基于修改范围、块对齐和文件系统范围来调节召回的范围而减少了延迟和I/O。为此,可使用位图结构来跟踪召回的范围,该位图结构有可能经由编码和压缩技术来配置。该技术还解决了部分召回性能改进以处理缓存/非缓存I/O,减少了文件系统刷新以及文件末尾问题。此外,该技术通过跟踪部分召回的文件的状态以便仅列举和流传送部分召回的文件范围用于重新去重复,提供了对部分召回的文件进行重新优化的能力。
示例性联网以及分布式环境
本领域技术人员可以理解,此处描述的各实施例和方法可结合任何计算机或其它客户机或服务器设备来实现,其可被部署为计算机网络的部分或在分布式计算环境中,并且可以被连接到任何类型一个或多个数据存储。在这一点上,此处描述的各实施例可在具有任何数量的存储器或存储单元的、并且任何数量的应用和进程跨任何数量的存储单元发生的任何计算机系统或环境中实现。这包括但不限于具有部署在具有远程或本地存储的网络环境或分布式计算环境中的服务器计算机和客户计算机的环境。
分布式计算通过计算设备和系统之间的通信交换来提供计算机资源和服务的共享。这些资源和服务包括信息的交换、对于诸如文件之类的对象的高速缓存存储和盘存储。这些资源和服务还包括多个处理单元之间的处理能力共享以便进行负载平衡、资源扩展、处理专门化等等。分布式计算利用网络连接,从而允许客户机利用其集体力量来使整个企业受益。就此,各种设备可具有可如参考本公开的各实施例所描述地参与资源管理机制的应用、对象或资源。
图11提供了示例性的联网或分布式计算环境的示意图。该分布式计算环境包括计算对象1110、1112等以及计算对象或设备1120、1122、1124、1126、1128等,这些计算对象或设备可包括如由示例应用1130、1132、1134、1136、1138表示的程序、方法、数据存储、可编程逻辑等。可以理解,计算对象1110、1112等以及计算对象或设备1120、1122、1124、1126、1128等可包括不同的设备,诸如个人数字助理(PDA)、音频/视频设备、移动电话、MP3播放器、个人计算机、膝上型计算机等。
每个计算对象1110、1112等以及计算对象或设备1120、1122、1124、1126、1128等可经由通信网络1140直接或间接地与一个或多个其他计算对象1110、1112等以及计算对象或设备1120、1122、1124、1126、1128等通信。尽管在图11中被示为单个元件,但通信网络1140可包括向图11的系统提供服务的其他计算对象和计算设备和/或可表示未示出的多个互连网络。每个计算对象1110、1112等或计算对象或设备1120、1122、1124、1126、1128等还可以包含应用,诸如可以利用API或其他对象、软件、固件和/或硬件的、适于与根据本公开的各实施例所提供的应用进行通信或适于实现根据本公开的各实施例所提供的应用的应用1130、1132、1134、1136、1138。
存在支持分布式计算环境的各种系统、组件和网络配置。例如,计算系统可由有线或无线系统、本地网络或广泛分布的网络连接在一起。当前,许多网络被耦合至因特网,后者为广泛分布的计算提供了基础结构并包含许多不同的网络,但任何网络基础结构都可用于便于与如各实施例中所描述的系统的示例性通信。
由此,可使用诸如客户机/服务器、对等、或混合体系结构之类的网络拓扑结构和网络基础结构的主机。“客户机”是使用与其无关的另一类或组的服务的一类或组中的成员。客户机可以是进程,例如,大致上是请求另一程序或进程所提供的服务的一组指令或任务。客户机进程使用所请求的服务,而无需“知道”关于其他程序或服务本身的任何工作细节。
在客户机/服务器体系结构中,尤其在联网系统中,客户机通常是访问另一计算机(例如,服务器)所提供的共享网络资源的计算机。在图11的图示中,作为非限制性示例,计算对象或设备1120、1122、1124、1126、1128等可被认为是客户机而计算对象1110、1112等可被认为是服务器,其中计算对象1110、1112等担当提供数据服务的服务器,诸如从客户机计算对象或设备1120、1122、1124、1126、1128等接收数据、存储数据、处理数据、向客户机计算对象或设备1120、1122、1124、1126、1128等发送数据,但任何计算机都可取决于环境而被认为是客户机、服务器、或两者。
服务器通常是可通过诸如因特网或无线网络基础架构之类的远程网络或本地网络而被访问的远程计算机系统。客户机进程可在第一计算机系统中活动,而服务器进程可在第二计算机系统中活动,它们通过通信介质相互通信,由此提供分布式功能并允许多个客户机利用服务器的信息收集能力。
在通信网络1140或总线是因特网的网络环境中,例如,计算对象1110、1112等可以是Web服务器,其他计算对象或设备1120、1122、1124、1126、1128等经由诸如超文本传输协议(HTTP)之类的多种已知协议中的任一种与这些Web服务器进行通信。作为服务器的计算对象1110、1112等还可用作例如计算对象或设备1120、1122、1124、1126、1128等的客户机,这可以是如分布式计算环境的特性。
示例性计算设备
如上所述,有利地,本文所描述的技术可应用于任何设备。因此,应当理解,所有种类的手持式、便携式和其它计算设备和计算对象都可被构想为结合各实施例一起使用。因此,以下在图12中所述的通用远程计算机只是计算设备的一个示例。
各实施例可部分地经由操作系统来实现,以供设备或对象的服务开发者使用和/或被包括在用于执行此处所述的各实施例的一个或多个功能方面的应用软件内。软件可被描述为由诸如客户机工作站、服务器或其它设备等一个或多个计算机执行的诸如程序模块等计算机可执行指令的通用上下文。本领域的技术人员可以理解,计算机系统具有可用于传递数据的各种配置和协议,并且由此没有特定配置或协议应当被认为是限制性的。
图12由此示出了其中可实现本文所述的各实施例的一个或多个方面的合适的计算系统环境1200的一个示例,尽管如上所述,计算系统环境1200仅为合适的计算环境的一个示例,并非对使用范围或功能提出任何限制。此外,也不应当将计算系统环境1200解释为对在示例性计算系统环境1200中所示的组件中的任何一个或其组合有任何依赖。
参考图12,用于实现一个或多个实施例的示例性远程设备包括计算机1210形式的通用计算设备。计算机1210的组件可包括,但不限于,处理单元1220、系统存储器1230、以及将包括系统存储器的各种系统组件耦合到处理单元1220的系统总线1222。
计算机1210通常包括各种计算机可读介质,并且可以是可由计算机1210访问的任何可用介质。系统存储器1230可包括诸如只读存储器(ROM)和/或随机存取存储器(RAM)之类的易失性和/或非易失性存储器形式的计算机存储介质。作为示例而非限制,系统存储器1230还可包括操作系统、应用程序、其他程序模块、以及程序数据。
用户可通过输入设备1240向计算机1210输入命令和信息。监视器或其他类型的显示设备也经由诸如输出接口1250之类的接口连接到系统总线1222。除监视器以外,计算机还可包括诸如扬声器和打印机之类的其他外围输出设备,它们可通过输出接口1250连接。
计算机1210可使用到一个或多个其他远程计算机(诸如远程计算机1270)的逻辑连接在联网或分布式环境中操作。远程计算机1270可以是个人计算机、服务器、路由器、网络PC、对等设备或其他常见网络节点、或者任何其他远程媒体消费或传输设备,并且可包括以上关于计算机1210所述的任何或全部元件。图12所示的逻辑连接包括诸如局域网(LAN)或广域网(WAN)之类的网络1272,但也可包括其他网络/总线。这些联网环境在家庭、办公室、企业范围的计算机网络、内联网和因特网中是常见的。
如上所述,尽管结合各种计算设备和网络体系结构描述了各示例性实施例,但基本概念可被应用于其中期望改进资源使用的效率的任何网络系统和任何计算设备或系统。
而且,存在实现相同或相似功能的多种方法,例如适当的API、工具箱、驱动程序代码、操作系统、控件、独立或可下载软件对象等,它们使得应用和服务能够使用此处提供的技术。由此,此处的各实施例是从API(或其他软件对象)的立场以及从实现如此处描述的一个或多个实施例的软件或硬件对象所构想的。由此,此处所述的各实施例可具有完全采用硬件、部分采用硬件并且部分采用软件、以及采用软件的方面。
本文中所使用的词语“示例性”意味着用作示例、实例、或说明。为避免疑惑,本文所公开的主题不限于这些示例。另外,在此所述的被描述为“示例性”的任意方面或设计并不一定要被解释为相比其它方面或设计更优选或有利。此外,在使用术语“包括”、“具有”、“包含”和其他类似词语的程度上,为避免疑惑,这些术语旨在当用于权利要求中时以类似于术语“包括”作为开放的过渡词的方式是包含性的而不排除任何附加或其他元素。
如所述的,此处所述的各种技术可结合硬件或软件或,在适当时,以两者的组合来实现。如此处所使用的,术语“组件”、“模块”、“系统”等同样旨在指计算机相关实体,或者是硬件、硬件和软件的组合、软件或者是执行中的软件。例如,组件可以是,但不限于,在处理器上运行的进程、处理器、对象、可执行码、执行的线程、程序和/或计算机。作为说明,在计算机上运行的应用和计算机都可以是组件。一个或多个组件可驻留在进程和/或执行的线程内,并且组件可位于一个计算机上和/或分布在两个或更多的计算机之间。
如前所述的系统已经参考若干组件之间的交互来描述。可以理解,这些系统和组件可包括组件或指定的子组件、某些指定的组件或子组件和/或附加的组件,并且根据上述内容的各种置换和组合。子组件还可作为通信地耦合到其他组件的组件来实现,而不是被包括在父组件内(层次性)。另外,应注意到一个或多个组件可被组合成提供聚集功能的单个组件,或被分成若干单独的子组件,且诸如管理层等的任何一个或多个中间层可被设置成通信耦合到这样的子组件以便提供集成功能。此处所述的任何组件也可与一个或多个此处未专门描述的但本领域技术人员一般已知的其他组件进行交互。
鉴于本文所述的示例性系统,可根据参考各附图的流程图还可理解根据所述的主题来实现方法。尽管为了说明简洁起见,方法被示出和描述为一系列框,但是应当理解,各实施例不仅仅限于框的次序,因为一些框可以与此处所描绘和描述的框不同的次序发生和/或与其他框并发地发生。尽管经由流程图示出了非顺序或分支的流程,但可以理解,可实现达到相同或类似结果的各种其他分支、流程路径和框的次序。此外,某些示出的框在实现下文所述的方法中是可选的。
结论
尽管本发明易于作出各种修改和替换构造,但其某些说明性实施例在附图中示出并在上面被详细地描述。然而应当了解,这不旨在将本发明限于所公开的具体形式,而是相反地,旨在覆盖落入本发明的精神和范围之内的所有修改、替换构造和等效方案。
除此处所述的各实施例以外,应当理解,可使用其他类似实施例,或者可对所述实施例作出修改和添加以便执行对应实施例的相同或等效功能而不背离这些实施例。此外,多个处理芯片或多个设备可共享此处所述的一个或多个功能的性能,并且类似地,存储可跨多个设备实现。因此,本发明不应限于任何单个实施例,而是应当根据所附权利要求书的广度、精神和范围来解释。

Claims (10)

1.在计算环境中,一种至少部分在一个处理器上执行的方法,包括:将存储卷的文件的状态从完全去重复状态改为部分去重复状态,包括从块存储读取(511、514、811、814)文件数据的一个或多个块,将所述一个或多个块的至少部分提交(512、515、812、815)给稳定存储作为所述文件的一个或多个召回数据范围,并维护与所述文件相关联的、跟踪哪一个或哪些数据范围已经被召回以及哪一个或哪些数据范围驻留在所述块存储中的信息(602、604、606、1002、1004、1006)。
2.如权利要求1所述的方法,其特征在于,改变所述状态包括召回所述一个或多个数据范围以便由程序或用户写来修改。
3.如权利要求1所述的方法,其特征在于,从所述块存储的读取获取比满足请求所需的数据更多的数据,且其中提交包括,写入满足所述请求所需的数据加上附加数据以填充由文件系统分配的空间直到达到开始和结尾分配边界;或者其中从所述块存储的读取获取满足请求所需的一个或多个块,且其中提交包括写入满足所述请求所需的块加上来自一个或多个不需要的块的附加数据以填充由文件系统分配的空间直到达到开头和结尾分配边界。
4.如权利要求1所述的方法,其特征在于,所述文件被划分成对应于所召回的范围以及驻留在所述块存储中的范围的各个分区,且其中维护与所述文件相关联的信息包括在与所述文件相关联的辅助结构中维护位图相关结构,所述位图相关结构具有指示每一分区是对应于召回的范围还是对应于驻留在所述块存储中的范围的数据。
5.如权利要求4所述的方法,其特征在于,还包括压缩所述位图结构的数据。
6.如权利要求1所述的方法,其特征在于,还包括接收写数据,且其中从所述块存储的读取包括获取对于一个召回边界将数据追加到请求所需的在所述写数据之前的零个或多个字节的数据,以及获取对于另一个召回边界将数据追加到请求所需的在所述写数据之后的零个或多个字节的数据。
7.如权利要求1所述的方法,其特征在于,还包括接收包括写数据的写请求,向文件系统提供所述写请求,等待所述写请求在所述文件系统处完成,获取对于一个召回边界将数据追加到请求所需的在所述写数据之前的零个或多个字节的数据,并获取对于另一个召回边界将数据追加到请求所需的在所述写数据之后的零个或多个字节的数据,向所述稳定存储提交所述写数据以及任何追加的数据,以及更新所述跟踪哪一个或哪些数据范围已经被召回的信息。
8.在计算环境中,一种系统,包括:部分召回机制(114),它被配置成访问相关联的跟踪数据(104),所述跟踪数据(104)指示文件(102)的哪一个或哪些范围已经被召回到所述文件以及哪些范围驻留在块存储(108)上并由所述文件所引用,所述部分召回机制(114)还被配置成访问所述块存储(108)中的文件数据的一个或多个块,将与所述一个或多个块的至少部分相对应的一个或多个范围提交给所述文件作为一个或多个召回的范围(116),并更新所述跟踪数据以指示一范围何时已经作为召回的范围被提交。
9.如权利要求8所述的系统,其特征在于,所述部分召回机制被包括在文件系统过滤器中。
10.一个或多个具有计算机可执行指令的计算机可读介质,所述计算机可执行指令在被执行时执行以下步骤,包括:
接收在给定偏移量访问文件的文件数据范围的请求,其中所请求的文件数据中的至少一些驻留在去重复块存储中;
从所述块存储中读取,并写入到存储,直到获取了所述给定偏移量处的至少所述文件数据范围;
将所述文件数据的至少部分提交给所述文件作为一个或多个部分召回的范围;
更新指示所述一个或多个部分召回的范围已经被提交给所述文件的跟踪信息;以及
朝文件系统转发所述请求。
CN201110444139.1A 2010-12-16 2011-12-15 去重复的文件的部分召回 Active CN102591944B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US12/970,848 US8645335B2 (en) 2010-12-16 2010-12-16 Partial recall of deduplicated files
US12/970,848 2010-12-16

Publications (2)

Publication Number Publication Date
CN102591944A true CN102591944A (zh) 2012-07-18
CN102591944B CN102591944B (zh) 2014-10-29

Family

ID=46235723

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201110444139.1A Active CN102591944B (zh) 2010-12-16 2011-12-15 去重复的文件的部分召回

Country Status (5)

Country Link
US (1) US8645335B2 (zh)
EP (1) EP2652622B1 (zh)
CN (1) CN102591944B (zh)
HK (1) HK1173521A1 (zh)
WO (1) WO2012083263A2 (zh)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105009119A (zh) * 2013-02-28 2015-10-28 微软公司 经去重复文件的细粒度部分召回
CN111400247A (zh) * 2020-04-13 2020-07-10 杭州九州方园科技有限公司 一种用户行为审计方法及文件存储方法
CN111737161A (zh) * 2020-05-22 2020-10-02 深圳市战音科技有限公司 Flash存储器的文件传输方法、终端及存储介质

Families Citing this family (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10394757B2 (en) 2010-11-18 2019-08-27 Microsoft Technology Licensing, Llc Scalable chunk store for data deduplication
US8954399B1 (en) * 2011-04-18 2015-02-10 American Megatrends, Inc. Data de-duplication for information storage systems
US8930653B1 (en) 2011-04-18 2015-01-06 American Megatrends, Inc. Data de-duplication for information storage systems
US8990171B2 (en) 2011-09-01 2015-03-24 Microsoft Corporation Optimization of a partially deduplicated file
US9244932B1 (en) * 2013-01-28 2016-01-26 Symantec Corporation Resolving reparse point conflicts when performing file operations
US11100051B1 (en) * 2013-03-15 2021-08-24 Comcast Cable Communications, Llc Management of content
KR102187127B1 (ko) 2013-12-03 2020-12-04 삼성전자주식회사 데이터 연관정보를 이용한 중복제거 방법 및 시스템
US9836475B2 (en) * 2015-11-16 2017-12-05 International Business Machines Corporation Streamlined padding of deduplication repository file systems
US11157459B2 (en) 2016-02-26 2021-10-26 Red Hat, Inc. Granular data self-healing
US11113247B1 (en) * 2016-05-10 2021-09-07 Veritas Technologies Llc Routing I/O requests to improve read/write concurrency
US10209892B2 (en) 2016-11-28 2019-02-19 Hewlett Packard Enterprise Development Lp Storage of format-aware filter format tracking states
US11860834B1 (en) * 2017-11-01 2024-01-02 EMC IP Holding Company LLC Reporting of space savings due to pattern matching in storage systems
CN110929002B (zh) * 2018-09-03 2022-10-11 优视科技(中国)有限公司 相似文章去重的方法、装置、终端及计算机可读存储介质
US11327848B2 (en) * 2018-12-18 2022-05-10 Acronis International Gmbh System and method for data remediation without data loss

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101079034A (zh) * 2006-07-10 2007-11-28 腾讯科技(深圳)有限公司 消除文件存储系统中冗余文件的系统及方法
US20100070478A1 (en) * 2008-09-15 2010-03-18 International Business Machines Corporation Retrieval and recovery of data chunks from alternate data stores in a deduplicating system

Family Cites Families (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6477544B1 (en) * 1999-07-16 2002-11-05 Microsoft Corporation Single instance store for file systems
US7401080B2 (en) 2005-08-17 2008-07-15 Microsoft Corporation Storage reports duplicate file detection
US20090204650A1 (en) * 2007-11-15 2009-08-13 Attune Systems, Inc. File Deduplication using Copy-on-Write Storage Tiers
US7814074B2 (en) 2008-03-14 2010-10-12 International Business Machines Corporation Method and system for assuring integrity of deduplicated data
US7519635B1 (en) 2008-03-31 2009-04-14 International Business Machines Corporation Method of and system for adaptive selection of a deduplication chunking technique
US8515909B2 (en) 2008-04-29 2013-08-20 International Business Machines Corporation Enhanced method and system for assuring integrity of deduplicated data
US8108353B2 (en) 2008-06-11 2012-01-31 International Business Machines Corporation Method and apparatus for block size optimization in de-duplication
US8788466B2 (en) 2008-08-05 2014-07-22 International Business Machines Corporation Efficient transfer of deduplicated data
US9015181B2 (en) 2008-09-26 2015-04-21 Commvault Systems, Inc. Systems and methods for managing single instancing data
US20100088296A1 (en) * 2008-10-03 2010-04-08 Netapp, Inc. System and method for organizing data to facilitate data deduplication
US8694466B2 (en) 2008-10-07 2014-04-08 Dell Products L.P. Object deduplication and application aware snapshots
US8161255B2 (en) 2009-01-06 2012-04-17 International Business Machines Corporation Optimized simultaneous storing of data into deduplicated and non-deduplicated storage pools
US20100199065A1 (en) 2009-02-04 2010-08-05 Hitachi, Ltd. Methods and apparatus for performing efficient data deduplication by metadata grouping
US8346736B2 (en) 2009-03-16 2013-01-01 International Business Machines Corporation Apparatus and method to deduplicate data
US20100241726A1 (en) 2009-03-23 2010-09-23 Riverbed Technology, Inc. Virtualized Data Storage Over Wide-Area Networks
US8140491B2 (en) 2009-03-26 2012-03-20 International Business Machines Corporation Storage management through adaptive deduplication
US8401181B2 (en) 2009-06-09 2013-03-19 Emc Corporation Segment deduplication system with encryption of segments
US8510275B2 (en) * 2009-09-21 2013-08-13 Dell Products L.P. File aware block level deduplication
US8423520B2 (en) 2009-11-23 2013-04-16 Dell Products L.P. Methods and apparatus for efficient compression and deduplication
US8554743B2 (en) 2009-12-08 2013-10-08 International Business Machines Corporation Optimization of a computing environment in which data management operations are performed

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101079034A (zh) * 2006-07-10 2007-11-28 腾讯科技(深圳)有限公司 消除文件存储系统中冗余文件的系统及方法
US20100070478A1 (en) * 2008-09-15 2010-03-18 International Business Machines Corporation Retrieval and recovery of data chunks from alternate data stores in a deduplicating system

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105009119A (zh) * 2013-02-28 2015-10-28 微软公司 经去重复文件的细粒度部分召回
CN105009119B (zh) * 2013-02-28 2019-10-01 微软技术许可有限责任公司 经去重复文件的细粒度部分召回
CN111400247A (zh) * 2020-04-13 2020-07-10 杭州九州方园科技有限公司 一种用户行为审计方法及文件存储方法
CN111400247B (zh) * 2020-04-13 2023-08-01 杭州九州方园科技有限公司 一种用户行为审计方法及文件存储方法
CN111737161A (zh) * 2020-05-22 2020-10-02 深圳市战音科技有限公司 Flash存储器的文件传输方法、终端及存储介质
CN111737161B (zh) * 2020-05-22 2024-03-26 深圳市战音科技有限公司 Flash存储器的文件传输方法、终端及存储介质

Also Published As

Publication number Publication date
US8645335B2 (en) 2014-02-04
WO2012083263A2 (en) 2012-06-21
WO2012083263A3 (en) 2012-11-08
EP2652622A2 (en) 2013-10-23
EP2652622A4 (en) 2014-08-13
EP2652622B1 (en) 2020-11-18
CN102591944B (zh) 2014-10-29
HK1173521A1 (zh) 2013-05-16
US20120158675A1 (en) 2012-06-21

Similar Documents

Publication Publication Date Title
CN102591944B (zh) 去重复的文件的部分召回
US10789215B1 (en) Log-structured storage systems
US10579610B2 (en) Replicated database startup for common database storage
US10642840B1 (en) Filtered hash table generation for performing hash joins
EP3673376B1 (en) Log-structured storage systems
CN102591946B (zh) 使用索引划分和协调来进行数据去重复
US11423015B2 (en) Log-structured storage systems
US10896006B1 (en) Log-structured storage systems
JP5485866B2 (ja) 情報管理方法、及び情報提供用計算機
CN102947815B (zh) 数据的存储与发送的优化
US11294881B2 (en) Log-structured storage systems
US11422728B2 (en) Log-structured storage systems
US10885022B1 (en) Log-structured storage systems
US20160110408A1 (en) Optimized log storage for asynchronous log updates
EP3695303B1 (en) Log-structured storage systems
EP3695304B1 (en) Log-structured storage systems
US20190007208A1 (en) Encrypting existing live unencrypted data using age-based garbage collection
CN102439580A (zh) 用于网络加速以及对高速缓存文件系统进行高效索引编制的系统及方法
US10942852B1 (en) Log-structured storage systems
CN107368608A (zh) 基于arc替换算法的hdfs小文件缓存管理方法
US10909143B1 (en) Shared pages for database copies
CN111522825A (zh) 基于校验信息块共享缓存机制的高效信息更新方法及系统
US20230205776A1 (en) Distributed datastores with state-based data location

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
REG Reference to a national code

Ref country code: HK

Ref legal event code: DE

Ref document number: 1173521

Country of ref document: HK

C14 Grant of patent or utility model
GR01 Patent grant
ASS Succession or assignment of patent right

Owner name: MICROSOFT TECHNOLOGY LICENSING LLC

Free format text: FORMER OWNER: MICROSOFT CORP.

Effective date: 20150427

C41 Transfer of patent application or patent right or utility model
TR01 Transfer of patent right

Effective date of registration: 20150427

Address after: Washington State

Patentee after: Micro soft technique license Co., Ltd

Address before: Washington State

Patentee before: Microsoft Corp.

REG Reference to a national code

Ref country code: HK

Ref legal event code: GR

Ref document number: 1173521

Country of ref document: HK