CN102917012B - 执行存储与通信去重复的方法及设备 - Google Patents
执行存储与通信去重复的方法及设备 Download PDFInfo
- Publication number
- CN102917012B CN102917012B CN201210331185.5A CN201210331185A CN102917012B CN 102917012 B CN102917012 B CN 102917012B CN 201210331185 A CN201210331185 A CN 201210331185A CN 102917012 B CN102917012 B CN 102917012B
- Authority
- CN
- China
- Prior art keywords
- data
- copy block
- identifier
- block
- content item
- 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.)
- Active
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0608—Saving storage space on storage systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/061—Improving I/O performance
- G06F3/0613—Improving I/O performance in relation to throughput
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0638—Organizing or formatting or addressing of data
- G06F3/064—Management of blocks
- G06F3/0641—De-duplication techniques
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/067—Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS]
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Human Computer Interaction (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Transfer Between Computers (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
描述了存储和通信去重复。在一个或多个实施方案中,系统包括被至少部分在硬件中实现的一个或多个模块,这一个或多个模块被配置成使用一个或多个算法来计算数据的块的哈希,该哈希被用来代替数据中用于在所述系统中本地存储的块以及被用来响应于经由网络接收的对于所述数据的请求而传递所述哈希,以避免经由网络传递所述数据的块中的至少一个块。
Description
背景技术
甚至是临时用户生成的和与之交互的数据量也在不断增加。例如,用户可以与社交网络服务进行交互、存储照片、与其它的用户交流照片、对电子邮件和即时消息进行阅读和响应、观看视频等等。因此,用来支持这种交互(例如,数据存储和通信)的资源可能变得背负这种数据量的负担。然而,被使用来减轻至少某些这种紧张的传统的技术常常是脱节的,并因此可能还消耗大量的资源并限制可能被利用的技术的复杂度。
发明内容
描述了存储和通信去重复(de-duplication)。在一个或多个实施方案中,系统包括至少部分在硬件中实施的一个或多个模块,所述一个或多个模块被配置成使用一个或多个算法来计算数据的块(chunk)的哈希(hash),所述哈希用来代替数据中用于在该系统中本地存储的块,以及用来响应于经由网络接收的对于数据的请求而传递所述哈希来避免经由网络传递数据的块中的至少一个。
在一个或多个实施方案中,发送设备用一个或多个标识符(identifier)代替数据的一个或多个块、存储所述一个或多个块和所述一个或多个标识符、并将所述数据存储为具有一个或多个标识符。响应于对于经由网络传递所述数据的请求,形成一种经由网络传递的通信,所述通信具有来自所述数据的一个或多个块的一个或多个标识符。所述一个或多个标识符被配置成用于由接收设备使用来识别所述一个或多个块在所述接收设备上是否是本地可得到的。
在一个或多个实施方案中,接收设备经由网络接收通信,所述通信具有从所述数据得到的一个或多个块的一个或多个标识符。所述来自通信的一个或多个标识符与对于接收设备而言是本地可得到的块的一个或多个标识符进行比较。响应于来自通信的标识符中的至少一个标识符与对于接收设备而言是本地可得到的对应的块的标识符中的至少一个标识符相匹配的确定,用所述对应的块代替所述至少一个标识符。响应于来自通信的标识符中的至少一个标识符与对于接收设备而言是本地可得到的对应的块的标识符中的至少一个标识符不相匹配的确定,形成一种要被经由网络传递给所述通信的发送方的通信,以便使得发送者经由网络传递所述对应的块,以便被接收设备接收。
本发明内容被提供来以简化的形式介绍概念的选择,这些概念在下面的具体实施方式中进一步描述。本发明内容既不打算识别所要求保护的主题的关键特征或必要特征,也不打算被使用来帮助确定所要求保护的主题的范围。
附图说明
具体实施例是参考附图进行描述的。在附图中,附图标记的最左边的数字(一个或多个)标识该附图标记首次出现的图。在描述和图中的不同的实例中使用相同的附图标记可以指示类似的或等同的项。
图1图示了实例实施方案中的环境,其可被操作来执行存储和通信去重复技术。
图2图示了实例实施方案中的系统,其示出用于在文件的存储中使用的标识符和块的生成。
图3图示了实例实施方案中的系统,其示出用于在传递另一个文件中使用的、图2中生成的标识符和块的使用。
图4是描绘实例实施方案中的过程的流程图,其中在发送设备处数据被分块以及标识符被形成。
图5是描绘实例实施方案中的过程的流程图,其中在接收设备处响应于对于数据的请求接收标识符。
图6图示了包括如参考图1描述的计算设备的实例系统。
图7图示了实例设备的各种组件,该实例设备可被实施为如参考图1-3和图6描述的任意类型的计算设备,以便实施这里描述的技术的实施例。
具体实施方式
概述
被使用来增加文件存储和文件通信的使用的效率的先前的技术常常涉及到专用设备。此外,这些技术常常是断裂的,并因此限制了可以在传统的情境中利用的算法的复杂度。
描述了存储和通信去重复技术。在一个或多个实施方案中,存储和通信去重复被统一来降低冗余和增加数据存储和通信的效率。这些技术被使用来分块数据和计算用于存储的块的哈希。所述块然后被存储一次,并且所述哈希被使用来标识原始数据中的块。因此,当想要访问时,这个数据可以通过使用哈希和块被重新构建。
另外,这些块和哈希也可以被使用来支持通信。例如,这些技术可以被使用来支持高速缓存系统,在其中使得块和识别哈希对请求者而言是本地可得到的。因此,当用户形成一种对于数据的项的请求时,哈希可以首先被传递。所述哈希然后可以被使用来确定所述块是否是本地可得到的。如果是的话,不从数据提供者请求那些块。如果不是的话,不可得到的那些块可以被请求。以这种方式,所述哈希和块可以被使用来支持通过其改进数据的存储和通信这二者的效率的这两种技术。此外,这种组合可以被使用来支持另外地在传统上对于所述技术中的一种或多种技术是不可得到的功能,诸如使用计算上代价昂贵的算法来形成用于在通信中使用的块和哈希。对这些和其它实施方案的继续的讨论可以与下面的章节相结合地找到。
在下面的讨论中,首先描述了可以利用这里描述的技术的实例环境。然后描述了可以在实例环境以及其它环境中执行的实例过程。因此,所述实例过程的执行并不限于所述实例环境,且所述实例环境并不限于执行所述实例过程。
实例环境
图1图示了实例实施方案中的环境100,其可被操作来利用这里描述的技术。图示的环境100包括经由网络106被通信地耦合到服务提供者104的计算设备102。所述计算设备102以及可以实现服务提供者104的计算设备可以以各种各样的方式来配置。
例如,计算设备可以被配置为能够通过网络106通信的计算机,例如台式计算机、移动站、娱乐装置、通信地耦合到显示设备的机顶盒、无线电话、游戏机等等。因此,计算设备102可以是从具有大量存储器和处理器资源的全资源设备(例如,个人计算机、游戏机)到具有有限的存储器和/或处理资源的低资源设备(例如,传统的机顶盒、手持式游戏机)范围中的设备。另外,尽管示出了单个计算设备102,但是计算设备102可以代表多个不同的设备中的一个或多个,例如被企业使用来例如通过服务提供者104、作为本地网络一部分的台式计算机(例如,利用分支高速缓存的分支)等等执行操作的多个服务器。
尽管网络106被图示为因特网,但是该网络可以采用各种各样的配置。例如,网络106可以包括广域网(WAN)、局域网、公用电话网、内联网、对等网络等等。此外,尽管显示了单个网络106,但是网络106可以被配置成包括多个网络。
计算设备102还被图示为包括通信模块108。通信模块108代表计算设备102经由网络106进行通信的功能。例如,通信模块108可以被配置为浏览器的一部分、网络实现的应用、操作系统等等。这个功能因此可以被使用来经由网络106进行交互,以便发送和/或接收感兴趣的数据,例如来自服务提供者104的数据。
服务提供者104被图示为包括服务模块110。服务模块110代表服务提供者104管理一个或多个网络服务的功能。各种各样的网络服务可以被管理,例如社交网络服务、图像存储服务、电子邮件服务、日历服务、文件同步服务、视频流服务等等。照此,这些服务可能涉及要被存储和传递的巨量的数据。
因此,服务模块110还被图示为包括重复模块112。重复模块112代表利用可以被使用在数据的存储和通信中的去重复技术的功能。例如,重复模块112可以被使用来根据数据计算块114,以及计算块114的标识符116。标识符116可以被用作指针来代替数据的项中的、要被存储在服务提供者104处的存储装置118中的块。重复模块112然后可以将标识符116用作定位对应的块114的索引。因此,重复模块112可以被使用来通过降低存储装置118中的数据的重复的量来增加存储装置118的使用的效率。
计算设备102也可以影响(leverage)这种功能的所有或部分,如通过在计算设备102处包括重复模块120所示的。例如,重复模块120也可以被使用来降低计算设备102处的数据的重复的量。服务提供者104和计算设备102的重复模块112、120分别可以被使用来支持经由网络106的通信中的去重复,例如通过标识符116的传递来定位已经经由网络106传递的块114,所述块114例如是在计算设备102本身处或经由本地连接(例如对等网络中的一个同等方)可本地得到的、从专用的高速缓存服务器可得到的,等等。因此,这些技术可以被使用来增加存储和通信这二者的效率,其进一步的讨论可以结合图2找到。
通常,这里描述的功能中的任意的功能可以通过使用软件、固件、硬件(例如,固定逻辑电路)、或这些实施方案的组合来实施。这里使用的词语“模块”、“功能”、“逻辑”通常代表软件、固件、硬件、或它们的组合。在软件实施方案的情形下,所述模块、功能或逻辑代表程序代码,当程序代码在处理器(一个或多个CPU)上被执行时,执行特定的任务。所述程序代码可以被存储在一个或多个计算机可读存储器设备中。下面描述的技术的特征是平台独立的,意味着所述技术可以在具有各种各样的处理器的各种各样的商业计算平台上被实施。
例如,计算设备102也可以包括使计算设备102的硬件(例如,处理器、功能块等等)执行操作的实体(例如,软件)。例如,计算设备102可以包括计算机可读介质,其可被配置成维持使得计算设备以及更具体地计算设备102的硬件来执行操作的指令。因此,指令的作用是配置硬件来执行操作,并且以这样的方式导致将硬件转换为执行功能。这些指令可以通过各种各样的不同的配置被计算机可读介质提供给计算设备102。
计算机可读介质的一个这样的配置是信号承载介质,并因此被配置来将指令(例如,作为载波)例如经由网络传送给计算设备的硬件。计算机可读介质也可以被配置为计算机可读存储介质,并因此不是信号承载介质。计算机可读存储介质的例子包括随机存取存储器(RAM)、只读存储器(ROM)、光盘、闪存、硬盘存储器、以及可以使用磁、光、和其它技术来存储指令和其它数据的其它存储器设备。
图2图示了实例实施方案中的系统200,其显示用于在文件的存储中使用的标识符和块的生成。尽管下面的例子描述了由服务模块110操作重复模块112,但是非常明显的是这些技术也可以被计算设备102处的重复模块120所利用。
在服务模块110处接收要被存储的文件202。所述服务模块110因此可以利用重复模块112来确定文件202是否适合于去重复技术的使用。例如,重复模块112可以利用代表从文件202形成块114的功能的分块模块204。各种各样的不同的算法可以被分块模块204利用来识别和形成这些块,例如Rabin(拉宾)分块算法、一种寻找文件202的数据中的最小值和最大值的算法等等。例如,分块模块204可以利用算法来检测数据的相似性,并因此识别所述分块。这可以被使用来增加检测到内容的不同的项间的相似性的机会。
重复模块112也可以利用标识符模块206。标识符模块206代表针对每个块114形成标识符116的功能。标识符模块206例如可以从形成块114的数据中形成作为哈希的标识符116。各种各样的其它标识符116也被预期。
重复模块112可以被配置成以各种各样的方式利用分块模块204和标识符模块206,例如预先计算块114和标识符,可以在服务器负荷相对低的时间期间内离线地被执行等等。因此,重复模块112可以利用增加的处理资源以相对低的“开销”可得到的时间来执行分块模块204和标识符模块206的计算。
块114和对应的标识符116然后可以被存储在存储装置118中。标识符116也可以被使用为文件202中的指针来增加存储效率。例如文件202可以被存储为文件208,文件208包括非重复的数据210,例如不被分块模块204使用来形成一个或多个块114的数据。文件208还可以包括在存储装置118中包括的块的标识符212。因此,文件202可以通过用对应的块114取代标识符212而从文件208中轻易的重新构建。这些标识符也可以被使用来改进通信中的效率,其例子在下面的图涉及的内容中描述。
图3描绘了实例实施方案中的系统300,其显示用于在传递另一个文件中使用的、图2中生成的标识符和块的使用。在这个例子中,计算设备102被图示为包括如在图1涉及的内容中描述的通信模块108和重复模块120。计算设备102还被图示为包括存储装置302,其具有块304和对应的标识符306,例如具有从如图2涉及的内容中描述的文件202形成的块304和标识符306。存储装置302对于计算设备102本身可以是本地的,可从数据的共享的高速缓存得到,数据的共享的高速缓存例如是作为经由本地网络连接、对等网络、专用服务器高速缓存等的远程分支机构的一部分。重复模块120可以影响这个存储装置302来改进经由网络106通信的效率。
例如,通信模块108可以形成要被传递给服务供应者104的、对于文件308请求。这可以作为经由因特网、通过诸如无线接入网的这样的无线连接等等的、对于文件308的请求的一部分被执行。
文件308包括在存储装置118中包括的块的标识符312和非重复的数据310的一部分。因此,与前面一样,这可以被使用来增加在服务提供者104处存储文件308的效率。非常明显的是,在其中使用标识符来代表文件308的全部有效载荷的其它例子也被预想。然而,尽管再次这种技术可同样应用于图2的文件202的通信,但是在这个例子中文件308不匹配于图2涉及的内容中描述的文件202,例如至少某部分不匹配。
无论如何,响应于所述请求,服务模块110可以将标识符312’传递给计算设备102。重复模块120然后可以将标识符312’与在存储装置302中包括的标识符306进行比较,以便看看对应的块在计算设备处是否是本地可用的。如果是的话,重复模块120可以使用那些块重新构建文件308的那些部分,而不涉及到经由网络的额外的通信。
对于与存储装置302中的标识符306不匹配的标识符312’,重复模块120可以请求对应于经由网络106传递的那些标识符的块114。这些块114然后可以被使用来重新构建文件308,以及用于包括在存储装置302中以便改进对于该数据的随后的请求的有关数据的通信的效率,也用于在计算设备102本身处存储。因此,这些技术可以被使用来克服通常是破碎的和大量占用资源的传统技术的不足。存储和通信去重复的进一步的讨论可以在下面过程涉及的内容中找到。
实例过程
下面的讨论描述了可以使用先前描述的系统和设备而实施的存储和通信去重复技术。所述过程中的每个过程的诸方面可以在硬件、固件、或软件、或它们的组合中实施。所述诸过程被显示为一组方块,这些方块指定由一个或多个设备执行的操作,且并不必限于所显示的、各个方块执行操作的顺序。在下面讨论的部分中,将分别参考图1的环境100以及图2和图3的系统200、300。
图4描绘了实例实施方案中的过程400,其中在发送设备处分块数据并形成标识符。在发送设备处接收数据(方块402)。例如,所述数据可以由服务提供者104自己生成、被发往服务提供者、或被各种各样的其它实体所接收。
从所述数据识别一个或多个块(方块404)。重复模块112例如可以利用分块模块204来从接收的数据(例如,文件202)形成块。所述块可以以各种各样的方式被形成、采用各种各样的大小等等。
所述块的一个或多个标识符被分别地生成(方块406)。所述标识符例如可以作为包括在块114中的数据的哈希被形成。可能基于各种各样的其它数据的其它的标识符也被预想,这样的数据例如是与内容项相关联的元数据。
所述一个或多个块以及一个或多个标识符被存储(方块408)。重复模块112例如可以被配置成将存储装置118维持为包括标识符116的高速缓存,其可被使用来定位对应的块114。以这种方式,块114和对应的标识符116可以与数据的多个不同的项相关联地使用,以增加存储装置118的使用效率。
数据中的一个或多个块可以用一个或多个标识符代替(方块410)。所述数据然后被存储为具有一个或多个标识符(方块412)。例如,如图2中所示,可以生成对应于文件202的文件208。然而,文件208可以包括可以充当指向存储装置118的指针的标识符212,以使得块114在存储装置118中的重复可以被降低。块114和标识符116也可以被利用来改进网络通信(例如,通过无线区域网络的通信)的效率。
例如,响应于对于经由网络传递数据的请求,形成一种经由该网络传递数据的一个或多个标识符的通信,所述一个或多个标识符被配置用于由接收设备使用来识别所述一个或多个块在此接收设备处是否是本地可得到的(方块414)。以这种方式,接收设备(例如,计算设备102)可以确定文件208的块114是否在不涉及到块的实际的通信的情形下是本地可得到的。因此,这些技术可以被使用来支持存储和通信这二者,并因此避免如使用常规的技术所遇到的资源的低效率使用。数据的通信的进一步的讨论可以在下面过程涉及的内容中找到。
图5描述了实例实施方案中的过程500,其中在接收设备处响应于对数据的请求而接收标识符。经由网络接收通信,所述通信具有从数据取得的一个或多个块的一个或多个标识符(502)。如前,计算设备102可以形成一种到服务提供者104的、针对数据的项的请求。在另一个例子中,所述通信可以被自发地接收,例如电子邮件。
来自所述通信的一个或多个标识符与对于接收设备而言是本地可得到的块的一个或多个标识符进行比较(方块504)。计算设备102例如可以合并用于在计算设备102处通过使用重复模块102进行数据的存储和通信的类似的技术。这可以包括使用用于形成块304和这些块的标识符306的匹配算法,如重复模块112所利用的那些算法。
响应于来自所述通信的标识符中的至少一个标识符与对于接收设备而言是本地可得到的对应的块的标识符中的至少一个标识符相匹配的确定,所述至少一个标识符用所述对应的块代替(方块506)。以这种方式,计算设备102可以通过使用由计算设备102本地得到的以及与服务提供者104并不遥远的数据(例如,来自远端分支机构的分支高速缓存)来帮助重新构建数据的项。
响应于来自所述通信的标识符中的至少一个标识符与对于接收设备而言是本地可得到的对应的块的标识符中的至少一个标识符不匹配的确定,形成一种要经由网络传递到通信的发送方的通信,以便使得发送方经由网络传递对应的块,用于被接收设备接收(分块508)。因此,重复模块120可以从服务提供者104得到在对于计算设备102而言是本地的存储装置302中缺少的无论任何的块,并因此降低网络资源106的使用以及改进访问数据的效率。
实例系统和设备
图6图示了实例系统600,其包括如参考图1描述的计算设备102。当实例系统600在个人计算机(PC)、电视设备、和/或移动设备上运行应用时,其实现了用于无缝用户体验的无处不在的环境。当从一个设备转移到下一个设备而同时使用应用、玩视频游戏、观看视频等等时,为了共同的用户体验,服务和应用在所有的三种环境中基本类似地运行。
在实例系统600中,多个设备通过中央计算设备互连。中央计算设备可以对于多个设备而言是本地的或可以位于距离多个计算设备遥远的地方。在一个实施例中,中央计算设备可以是通过网络、因特网、或其它数据通信链路被连接到多个设备的一个或多个服务器计算机的云。在一个实施例中,这个互连架构实现了跨多个设备被递送的功能,以便给多个设备的用户提供共同的和无缝的体验。多个设备的每个设备可以具有不同的物理要求和能力,并且中央计算设备使用一种平台来实现将对该设备是适配的且还对所有设备是共同的体验递送给该设备。在一个实施例中,创建目标设备的类别并针对通用类别的设备适配体验。设备的类别可以由物理特征、使用的类型、或设备的其它共同的特性来定义。
在各种实施方案中,计算设备102可以采用各种各样的不同的配置,例如用于计算机602、移动装置604和电视606所使用。这些配置中的每个配置包括通常可以具有不同构造和能力的设备,并且因此计算设备102可以按照不同设备类别中的一个或多个设备类别被配置。例如,计算设备102可以被实施为设备的计算机602类别,其包括个人计算机、台式计算机、多屏幕计算机、膝上型计算机、上网本等等。
计算设备102也可以被实施为包括移动设备的移动装置604类别的设备,移动设备例如移动电话、便携式音乐播放器、便携式游戏设备、平板电脑、多屏幕计算机等等。计算设备102也可以被实施为设备的电视606类别,其包括具有在临时的观看环境中的通常较大的屏幕的设备或被连接到临时的观看环境中的通常较大的屏幕的设备。这些设备包括电视、机顶盒、游戏控制器、等等。这里描述的技术可以被计算设备102的这些各种各样的配置所支持,且并不限于在这里描述的特定的作为例子的技术,这些技术通过包括重复模块120而被图示。
这些技术也可以全部地或部分地被合并在“云上”,如重复模块112所图示的。云608包括和/或代表内容服务612的平台610。平台610抽象化云608的硬件(例如,服务器)和软件资源的基本的功能。内容服务612可以包括当计算机处理在距计算设备102遥远的服务器上被执行时可以被使用的应用和/或数据。内容服务612可以被提供作为因特网上的和/或通过用户网络(例如,蜂窝或Wi-Fi网络)的服务。
平台610可以抽象化连接计算设备102与其它计算设备的资源和功能。平台610也可用来抽象化资源的规模,以便为遇到的、对于经由平台610实施的内容服务612的要求提供对应级别的规模。因此,在互连的设备的实施例中,对这里描述的功能的功能实施可以贯穿系统600而分布。例如,所述功能可以部分在计算设备102上以及经由抽象化云608的功能的平台610而实施。
图7图示了实例设备700的各种组件,实例设备700可以被实施为如参考图1、2和6描述的任意类型的计算设备来实施这里描述的技术的实施例。设备700包括通信设备702,该通信设备实现设备数据704(例如,接收的数据、正被接收的数据、被调度用于广播的数据、数据的数据分组等等)的有线和/或无线通信。设备数据704或其它的设备内容可以包括该设备的配置设置、存储在该设备上的媒体内容和/或与该设备的用户相关联的信息。存储在设备700上的媒体内容可以包括任意类型的音频、视频、和/或图像数据。设备700包括一个或多个数据输入706,经由其可以接收到任意类型的数据、媒体内容、和/或输入,例如用户可选择的输入、消息、音乐、电视媒体内容、记录的视频内容、和从任意内容和/或数据源接收的任意其他类型的音频、视频和/或图像数据。
设备700还包括通信接口708,该通信接口708可以被实施为串行和/或并行接口、无线接口、任意类型的网络接口、调制解调器中的任意一个或多个,以及实施为任意类型的通信接口。通信接口708在设备700和通信网络间提供连接和/或通信链路,通过其其它的电子、计算、和通信设备与设备700传递数据。
设备700包括一个或多个处理器710(例如,微处理器、控制器等等中的任意),其处理各种计算机可执行指令以控制设备700的操作和实施这里描述的技术的实施例。替换地或另外地,设备700可以用硬件、固件、或结合在712处大体标识的处理和控制电路而实施的固定逻辑电路中的任意一个或组合来实施。尽管未示出,设备700可以包括将各种组件耦合在该设备中的数据转移系统或系统总线。系统总线可以包括诸如存储器总线或存储器控制器、外围总线、通用串行总线、和/或使用各种各样的总线架构中的任意架构的处理器或本地总线这样的不同的总线结构中的任意一种或组合。
设备700还包括计算机可读介质714,例如一个或多个存储器组件,其例子包括随机存取存储器(RAM)、非易失性存储器(例如,只读存储器(ROM)、闪存、EPROM、EEPROM等中的任意一个或多个)、和盘存储设备。盘存储设备可以被实施为任意类型的磁或光存储设备,例如硬盘驱动器、可记录和/或可重写的紧凑盘(CD)、任意类型的数字化多功能盘(DVD)等等。设备700还可以包括大量的存储介质设备716。
计算机可读介质714提供数据存储机制来存储设备数据704,以及各种设备应用718和涉及设备700的操作方面的任意其它类型的信息和/或数据。例如,操作系统720可以利用计算机可读介质714被维持为计算机应用,并在处理器710上执行。设备应用718可以包括设备管理器(例如,控制应用、软件应用、信号处理和控制模块、源自特定设备的代码、特定设备的硬件抽象层等等)。设备应用718还包括用于实施这里描述的技术的实施例的任意的系统组件或模块。在这个例子中,设备应用718包括应用接口722和输入/输出模块724,它们被显示为软件模块和/或计算机应用。输入/输出模块724代表软件,所述软件被使用来为接口提供被配置来捕获输入(例如,触摸屏、跟踪垫、摄像机、话筒等等)的设备。替换地或另外地,接口应用722和输入/输出模块724可以被实施为硬件、软件、固件、或它们的任意的组合。另外地,输入/输出模块724可以被配置成支持多个输入设备,例如分别用来捕获视觉和音频输入的单独的设备。
设备700还包括音频和/或视频输入-输出系统726,其为音频系统728提供音频数据和/或为显示系统730提供视频数据。音频系统728和/或显示系统730可以包括处理、显示和/或另外再现音频、视频和图像数据的任意的设备。视频信号和音频信号可以经由RF(射频)链路、S-video链路、复合视频链路、分量视频链路、DVI(数字视频接口)、模拟音频连接、或其它类似的通信链路从设备700被传递到音频设备和/或显示设备。在某个实施例中,音频系统728和/或显示系统730被实施为设备700的外部组件。替换地,音频系统728和/或显示系统730被实施为实例设备700的集成的组件。
总结
尽管本发明已经以特定于结构化特征和/或方法动作的语言被描述,但是应当理解在所附权利要求中定义的本发明不必限于所描述的特定的特征或动作。而是,所述特定的特征和动作是作为实施所要求保护的发明的实例形式而被公开的。
Claims (14)
1.一种由发送设备实施的方法,该方法包括:
在接收一个经由网络传递内容项的请求之前,通过将该内容项中的数据与先前存储的数据比较来从该内容项中识别数据的一个或多个复制块,其中该内容项中的数据的一个或多个复制块是在该内容项中已经预先存储了匹配数据的一个或者多个数据块;
针对所述数据的一个或多个复制块生成一个或多个标识符,其中,所述一个或多个标识符中的各个标识符与所述数据的一个或多个复制块中的相应复制块相关联;
存储所述一个或多个标识符;
存储所述内容项,使得所存储的一个或多个标识符中的各个标识符代替所述数据的一个或多个复制块中的相应复制块,由此,每个数据的复制块在发送设备上只被存储一次;和
响应于经由网络传递所述内容项中的数据的请求,形成一种经由网络传递的通信,所述通信含有所存储的、具有与所述数据的一个或多个复制块相关联的所述一个或多个标识符的内容项,所述一个或多个标识符被配置为可被用于识别所述一个或多个复制块是否在接收设备处在一个组中的至少一个位置处可得到,该组由以下项目组成:本地高速缓存和对等网络。
2.权利要求1所述的方法,还包括:
当所述数据的一个或多个复制块中的相应块在接收设备处不是本地可得到的时,用所述数据的一个或多个复制块中的相应块代替所述一个或多个标识符;以及
向接收设备发送所述数据的一个或多个复制块。
3.权利要求1所述的方法,其中所述一个或多个标识符是所述数据的一个或多个复制块中的相应复制块的哈希。
4.权利要求1所述的方法,其中所述通信中包括的所述一个或多个标识符中的至少一个标识符可被接收设备使用来识别所述数据的一个或多个复制块中的相应复制块在所述接收设备处是本地可得到的。
5.权利要求4所述的方法,其中执行所述识别所述数据的一个或多个复制块中的相应复制块在所述接收设备处是本地可得到的,使得所述数据的一个或多个复制块中的各个复制块不被从所述发送设备经由网络传递到所述接收设备。
6.权利要求1所述的方法,其中所述网络是广域网(WAN)。
7.权利要求1所述的方法,其中所述数据的一个或多个复制块中的至少一个复制块和各自的相关联的标识符可被使用来重新构建另一数据项。
8.权利要求1所述的方法,其中所述数据的一个或多个复制块中的至少一个复制块可被使用来代替用于另一数据项的数据的一个或多个复制块中的至少一个复制块的传递。
9.权利要求1所述的方法,还包括使用算法识别所述数据的一个或多个复制块,其中所述算法检测存储在发送设备处的不同内容项之间的相似性。
10.权利要求1所述的方法,还包括使用Rabin分块算法来识别所述数据的一个或多个复制块。
11.一种发送设备,包括:
存储器;以及
与所述存储器耦合的至少一个处理器,所述至少一个处理器被配置为:
在接收一个经由网络传递内容项的请求之前,通过将该内容项中的数据与先前存储的数据比较来从该内容项中识别数据的一个或多个复制块,其中该内容项中的数据的一个或多个复制块是在该内容项中已经预先存储了匹配数据的一个或者多个数据块;
针对所述数据的一个或多个复制块生成一个或多个标识符,其中,所述一个或多个标识符中的各个标识符与所述数据的一个或多个复制块中的相应复制块相关联;
存储所述一个或多个标识符;
存储所述内容项,使得所述一个或多个标识符中的各个标识符代替所述数据的一个或多个复制块中的相应复制块,由此,该数据的每个复制块在发送设备上只被存储一次;和
响应于经由网络传递所述内容项中的数据的请求,形成一种经由网络传递的通信,所述通信含有所存储的、具有与所述数据的一个或多个复制块相关联的所述一个或多个标识符的内容项,所述一个或多个标识符被配置为可被用于识别所述一个或多个复制块是否在接收设备处在一个组中的至少一个位置处可得到,该组由以下项目组成:本地高速缓存和对等网络。
12.权利要求11所述的发送设备,其中,所述一个或多个标识符是所述数据的一个或多个复制块中的相应复制块的哈希。
13.权利要求11所述的发送设备,其中,所述通信中包括的所述一个或多个标识符中的至少一个标识符可被接收设备使用来识别所述数据的一个或多个复制块中的各个复制块对于所述接收设备而言是本地可得到的。
14.权利要求13所述的发送设备,其中,执行所述识别所述数据的一个或多个复制块中的相应复制块在所述接收设备处是本地可得到的,使得所述数据的一个或多个复制块中的相应复制块不被从所述发送设备经由网络传递到所述接收设备。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US13/229,621 US8799467B2 (en) | 2011-09-09 | 2011-09-09 | Storage and communication de-duplication |
US13/229621 | 2011-09-09 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102917012A CN102917012A (zh) | 2013-02-06 |
CN102917012B true CN102917012B (zh) | 2016-03-09 |
Family
ID=47615242
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201210331185.5A Active CN102917012B (zh) | 2011-09-09 | 2012-09-10 | 执行存储与通信去重复的方法及设备 |
Country Status (4)
Country | Link |
---|---|
US (1) | US8799467B2 (zh) |
EP (1) | EP2754058A4 (zh) |
CN (1) | CN102917012B (zh) |
WO (1) | WO2013036256A1 (zh) |
Families Citing this family (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8849878B1 (en) * | 2011-09-30 | 2014-09-30 | Emc Corporation | Efficient data rehydration |
US9548908B2 (en) * | 2012-08-21 | 2017-01-17 | Cisco Technology, Inc. | Flow de-duplication for network monitoring |
EP2997475A4 (en) * | 2013-05-16 | 2017-03-22 | Hewlett-Packard Enterprise Development LP | Deduplicated data storage system having distributed manifest |
US10592347B2 (en) | 2013-05-16 | 2020-03-17 | Hewlett Packard Enterprise Development Lp | Selecting a store for deduplicated data |
WO2014185915A1 (en) | 2013-05-16 | 2014-11-20 | Hewlett-Packard Development Company, L.P. | Reporting degraded state of data retrieved for distributed object |
WO2014185916A1 (en) | 2013-05-16 | 2014-11-20 | Hewlett-Packard Development Company, L.P. | Selecting a store for deduplicated data |
US11394775B2 (en) * | 2013-09-04 | 2022-07-19 | Intel Corporation | Mechanism for facilitating dynamic storage management for mobile computing devices |
CA3051474A1 (en) * | 2017-01-30 | 2018-08-02 | Walmart Apollo, Llc | Distributed autonomous robot interfacing systems and methods |
WO2018165959A1 (zh) * | 2017-03-17 | 2018-09-20 | 深圳市秀趣品牌文化传播有限公司 | 电商数据清理系统及方法 |
US10795860B1 (en) * | 2017-04-13 | 2020-10-06 | EMC IP Holding Company LLC | WAN optimized micro-service based deduplication |
US11461269B2 (en) | 2017-07-21 | 2022-10-04 | EMC IP Holding Company | Metadata separated container format |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102170456A (zh) * | 2010-02-27 | 2011-08-31 | 华为技术有限公司 | 对等网络中获取内容的方法、装置和系统 |
Family Cites Families (17)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7266645B2 (en) * | 2003-02-18 | 2007-09-04 | Intel Corporation | Reducing communication for reads and updates in distributed object systems |
US8280926B2 (en) | 2003-08-05 | 2012-10-02 | Sepaton, Inc. | Scalable de-duplication mechanism |
CA2513016A1 (en) * | 2005-07-22 | 2007-01-22 | Research In Motion Limited | A secure method of synchronizing cache contents of a mobile browser with a proxy server |
CA2513010A1 (en) * | 2005-07-22 | 2007-01-22 | Research In Motion Limited | A method for detecting state changes between data stored in a first computing device and data retrieved from a second computing device |
CA2513018A1 (en) * | 2005-07-22 | 2007-01-22 | Research In Motion Limited | Method for training a proxy server for content delivery based on communication of state information from a mobile device browser |
US7747584B1 (en) | 2006-08-22 | 2010-06-29 | Netapp, Inc. | System and method for enabling de-duplication in a storage system architecture |
JP5060876B2 (ja) | 2007-08-30 | 2012-10-31 | 株式会社日立製作所 | ストレージシステム及びストレージシステムの消費電力低減方法 |
US8140637B2 (en) | 2007-10-25 | 2012-03-20 | Hewlett-Packard Development Company, L.P. | Communicating chunks between devices |
US8200969B2 (en) * | 2008-01-31 | 2012-06-12 | Hewlett-Packard Development Company, L.P. | Data verification by challenge |
US8352540B2 (en) | 2008-03-06 | 2013-01-08 | International Business Machines Corporation | Distinguishing data streams to enhance data storage efficiency |
US8086799B2 (en) | 2008-08-12 | 2011-12-27 | Netapp, Inc. | Scalable deduplication of stored data |
US7814149B1 (en) * | 2008-09-29 | 2010-10-12 | Symantec Operating Corporation | Client side data deduplication |
WO2010045262A1 (en) | 2008-10-14 | 2010-04-22 | Wanova Technologies, Ltd. | Storage-network de-duplication |
GB2472072B (en) | 2009-07-24 | 2013-10-16 | Hewlett Packard Development Co | Deduplication of encoded data |
US8452932B2 (en) | 2010-01-06 | 2013-05-28 | Storsimple, Inc. | System and method for efficiently creating off-site data volume back-ups |
US8230008B2 (en) * | 2010-02-26 | 2012-07-24 | Red Hat Israel, Ltd. | Persisting graphics structures across client change in graphics remoting environment |
US8612392B2 (en) * | 2011-05-09 | 2013-12-17 | International Business Machines Corporation | Identifying modified chunks in a data set for storage |
-
2011
- 2011-09-09 US US13/229,621 patent/US8799467B2/en active Active
- 2011-10-11 WO PCT/US2011/055660 patent/WO2013036256A1/en active Application Filing
- 2011-10-11 EP EP11871958.2A patent/EP2754058A4/en not_active Ceased
-
2012
- 2012-09-10 CN CN201210331185.5A patent/CN102917012B/zh active Active
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102170456A (zh) * | 2010-02-27 | 2011-08-31 | 华为技术有限公司 | 对等网络中获取内容的方法、装置和系统 |
Also Published As
Publication number | Publication date |
---|---|
EP2754058A4 (en) | 2016-06-15 |
WO2013036256A1 (en) | 2013-03-14 |
US20130067080A1 (en) | 2013-03-14 |
CN102917012A (zh) | 2013-02-06 |
US8799467B2 (en) | 2014-08-05 |
EP2754058A1 (en) | 2014-07-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102917012B (zh) | 执行存储与通信去重复的方法及设备 | |
US11303623B2 (en) | Authentication mechanism | |
EP3742323A1 (en) | Blockchain generating method, and related device and system | |
CN102884529B (zh) | 用于社交摘要的可适配布局 | |
US8996651B2 (en) | System and method for delivering media assets in a cloud environment | |
US20160191627A1 (en) | Method and apparatus for execution of applications in a cloud system | |
CN109522330A (zh) | 基于区块链的云平台数据处理方法、装置、设备及介质 | |
US20130067346A1 (en) | Content User Experience | |
CN109521956B (zh) | 一种基于区块链的云存储方法、装置、设备及存储介质 | |
US20140002504A1 (en) | Generation based update system | |
CN109522363A (zh) | 基于区块链的云平台同步方法、系统、设备及存储介质 | |
JP2017162506A (ja) | 対応するプライマリ・アプリケーションデータから導出される識別子に基づく補足データへのアクセス | |
CN106537386A (zh) | 识别用于数据写操作的文件 | |
JP2015501973A (ja) | コンテンツの近似性および関連性 | |
KR20170101416A (ko) | 크라우드 펀딩 시스템을 통해 엔터테인먼트 관련 펀딩 정보 및 컨설팅 정보를 제공하는 방법 | |
US20180248947A1 (en) | Metered Network Synchronization | |
US20140067577A1 (en) | Content Gift Techniques | |
US10051053B2 (en) | System and method for transferring and synchronizing content between electronic devices | |
US20150074073A1 (en) | Apparatus, system, and method for event-identified content exchange and management | |
EP3203375B1 (en) | Method and apparatus for deepening mirror image | |
CN112000816A (zh) | 数据处理方法和装置 | |
KR102160850B1 (ko) | 메시지 재송신 메커니즘을 위한 기술들 | |
KR102674102B1 (ko) | 비주얼 네트워크 서비스 처리 방법 및 장치 | |
CN109660610B (zh) | 一种数据处理方法、装置、设备及存储介质 | |
US20150081808A1 (en) | Email webclient automatic failover |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
ASS | Succession or assignment of patent right |
Owner name: MICROSOFT TECHNOLOGY LICENSING LLC Free format text: FORMER OWNER: MICROSOFT CORP. Effective date: 20150707 |
|
C41 | Transfer of patent application or patent right or utility model | ||
TA01 | Transfer of patent application right |
Effective date of registration: 20150707 Address after: Washington State Applicant after: Micro soft technique license Co., Ltd Address before: Washington State Applicant before: Microsoft Corp. |
|
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |