CN101390075A - 可靠、高效的对等存储 - Google Patents

可靠、高效的对等存储 Download PDF

Info

Publication number
CN101390075A
CN101390075A CNA2007800063314A CN200780006331A CN101390075A CN 101390075 A CN101390075 A CN 101390075A CN A2007800063314 A CNA2007800063314 A CN A2007800063314A CN 200780006331 A CN200780006331 A CN 200780006331A CN 101390075 A CN101390075 A CN 101390075A
Authority
CN
China
Prior art keywords
file
peer
coding
segments
reliability
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
CNA2007800063314A
Other languages
English (en)
Other versions
CN101390075B (zh
Inventor
J·李
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 CN101390075A publication Critical patent/CN101390075A/zh
Application granted granted Critical
Publication of CN101390075B publication Critical patent/CN101390075B/zh
Expired - Fee Related 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/18File system types
    • G06F16/182Distributed file systems
    • G06F16/1834Distributed file systems implemented based on peer-to-peer networks, e.g. gnutella
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions
    • G06F17/40Data acquisition and logging
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs

Abstract

一种使用根据分发的文件的大小改变用于编码的片段的数量的自适应擦除弹性编码(ERC)的自适应编码存储系统。自适应ERC可极大地提高P2P存储的效率和可靠性。还可实现P2P存储应用的多个过程。在一个实施例中,小的、动态数据文件被转向更可靠的对等体或甚至服务器,而大的及静态文件利用不可靠对等体的存储容量来存储。同样地,为了平衡的贡献和收益,对等体应当主存与其存储在P2P网络中相同数量的内容。结果,不可靠的对等体被允许分发较少的数据,而更可靠的对等体被允许分发较多的数据。同样地,较小的文件被分配较高的分发成本,而较大的文件被分配较低的分发成本。

Description

可靠、高效的对等存储
背景
在对等(P2P)应用中,当对等体加入P2P服务时携带网络带宽和/或硬盘驱动器存储资源。随着对P2P系统的需求增长,系统的容量也随之增长。这与客户机—服务器系统完全相反,在客户机—服务器系统中,服务器的容量是固定的,并且由客户机—服务器系统的提供方来支付。结果,运行P2P系统比运行客户机—服务器系统更经济,并且因为P2P系统是可伸缩的,所以它是优越的。
在P2P系统中,对等体不仅贡献带宽,还对服务其他对等体的存储空间做出贡献。由对等体贡献的整体存储空间形成了分布式存储云。数据可被存储到云中,并且可从中检索。P2P存储可用于大量的应用。分布式备份就是其中之一。对等体可将其自己的数据备份到P2P云中。当对等体发生故障时,数据可从云中还原。另一个P2P应用是分布式数据访问。因为客户机可从多个保持数据的对等体中同时检索数据,所以,P2P检索能够具有相比于从单个源中检索数据更高的吞吐量。另一个应用是点播电影观看。媒体服务器可抢先在P2P云中散播电影文件。当客户机正在观看该电影时,它可从P2P云和服务器处流传送该电影,因此减少服务器负载,减少在网络主干上的通信量并提高流电影的质量。
尽管在P2P网络中的对等体可像服务器那样运作,但是它们在一个重要的方面与商用web/数据库服务器不同:可靠性。因为对等体通常是用其多余的硬盘驱动器空间和空闲带宽来支持P2P应用的普通计算机,所以它远没有典型的服务器可靠。用户有时可选择关闭对等计算机或P2P应用程序。例如,大文件上传/下载的必要需求可使对等体极度缺乏用于P2P活动的必要带宽。对等计算机由于需要升级或修补软件/硬件,或由于病毒攻击可能是脱机的。对等体的计算机硬件和网络链接也固有地远没有为可靠性而设计的典型的服务器计算机和其商用网络链接可靠。然而,商用服务器/服务器群集是为“六个9”的可靠性(具有10-6的故障率,以该故障率,每年允许大约30秒的停机时间)而设计的,优良的消费者对等体可能只具有“二个九”的可靠性(10-2的故障率或每天大约15分钟的停机时间),并且对等体只具有50%(时间下降一半)或甚至10%(时间下降90%)的可靠性并非不常见。
例如P2P备份和数据检索等大多数P2P应用想要维持与服务器的等级(“六个9”的可靠性)相同的P2P存储可靠性等级。该挑战在于如何使用对等体的最少的带宽和存储资源来构建可靠、高效的P2P存储。
概述
提出了一种用于在对等(P2P)网络中高效且可靠地存储数据的自适应编码存储系统和方法。该自适应编码存储系统和方法基于存储和分发的文件大小来调整擦除弹性编码(ERC)的多个片段、ERC片段数。
该自适应编码存储系统的多个实施例利用各过程来提高P2P网络的效率和可靠性。例如,在一个实施例中,如果服务器组件支持是可用的,则将较小的、动态的数据转向更可靠的对等体或甚至服务器。同样地,在另一个实施例中,对于平衡的P2P网络,不可靠并且正在分发较小文件的对等体被允许分发较少的数据。
注意,虽然背景一节中所描述的现有的对等存储和分发系统中的上述限制可由根据本发明的自适应编码存储系统的一个具体实现来解决,但是该系统和过程决不限于只解决所述缺点中的任一个或所有的实现。相反,如将从以下描述中变得明显的,本系统和过程具有广泛得多的应用。
应当注意,提供本概述以便用简化形式介绍下面在详细描述中进一步描述的一些概念。本概述不旨在标识所要求保护的主题的关键特征或必要特征,也不旨在用于帮助确定所要求保护的主题的范围。
附图说明
参考以下描述、所附权利要求书以及附图,将更好地理解自适应编码存储系统的具体特征、方面、以及优点,附图中:
图1是描绘构成实现此处所描述的自适应编码存储系统和方法的示例性系统的通用计算设备的概括系统图。
图2示出了可用于此处所描述的自适应编码存储系统和方法的示例性对等(P2P)网络。
图3提供了示出实现期望的10-6的可靠性的信息存储对等体的数量的曲线图。
图4提供了示出对等体可靠性以及期望的重复率的曲线图。
图5提供了示出使用擦除弹性编码来实现期望的10-6的可靠性所必需的信息存储对等体的数量的曲线图。
图6提供了ERC片段数以及相关联的适于P2P网络中的信息存储的文件大小的曲线图。
图7提供了描绘在具有自适应ERC和固定ERC的P2P配置中的对等体之间的带宽使用的曲线图(在对等体可靠性=50%的情况下)。
图8提供了描绘在具有自适应ERC和固定ERC的P2P配置中的对等体之间的带宽使用的曲线图(在对等体可靠性=99%的情况下)。
图9描绘了自适应编码存储过程的一个实施例。
图10描绘了示出在P2P网络中如何利用自适应编码存储技术的示例性操作流程图。
图11描绘了实现优化P2P网络的存储效率的过程的自适应编码存储系统和过程的实施例。
图12描绘了实现优化P2P系统的存储效率的过程的自适应编码存储系统和方法的另一个实施例。
图13描绘了利用具有服务器支持的P2P备份的自适应编码存储系统和方法的实施例。
详细描述
在本自适应编码存储系统的优选实施例的以下描述中,对附图进行了参考,附图构成了实施例的一部分且在其中作为说明示出了可在其中实践自适应编码存储系统的具体实施例。可以理解,可以使用其它实施例并且可以做出结构上的改变而不背离本自适应编码存储系统的范围。
1.0 示例性操作环境
图1示出了可在其上实现本发明的合适的计算系统环境100的示例。计算系统环境100仅为合适的计算环境的一个示例,并非对本发明的使用范围或功能提出任何局限。也不应该把计算环境100解释为对示例性操作环境100中示出的任一组件或其组合有任何依赖性或要求。
本发明可用各种其它通用或专用计算系统环境或配置来操作。适用于本发明的公知的计算系统、环境和/或配置的示例包括,但不限于,个人计算机、服务器计算机、诸如蜂窝电话和PDA等手持式、膝上型或移动计算机或通信设备、多处理器系统、基于微处理器的系统、机顶盒、可编程消费电子产品、网络PC、小型机、大型计算机、包含上述系统或设备中的任一个的分布式计算环境等。
本发明可在诸如程序模块等由计算机执行的计算机可执行指令结合包括话筒阵列198的组件在内的硬件模块的一般上下文中描述。一般而言,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、组件、数据结构等。本发明也可以在其中任务由通过通信网络链接的远程处理设备执行的分布式计算环境中实现。在分布式计算环境中,程序模块可以位于包括存储器存储设备在内的本地和远程计算机存储介质中。参考图1,用于实现本发明的一个示例性系统包括计算机110形式的通用计算设备。
计算机110的组件可以包括,但不限于:处理单元120、系统存储器130和将包括系统存储器在内的各种系统组件耦合至处理单元120的系统总线121。系统总线121可以是若干种总线结构中的任一种,包括存储器总线或存储器控制器、外围总线以及使用各类总线体系结构中的任一种的局部总线。作为示例而非局限,这类体系结构包括工业标准体系结构(ISA)总线、微通道体系结构(MCA)总线、增强型ISA(EISA)总线、视频电子技术标准协会(VESA)局部总线、以及外围部件互连(PCI)总线(也称为小背板(Mezzanine)总线)。
计算机110通常包括各种计算机可读介质。计算机可读介质可以是可由计算机110访问的任何可用介质,且包括易失性和非易失性介质、可移动和不可移动介质。作为示例,而非限制,计算机可读介质可以包括计算机存储介质和通信介质。计算机存储介质包括以用于存储诸如计算机可读指令、数据结构、程序模块或其它数据这样的信息的任意方法或技术来实现的易失性和非易失性、可移动和不可移动介质。
计算机存储介质包括,但不限于,RAM、ROM、PROM、EPROM、EEPROM、闪存或其它存储器技术;CD-ROM、数字多功能盘(DVD)或其它光盘存储;磁带盒、磁带、磁盘存储或其它磁性存储设备;或能用于存储所需信息且可以由计算机100访问的任何其它介质。通信介质通常以诸如载波或其它传输机制等已调制数据信号来体现计算机可读指令、数据结构、程序模块或其它数据,且包含任何信息传递介质。术语“已调制数据信号”指的是这样一种信号,其一个或多个特征以在信号中编码信息的方式被设定或更改。作为示例而非限制,通信介质包括有线介质,诸如有线网络或直接线连接,以及无线介质,诸如声学、RF、红外线和其它无线介质。上述的任意组合应该包含在计算机可读介质的范围内。
系统存储器130包括易失性和/或非易失性存储器形式的计算机存储介质,如只读存储器(ROM)131和随机存取存储器(RAM)132。基本输入/输出系统133(BIOS)包含有助于诸如启动时在计算机110中元件之间传递信息的基本例程,它通常被存储在ROM 131中。RAM 132通常包含处理单元120可以立即访问和/或目前正在操作的数据和/或程序模块。作为示例而非局限,图1示出了操作系统134、应用程序135、其它程序模块136和程序数据137。
计算机110也可以包括其它可移动/不可移动、易失性/非易失性计算机存储介质。仅作为示例,图1示出了从不可移动、非易失性磁介质中读取或向其写入的硬盘驱动器141,从可移动、非易失性磁盘152中读取或向其写入的磁盘驱动器151,以及从诸如CD ROM或其它光学介质等可移动、非易失性光盘156中读取或向其写入的光盘驱动器155。可以在示例性操作环境中使用的其它可移动/不可移动、易失性/非易失性计算机存储介质包括,但不限于,盒式磁带、闪存卡、数字多功能盘、数字录像带、固态RAM、固态ROM等。硬盘驱动器141通常由不可移动存储器接口,诸如接口140连接至系统总线121,磁盘驱动器151和光盘驱动器155通常由可移动存储器接口,诸如接口150连接至系统总线121。
上文讨论并在图1中示出的驱动器及其关联的计算机存储介质为计算机110提供了计算机可读指令、数据结构、程序模块和其它数据的存储。例如,在图1中,硬盘驱动器141被示为存储操作系统144、应用程序145、其它程序模块146和程序数据147。注意,这些组件可以与操作系统134、应用程序135、其它程序模块136和程序数据137相同或不同。操作系统144、应用程序145、其它程序模块146和程序数据147在这里被标注了不同的标号是为了说明至少它们是不同的副本。用户可以通过输入设备,如键盘162和定点设备161(通常指鼠标、跟踪球或触摸板)向计算机110输入命令和信息。
其它输入设备(未示出)可包括操纵杆、游戏手柄、圆盘式卫星天线、扫描仪、无线电接收机、以及电视或广播视频接收机等等。这些和其它输入设备通常通过耦合至系统总线121的有线或无线用户输入接口160连接至处理单元120,但是也可以通过其它常规的接口和总线结构来连接,如并行端口、游戏端口、通用串行总线(USB)、IEEE 1394接口、蓝牙TM无线接口、IEEE 802.11无线接口等等。此外,计算机110还可包括语音或音频输入设备,诸如话筒或话筒阵列198、以及经由音频接口199连接的扬声器197或其它声音输出设备,音频接口同样包括常规的有线或无线接口,诸如并行、串行、USB、IEEE 1394、蓝牙TM等等。
监视器191或其它类型的显示设备也经由诸如视频接口190等接口连接到系统总线121。除监视器以外,计算机也可以包括其它外围输出设备,诸如打印机196,它可以通过输出外围接口195连接。
计算机110可使用至一个或多个远程计算机,诸如远程计算机180的逻辑连接在网络化环境中操作。远程计算机180可以是个人计算机、服务器、路由器、网络PC、对等设备或其它常见的网络节点,且通常包括上文相对于计算机110描述的许多或所有元件,尽管在图1中只示出存储器存储设备181。图1中所示的逻辑连接包括局域网(LAN)171和广域网(WAN)173,但也可以包括其它网络。这样的联网环境在办公室、企业范围计算机网络、内联网和因特网中是常见的。
当在LAN联网环境中使用时,计算机110通过网络接口或适配器170连接至LAN 171。当在WAN联网环境中使用时,计算机110通常包括调制解调器172或用于通过诸如因特网等WAN 173建立通信的其它装置。调制解调器172可以是内置或外置的,它可以通过用户输入接口160或其它合适的机制连接至系统总线121。在网络化环境中,相对于计算机110所描述的程序模块或其部分可以存储在远程存储器存储设备中。作为示例而非局限,图1示出远程应用程序185驻留在存储器设备181上。可以理解,示出的网络连接是示例性的,并且可以使用在计算机之间建立通信链路的其它手段。
一般而言,自适应编码存储系统在诸如图2所示的网络等的P2P网络中操作。对于特定的数据流会话,“服务器”200被定义为在P2P网络中最初发起数据或流媒体的节点;“客户机”(或接收者)210被定义为当前请求数据的节点;并且“服务对等体220”被定义为向客户机供应数据的完整或部分副本的节点。
一般而言,服务器200、客户机210以及服务对等体220都是连接到诸如因特网等的网络的最终用户节点。因为服务器200始终能够供应数据,所以服务器节点还担当服务对等体220。服务器节点200还能够执行不能由服务对等体220执行的管理功能,例如,维护可用的服务对等体列表、执行数字权限管理(DRM)功能等等。此外,如同传统的P2P方案一样,由于部署了越来越多的对等体节点220,因此此处所描述的自适应编码存储系统从提高的效率中获益。具体地,随着对等体节点220的数量的增长,数据服务器200上的负载将随之减少,由此变得以较少的代价运行,而在特定数据传输会话期间每个客户机节点210将能够接收好得多的数据质量。
此外,应当清楚,特定节点的角色可能改变。例如,一个特定节点可在一个特定数据传输中充当客户机210的角色,而在另一个会话中充当服务对等体220的角色。此外,特定节点能够同时充当客户机节点210和服务器200或服务对等体220两者的角色以同时发送一个或多个数据文件,或这些文件的一部分,并从一个或多个其他服务对等体接收其他数据。
在数据传输期间,客户机200首先定位保持所需数据中的某一些或全部的多个邻近的对等体220,并且然后从(可能包括服务器200的)多个对等体接收数据。结果,每个服务对等体220通过服务客户机210的一部分下载请求来减轻总上传负担而协助服务器200。结果,由于当有许多服务对等体220协助服务器200时有相当高的服务带宽可用,所以特别是在存在许多客户机的情况下,客户机210经常能够接收好得多的数据质量。
现在已讨论了示例性操作环境,本描述一节的其余部分将致力于描述实现自适应编码存储系统和过程的程序模块。
2.0 可靠、高效的对等存储
自适应编码存储系统提供自适应地确定是否使用ERC编码并且利用将用于给定文件大小的ERC编码的最优片段数以得到最优可靠性和效率的自适应擦除弹性编码(ERC)方案。用于文件的ERC编码的片段数将出于本讨论的目的被称为“ERC片段数”。以下各段提供对对等(P2P)存储效率和可靠性以及在P2P网络中对ERC的使用的讨论,以及对所使用的ERC片段数的讨论。然后讨论自适应编码存储系统和过程的各实施例。
2.1 P2P存储的可靠性:数据冗余
为具有不可靠部分的系统带来可靠性的特定解决方案是使用冗余。如果网络上的每个单独的对等体具有可靠性p,则要实现期望的可靠性p0,一个对等体可简单地将信息复制到n个对等体:
n=log(1-p0)/log(1-p),          (1)
其中n是保存信息的对等体的数量。在检索时间,客户机可挨个联系信息存储对等体。只要信息存储对等体中的一个上线,就能够可靠地检索信息。
尽管实现了可靠性,但是简单的复制策略并不是高效的。图3绘出了实现“六个9”可靠性所需的信息存储对等体的数量的曲线。对于50%的对等体可靠性,一个对等体需要将信息复制并存储到20个对等体。这导致需要20倍的带宽和存储空间来分发和存储这些信息。显然,牺牲了效率以交换信息可靠性。
2.2 P2P的擦除弹性编码
为了在仍维持相同的可靠性的同时提高效率,ERC可以是有用的工具。ERC将原始文件分成k个原始片段{xi},i=0,...,k-1,每个片段都是Galois域GF(q)上的一个向量,其中q是该域的阶数。例如正在编码64KB长的文件,如果使用q=216且k=16,则每个片段将会是4KB,且将由2K的字组成,且每个字都是GF(216)的一个元素。ERC然后从原始片段生成编码的片段。经ERC编码的片段是由以下运算形成的:
Figure A200780006331D00151
其中cj是编码的片段,Gi是k维生成向量,并且等式(2)是全部都在GF(q)上的矩阵乘法。在解码时间,对等体收集m个编码的片段,其中m是等于或略大于k的数字并且尝试解码k个原始片段。这等价于求解等式:
c 0 c 1 · · · c m - 1 = G 0 G 1 · · · G k - 1 x 0 x 1 · · · x k - 1 , - - - ( 3 )
如果由生成向量形成的矩阵具有满秩k,则可恢复原始消息。
有许多可用的ERC。特别感兴趣的一种是Reed-Solomon(RS)码。RS码使用结构化的生成向量,并且是最大可分距离(MDS)。结果,任何k个不同的编码的片段将能够解码原始片段。RS码的另一个优点是可通过生成向量的索引i来容易地标识和管理编码的片段,因此便于检测重复的RS码。在以下ERC的讨论中,假设使用RS码。然而,该自适应编码存储系统可用任何数量的传统ERC来实现。
2.3ERC:片段数量
通过在P2P存储中使用ERC,数据文件被分发给更多的对等体,但是每个对等体只需要存储是原始文件的1/k大小的一个编码的片段,导致总体减少了实现相同等级的可靠性所需的带宽和存储空间,并因此提高了效率。令n1为需要向其分发编码的片段以实现某一期望的可靠性等级的对等体数量。因为RS码是MDS码,所以保持k个不同的编码的片段的k个对等体将足以恢复原始文件。恰好有m个对等体可用的概率可用过二项式分布来计算:
p ( m , n 1 ) = n 1 m p m ( 1 - p ) n 1 - m . - - - ( 4 )
因此可如下从p、p0和k计算n1:
n 1 = arg min o { &Sigma; m < k o m p m ( 1 - p ) o - m < 1 - p 0 } . - - - ( 5 )
重复率r被定义为:
r=n1/k                      (6)
重复率r是良好的效率指示符,因为文件的r个副本需要被分发和存储到P2P云中。
图4示出了对于不同ERC片段数k实现“六个9”可靠性所期望的重复率。可观察到对ERC的使用极大地降低了所需的重复率。比较非ERC(k=1)和ERC片段数k=256,对于10%的对等体可靠性所需的重复率从r=132减少到r=13.1,对于50%的对等体可靠性所需的重复率从r=20减少到r=2.5,而对于99%的对等体可靠性所需的重复率从r=3减少到r=1.05。ERC可提高效率而不会牺牲可靠性。
还可观察到更大的ERC片段数进一步降低了重复率。对于50%的对等体可靠性,从k=8到16、32、64、128和256导致重复率从r=5.75减少到4.375、3.53、3.02、2.68和2.48。相应的效率提高分别是24%、19%、15%、11%和8%。这似乎建议应当使用大的ERC片段数来得到更到的效率。
然而,更大的ERC片段数意味着需要更多的对等体来存储和检索编码的片段。如图5所示,绘出了需要保持编码的片段以实现“六个9”的可靠性的对等体数量的曲线。再次对于50%对等体可靠性,从k=8到16、32、64、128和256将信息存储对等体的数量从n1=46增加到70、113、193、343和630。每次k的翻倍导致存储信息所需的对等体多出52%、61%、71%、78%、84%。k的翻倍也需要在信息检索期间将联系的对等体数量至少翻倍。
在大多数实际的P2P网络中,在对等体之间建立连接需要不平凡数量的开销。开销的一部分归结于检索正确的对等体身份并找到正确的路由路径(例如,通过分布式散列表(DHT))。开销的另一部分是由于在对等体之一或两者位于NAT之后的情况下调用某些网络地址翻译(NAT)算法的需求,例如,STUN(经NAT的简单UDP穿越)。假设在对等体之间建立连接的平均开销是overhead(在本示例中设置成16KB),则可计算存储s大小的文件所需的总网络带宽为:
store_bandwidth=s*r+n1*overhead              (7)
对于等式(7),可以意识到更大的ERC片段数并不始终导致最佳的效率。相反,对于小的文件,应当使用小ERC片段数或甚至非ERC。针对不同文件大小和ERC片段数计算了等式(7)中所需的总带宽,并绘出了图6所示的曲线。在不同的ERC片段数之间的边界是适于特定ERC片段数的最优文件大小范围。例如,图6的底部曲线示出了在其下应当使用非ERC,而在其上应当使用片段数k=2的ERC的文件大小边界。ò》,
Figure A200780006331D0017173303QIETU
有趣的观察结果是文件大小边界相对地对对等体可用性并不敏感,这极大简化了最优ERC片段参数的选择。一般而言,对于比约10KB小的文件,不应使用ERC。对于片段数k=2、4、6、8、16、32、128和256的ERC,最合适的文件大小范围分别约为10-33KB、33-100KB、100-310KB、310-950KB、950KB-2.9MB、2.9MB-8.9MB、8.9-26MB、>26MB。
2.4 自适应ERC模式
自适应编码存储系统和方法自适应地选择合适的ERC片段数以可靠地在P2P网络中高效地存储内容。通过使用图6中建立的文件边界曲线,该系统的一个实施例对于不同的文件大小选择使用非ERC,以及片段数k=2、4、6、8、16、32、64、128、256的ERC。图7和图8示出了自适应ERC方法与固定参数的ERC的比较,以及网络带宽使用中的区别,其中对等体可靠性分别为50%和99%。相比于使用k=1(非ERC)、8、32和256的固定的ERC片段数,对于50%的对等体可靠性,自适应ERC方法可以将效率平均提高61%、26%、25%和50%,而对于99%的对等体可靠性,平均提高50%、18%、29%和57%。效率的提高是显著的。
最一般而言,图9示出了自适应编码存储过程的一个实施例。如过程动作902所示,自适应编码存储系统计算对于不同片段数的最优文件大小边界。输入将要编码的给定文件大小的文件(过程动作904)。如过程动作906所示,做出关于输入文件大小是否对应于非擦除编码(k=1)的检查。如果输入文件大小不与ERC相对应,则不使用ERC来编码该文件(过程动作908)。如果该文件大小对应于ERC文件大小范围,则使用ERC编码和对应于输入文件的文件大小的片段数来编码该文件,该片段数是对于该文件大小的最优片段数(过程动作910)。
此处所描述的自适应ERC过程的主要应用是P2P备份和还原。对等体可将文件备份到网络中的其他对等体并然后在文件丢失的情况下(例如,文件在计算机崩溃中丢失)通过从网络中的对等体检索文件来还原这些文件。一般而言,图10示出了显示在P2P网络中如何利用自适应编码存储技术的示例性操作流程图。应当注意,图10中由断开的线或虚线所表示的任何框和框之间的互连表示此处所描述的自适应编码存储系统的替换实施例,并且以下描述的这些替换实施例中的任一个或全部可以结合贯穿本文所描述的其它替换实施例来使用。
具体地,如图10所示,在数据传输操作之前,诸如当期望将数据备份到网络中的对等体时,服务器200或对等体220编码1000将要传输到其他对等体以便存储的数据。自适应编码存储系统能够用多种传统编解码器中的任一个来运作,比如,MPEG 1/2/4、WMA、WMV等等。此外,在编码过程1000期间,服务器200或对等体220还生成数据头,以及包含数据结构的同伴文件(companion file)。
如上所述,在一个实施例中,一旦编码1000了数据,该编码的数据分组就被拆分1005成多个固定大小的数据单元。此外,如同编码的数据一样,数据头和数据结构也被拆分1005成多个与用来拆分编码的数据分组相同的固定大小的数据单元。将该信息拆分1005成固定长度的数据单元允许对等体在数据传输操作之前预分配存储器块,由此避免在数据传输过程期间的计算上昂贵的存储器分配运算。此外,对较小的数据单元的使用允许储存数据的客户机或对等体对由每个对等体消耗的确切的带宽数量进行更精细的控制以在数据传输操作期间满足客户机数据单元请求。
除了将编码的数据、数据头、以及数据结构拆分1005成更小的数据单元之外,如果利用擦除弹性编码,则还使用一额外的编码层以便在其中服务对等体固有地不可靠的典型P2P环境中提供增加的冗余。具体地,如上所述,在一个实施例中,如果确定擦除弹性编码适于数据文件,则数据单元进一步被分成多个数据块并且使用擦除弹性编码过程1010来编码文件。
对这一编码1010的使用保证一个或多个对等体具有重构特定数据单元所必需的数据块,同时简化了客户机标识哪些对等体包含必要数据的需求。此外,在一个实施例中,每个服务对等体220所使用的擦除弹性编码密钥由服务器200自动地分配给每个对等体。然而,在另一个实施例中,每个服务对等体220简单地随机选择擦除弹性编码。这些密钥然后在每个对等体220最初由客户机210联系时由该客户机来检索。
一旦最初已编码1000了数据文件,拆分1005成数据单元,并且可能进一步进行了擦除编码1010,则所得数据单元或数据块然后就被分发1015到各对等体220。该分发1015在将编码的数据块或分组简单地全部或部分提供给其中该数据块或分组被高速缓存或存储以备将来当希望检索该数据的客户机调用时进行数据传输的多个对等体的意义上可以是蓄意的。
一旦数据已被分发1015到服务对等体220,客户机210然后在其希望从存储中检索该数据的情况下已准备好开始对那些对等体的数据请求。此外,如上所述,服务器200也可出于将数据传输到客户机210的目的充当对等体220。
此时,客户机210通过首先检索可用的服务对等体220的列表来开始数据传输会话。该列表是直接从服务器200、从对等体220中的一个、或通过使用用于标识潜在服务对等体的传统的分布式散列表(DHT)方法来检索的。一旦客户机1010已检索了对等体列表,该客户机然后就连接到每个服务对等体220并且从每个对等体检索1025可用文件的列表。一旦客户机210已检索了每个对等体220的可用文件列表,该客户机然后就通过经由客户机和一个或多个对等体之间的网络连接向这些对等体请求对应于该信息的数据单元来检索1035将从这一个或多个对等体传输的数据的数据头和数据结构。
数据头一般包含描述数据的全局信息,例如,数据中的通道数量、每个通道的属性和特性(音频采样速率,视频分辨率/帧速率)、所使用的编解码器、媒体的作者/版权所有者等等。结果,在数据传输会话开始时对数据头的检索允许客户机220设置或初始化1040必要的工具以在数据传输会话期间接收到随后接收到的分组之前解码1065这些分组。
此外,在检索1035了特定数据的数据结构之后,客户机分析该数据结构并计算在数据传输过程期间将需要被请求的已传输数据的数据单元的数据单元ID 1045。客户机210然后向对等体220中的一个或多个挨个请求那些数据单元1050。
最后,一旦已经根据客户机210的请求1050检索了构成特定数据分组的所有数据单元,就将那些数据分组重新装配1055成原始数据分组。然后解码1060重新装配的数据分组并且可在客户机210上还原1065。
3.0 P2P存储:政策和设计策略
除了基于将在P2P网络中存储的文件大小来调整ERC片段数之外,还可提高效率。此处所描述的自适应编码存储系统的各实施例被设计成通过利用如下所述的某些策略来提高存储效率。可结合自适应编码存储系统或在任何P2P网络中利用这些策略。
3.1 P2P存储成本
在本节中,将在P2P网络中存储文件与直接在“六个9”可靠服务器中存储文件相比较。可观察到,P2P解决方案减少了服务器带宽和成本,但要求对等体花费更多的带宽以将文件分发到P2P存储中。对网络带宽的总体使用在P2P解决方案中增加了。客户机上传带宽的增加可被认为是P2P存储系统的成本。对于不同对等体可靠性和文件大小的成本以表格形式示于表1中。
表1 P2P中增加的带宽使用的成本。
可观察到,如果对等体可靠性很高且文件大小很大,则使用P2P存储的成本就很小。例如,将100MB的文件存储到具有99%可靠性的对等体仅导致9%的成本。然而,当对等体可靠性很低且文件大小很小时,该成本可能是相当大的。
3.2P2P存储政策
从表1中,可以导出以下使用P2P存储云的政策:
a)应当使用不可靠的对等体来存储大文件,而使用可靠的对等体来存储小文件。如果将大文件分配给不可靠的对等体,而将小文件分配给可靠的对等体,则对于P2P系统的成本将更少。
b)应当使用不可靠的对等体来存储静态文件,而使用可靠的对等体来存储动态文件。将那些不改变的文件称为静态的,而将那些一直改变的文件称为动态的。多个小静态文件可被捆绑成一个大静态文件并且存储在P2P存储云中。该同一策略对于动态文件并不有效,因为单个文件的改变需要更新整个组合的文件。
该政策的推论是如果使用P2P网络来存储应用程序的状态、对等体状态信息等等,则应当将信息转向网络中最可靠的对等体。如果限制包含应用程序状态的文件只被放置在高可靠性对等体中(本质上,高可靠性对等体将形成构成扩展的P2P网络的核心的子网),则可以极大地降低此重复率以及更新状态文件的成本,并且提高了效率。
c)不可靠的对等体应被允许分发较少的文件,而可靠的对等体应被允许分发较多的文件。
d)较小的文件应被分配较高的分发成本,而较大的文件应被分配较低的分发成本。
政策c)和d)是对于P2P备份和检索应用的,其中对等体可以将内容分发到P2P存储云中,并且为其他对等体存储内容。平衡的P2P存储网络应当令每个对等体平衡其贡献和收益。在先前的工作中已经指出,带宽是P2P存储应用中主要资源。令对等体的贡献是其为其他对等体接收并存储的编码片段的数量。令对等体的收益是其分发到P2P云中的内容的数量。考虑到低可靠性导致更多的冗余数据存储,应当惩罚不可靠的对等体以使其将被允许分发较少的文件,并且奖励可靠的对等体以使其将被允许分发较多的文件。这一政策在P2P经济中具有积极的收益,因为它鼓励用户保持P2P应用程序在线,因此提高了P2P网络的总体可靠性并降低了所需的重复率。
还可通过将高分发成本分配给小文件,从而要求对等体成比例地贡献更多,来惩罚小文件的分发;以及通过将低分发成本分配给大文件,从而令对等体成比例地贡献更少,来奖励大文件的分发。作为推论,P2P备份应用程序应被设计为最小化备份频率。可以考虑将多个改变捆绑成一大型文件,并且仅一次,例如每天午夜将该文件更新到P2P存储云中,而不是在其改变之后立即更新该文件。
图11示出了围绕上述政策设计的自适应编码存储系统和方法的一个实施例。如过程动作1102所示,确定在分布式或P2P网络中的每个对等体的可靠性。输入将要分发或存储的文件(过程动作1104)。评估该文件的大小(过程动作1106),并且基于等式(7)中的期望存储带宽将分发成本分配给该文件(过程动作1108)。如果该文件是大文件,则可分配到较高的分发成本。如果该文件是小文件,则可将较低的分发成本分配给该文件。基于文件的大小,自适应编码存储系统将选择具有适当可靠性的对等体来存储该文件(过程动作1110)。即,使用其可靠性低于给定阈值的对等体来存储和分发大文件,而使用其可靠性高于给定阈值的对等体来存储和分发小文件。
图12示出了围绕上述政策设计的自适应编码存储系统和方法的另一个实施例。如过程动作1202所示,确定在分布式或P2P网络中的每个对等体的可靠性。输入将要分发或存储的文件(过程动作1204)。将该文件与先前存储的同一文件相比较以确定该文件是静态的还是动态的(过程动作1206)。在第一次存入该文件时,假设该文件是动态的。如果观察到对该文件的频繁改变,则该文件仍被指定为动态的。如果观察到该文件长时间没有改变,则该文件被指定为静态的。将动态文件存储在高可靠性对等体中(过程动作1210)。(因此,首先,文件首先将被存储在服务器或高可靠性对等体中)。一旦观察到文件没有改变,并且变为静态的,则这些静态文件就将被重新分发,并存储在低可靠性对等体中。
应当注意,可以单独或组合地适用图11和12所示的各实施例以提高分布式或对等网络的总体效率和可靠性。
3.3具有服务器组件支持的P2P存储。
如果使用服务器组件作为对P2P网络的补充,则可对于大的和静态文件使用P2P存储,而对于小的、动态文件使用服务器。因为消耗大多数服务器资源的是大文件,所以P2P存储是对服务器的很好的补充。
如图13所示,自适应编码存储系统和过程的一个实施例利用了具有服务器支持的P2P备份。如图13所示,将网络中的动态文件备份到服务器(过程动作1302)。客户机和/或服务器然后可以自动地检测那些不再改变并正转变为静态文件的动态文件(过程动作1304、1306)。如过程动作1308所示,这些检测到的静态文件然后可一起被捆绑成一大文件,并用ERC分发到P2P存储云中(过程动作1310)。这有效地增加了存储在P2P云中的文件的大小。结合片段数的ERC,这可以提高效率。
可以单独或与图11和12所示的各实施例组合地使用图13所示的实施例以提高分布式或对等网络的总体效率和可靠性。还应注意,该实施例可在使用或不使用擦除弹性编码的两种情况下使用。
应当注意,可以按所需的任何组合使用上述替换实施例的任一个或全部以形成另外的混合实施例。尽管用对结构特征和/或方法动作专用的语言描述了本主题,但可以理解,所附权利要求书中定义的主题不必限于上述具体特征或动作。相反,上述具体特征和动作是作为实现权利要求的示例形式公开的。

Claims (20)

1.一种用于编码文件以便存储在分布式网络中的计算机实现的过程,包括以下过程动作:
计算对应于不同擦除弹性编码(ERC)片段数的最优文件大小范围,其中每个片段数都是对于相应的文件大小范围的最优片段数(902);
输入给定文件大小的文件(904);
如果所述文件大小小于对应于最小ERC片段数2的文件大小范围,则不使用擦除弹性编码来编码所述文件(906、908);
如果所述输入文件的文件大小对应于一文件大小范围,则使用擦除弹性编码和对应于所述输入文件的文件大小范围的最优片段数来编码所述文件。
2.如权利要求1所述的计算机实现的过程,其特征在于,还包括将所述编码的文件发送到分布式网络中的一个或多个对等体的过程动作。
3.如权利要求1所述的计算机实现的过程,其特征在于,还包括根据对等体可靠性和期望的文件内容可靠性来计算将向其存储所述编码的文件的对等体的数量。
4.如权利要求1所述的计算机实现的过程,其特征在于,计算对应于不同擦除弹性编码(ERC)片段数的最优文件大小范围包括以下过程动作:
按照适于特定ERC片段数的最优文件大小确定不同片段数之间的边界。
5.如权利要求1所述的计算机实现的过程,其特征在于,还包括以下过程动作:
获得等于或大于所述文件被拆分成以进行编码的片段数的所述文件的一组编码的文件片段;以及
如果所述文件是擦除弹性编码的,则用擦除弹性解码来解码所述编码的文件片段以获得所述编码的文件的解码版本;以及
如果所述文件不是擦除弹性编码的,则不用擦除弹性解码来解码所述编码的片段以获得所述编码的文件的解码版本。
6.如权利要求1所述的计算机实现的过程,其特征在于,在编码所述文件时所使用的擦除弹性编码是Reed Solomon编码。
7.如权利要求6所述的计算机实现的过程,其特征在于:
如果所述文件大小小于约10KB,则不使用擦除弹性编码;
如果所述文件大小约是10KB到33KB,则所述最优片段数是2;
如果所述文件大小约是33KB到100KB,则所述最优片段数是4;
如果所述文件大小约是100KB到310KB,则所述最优片段数是8;
如果所述文件大小约是310KB到950KB,则所述最优片段数是16;
如果所述文件大小约是950KB到2.9MB,则所述最优片段数是32;
如果所述文件大小约是2.9MB到8.9MB,则所述最优片段数是64;
如果所述文件大小约是8.9MB到26MB,则所述最优片段数是128;以及
如果所述文件大小大于约26MB,则所述最优片段数是256。
8.一种具有用于执行如权利要求1所述的过程的计算机可执行指令的计算机可读介质。
9.一种用于提高对等网络的存储可靠性和效率的系统,包括:
通用计算设备;
包括可由所述通用计算设备执行的程序模块的计算机程序,其中所述计算设备可由所述计算机程序的程序模块来引导以便:
确定用于用擦除弹性编码来编码给定大小的文件的最优片段数(1010);
如果所述用于用擦除弹性编码来编码文件的最优片段数是1,则不用擦除弹性编码来编码所述文件(1010);以及
如果所述最优片段数大于1,则通过将所述文件分成最优数量的片段并用擦除弹性编码编码所述文件(1010)来编码所述文件。
10.如权利要求9所述的系统,其特征在于,还包括根据对等体可靠性和期望的文件内容可靠性来计算将向其存储所述编码的文件的对等体的数量的程序模块。
11.如权利要求10所述的系统,其特征在于,还包括将用擦除弹性编码编码的文件分发到网络上的一个或多个对等体的程序模块。
12.如权利要求11所述的系统,其特征在于,所述分发文件的程序模块包括用于执行以下动作的子模块:
确定所述分布式网络中的每个对等体的可靠性;
确定所述文件的大小;
以及使用按照文件大小所确定的具有适当可靠性的一个或多个对等体来分发所述文件。
13.如权利要求12所述的系统,其特征在于,所述分发文件的程序模块包括用于执行以下动作的子模块:
如果所述文件是大文件,则使用其可靠性低于给定阀值的对等体来分发该大文件;以及
如果所述文件不是大文件,则使用其可靠性高于给定阀值的对等体来分发该文件。
14.如权利要求11所述的系统,其特征在于,所述分发文件的程序模块包括用于执行以下动作的子模块:
确定所述分布式网络中的每个对等体的可靠性;
确定所述文件是否是静态的;
如果所述文件是静态的,则使用其可靠性低于给定阀值的对等体来分发该文件;以及
如果所述文件不是静态的,则使用其可靠性高于给定阀值的对等体来分发该文件。
15.如权利要求11所述的系统,其特征在于,所述分发文件的程序模块包括用于执行以下动作的子模块:
确定所述分布式网络中的每个对等体的可靠性;
监视所述文件的改变;
首先将所述文件分发到较可靠的对等体;
如果所述文件被观察到没有改变,则将所述文件重新分发到较不可靠的对等体。
16.如权利要求9所述的系统,其特征在于,还包括使用服务器来提高所述分布式网络的效率的程序模块,所述程序模块还包括用于执行以下动作的子模块:
将所述分布式网络中的所有动态文件备份到所述服务器;
周期性地令所述分布式网络中的对等体和服务器检查备份到所述服务器的动态文件是否已经改变;
如果所述动态文件还没有改变,则将这些文件指定为静态的并且将它们一起捆绑成一大文件;以及
用擦除弹性编码将所述大文件分发到所述分布式网络。
17.如权利要求9所述的系统,其特征在于,所述确定用于用擦除弹性编码来编码给定大小的文件的最优片段数的程序模块包括用于执行以下动作的子模块:
确定对应于每个可能的擦除弹性编码片段数的最优文件大小范围,其中每个片段数是对应于相应范围的最优片段数;
确定输入文件的大小落入哪一文件大小范围;以及
使用对应于所述输入文件的大小所落入的最优文件大小范围的片段数作为所述最优片段数。
18.一种用于解码存储在分布式网络中的编码的文件的计算机实现的过程,包括以下过程动作:
检索等于或大于用于编码所述文件的片段的数量的该编码的文件的一组片段,其中所述文件是用对应于给定文件大小的最优片段数来擦除弹性编码的;以及
用擦除弹性解码来解码所述编码的片段以获得所述编码的文件的解码版本。
19.如权利要求18所述的计算机实现的过程,其特征在于,所述编码的片段中的至少某一些是从所述分布式网络中的一个或多个对等体的存储介质中检索的。
20.如权利要求18所述的计算机实现的过程,其特征在于,所述编码的片段中的至少某一些是从所述分布式网络上的服务器的存储介质中检索的。
CN200780006331.4A 2006-02-22 2007-02-13 可靠、高效的对等存储 Expired - Fee Related CN101390075B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US11/359,276 2006-02-22
US11/359,276 US9047310B2 (en) 2006-02-22 2006-02-22 Reliable, efficient peer-to-peer storage
PCT/US2007/004048 WO2007100509A1 (en) 2006-02-22 2007-02-13 Reliable, efficient peer-to-peer storage

Publications (2)

Publication Number Publication Date
CN101390075A true CN101390075A (zh) 2009-03-18
CN101390075B CN101390075B (zh) 2015-09-02

Family

ID=38459372

Family Applications (1)

Application Number Title Priority Date Filing Date
CN200780006331.4A Expired - Fee Related CN101390075B (zh) 2006-02-22 2007-02-13 可靠、高效的对等存储

Country Status (11)

Country Link
US (1) US9047310B2 (zh)
EP (1) EP1999615B1 (zh)
JP (1) JP5214472B2 (zh)
KR (1) KR101432314B1 (zh)
CN (1) CN101390075B (zh)
AU (1) AU2007221340A1 (zh)
BR (1) BRPI0708199A2 (zh)
CA (1) CA2642158C (zh)
ES (1) ES2671700T3 (zh)
RU (1) RU2435206C2 (zh)
WO (1) WO2007100509A1 (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9442673B2 (en) 2011-11-30 2016-09-13 Huawei Technologies Co., Ltd. Method and apparatus for storing data using a data mapping algorithm
CN111464600A (zh) * 2020-03-20 2020-07-28 平安国际智慧城市科技股份有限公司 点对点存储网络建立方法、装置、介质及电子设备

Families Citing this family (111)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7512673B2 (en) * 2001-01-11 2009-03-31 Attune Systems, Inc. Rule based aggregation of files and transactions in a switched file system
WO2002056181A2 (en) 2001-01-11 2002-07-18 Force Communications Inc Z File switch and switched file system
US20040133606A1 (en) * 2003-01-02 2004-07-08 Z-Force Communications, Inc. Directory aggregation for files distributed over a plurality of servers in a switched file system
US7509322B2 (en) 2001-01-11 2009-03-24 F5 Networks, Inc. Aggregated lock management for locking aggregated files in a switched file system
US8195760B2 (en) 2001-01-11 2012-06-05 F5 Networks, Inc. File aggregation in a switched file system
US8239354B2 (en) 2005-03-03 2012-08-07 F5 Networks, Inc. System and method for managing small-size files in an aggregated file system
US8458754B2 (en) 2001-01-22 2013-06-04 Sony Computer Entertainment Inc. Method and system for providing instant start multimedia content
US7711847B2 (en) 2002-04-26 2010-05-04 Sony Computer Entertainment America Inc. Managing users in a multi-user network game environment
US20030217135A1 (en) * 2002-05-17 2003-11-20 Masayuki Chatani Dynamic player management
US8560707B2 (en) * 2007-10-05 2013-10-15 Sony Computer Entertainment America Llc Seamless host migration based on NAT type
US8224985B2 (en) 2005-10-04 2012-07-17 Sony Computer Entertainment Inc. Peer-to-peer communication traversing symmetric network address translators
US8060626B2 (en) 2008-09-22 2011-11-15 Sony Computer Entertainment America Llc. Method for host selection based on discovered NAT type
US8131802B2 (en) 2007-10-05 2012-03-06 Sony Computer Entertainment America Llc Systems and methods for seamless host migration
US7885970B2 (en) 2005-01-20 2011-02-08 F5 Networks, Inc. Scalable system for partitioning and accessing metadata over multiple servers
US7958347B1 (en) 2005-02-04 2011-06-07 F5 Networks, Inc. Methods and apparatus for implementing authentication
US7783600B1 (en) * 2006-02-27 2010-08-24 Symantec Operating Corporation Redundancy management service for peer-to-peer networks
US8417746B1 (en) 2006-04-03 2013-04-09 F5 Networks, Inc. File system management with enhanced searchability
US7797670B2 (en) * 2006-04-14 2010-09-14 Apple Inc. Mirrored file system
US20090182955A1 (en) * 2006-09-08 2009-07-16 Rao Cherukuri Application configuration across client devices of a local system
US7814146B2 (en) * 2006-12-05 2010-10-12 International Business Machines Corporation File fragment trading based on rarity values in a segmented file sharing system
US8131673B2 (en) * 2006-12-05 2012-03-06 International Business Machines Corporation Background file sharing in a segmented peer-to-peer file sharing network
US8775562B2 (en) * 2006-12-05 2014-07-08 International Business Machines Corporation Mapping file fragments to file information and tagging in a segmented file sharing system
US8140625B2 (en) * 2007-02-20 2012-03-20 Nec Laboratories America, Inc. Method for operating a fixed prefix peer to peer network
US8090792B2 (en) * 2007-03-08 2012-01-03 Nec Laboratories America, Inc. Method and system for a self managing and scalable grid storage
US20090077097A1 (en) * 2007-04-16 2009-03-19 Attune Systems, Inc. File Aggregation in a Switched File System
WO2008147973A2 (en) 2007-05-25 2008-12-04 Attune Systems, Inc. Remote file virtualization in a switched file system
US7995478B2 (en) 2007-05-30 2011-08-09 Sony Computer Entertainment Inc. Network communication with path MTU size discovery
US7933273B2 (en) 2007-07-27 2011-04-26 Sony Computer Entertainment Inc. Cooperative NAT behavior discovery
US9483405B2 (en) 2007-09-20 2016-11-01 Sony Interactive Entertainment Inc. Simplified run-time program translation for emulating complex processor pipelines
US8180747B2 (en) 2007-11-12 2012-05-15 F5 Networks, Inc. Load sharing cluster file systems
US8548953B2 (en) 2007-11-12 2013-10-01 F5 Networks, Inc. File deduplication using storage tiers
US8117244B2 (en) * 2007-11-12 2012-02-14 F5 Networks, Inc. Non-disruptive file migration
US7908393B2 (en) 2007-12-04 2011-03-15 Sony Computer Entertainment Inc. Network bandwidth detection, distribution and traffic prioritization
US8352785B1 (en) 2007-12-13 2013-01-08 F5 Networks, Inc. Methods for generating a unified virtual snapshot and systems thereof
US7752168B2 (en) * 2008-02-07 2010-07-06 Novell, Inc. Method for coordinating peer-to-peer replicated backup and versioning based on usage metrics acquired from peer client
US7856506B2 (en) 2008-03-05 2010-12-21 Sony Computer Entertainment Inc. Traversal of symmetric network address translator for multiple simultaneous connections
EP2139205B1 (en) * 2008-06-27 2012-10-31 Alcatel Lucent Method of redundant data storage
US8549582B1 (en) 2008-07-11 2013-10-01 F5 Networks, Inc. Methods for handling a multi-protocol content name and systems thereof
US7992037B2 (en) * 2008-09-11 2011-08-02 Nec Laboratories America, Inc. Scalable secondary storage systems and methods
US8335889B2 (en) * 2008-09-11 2012-12-18 Nec Laboratories America, Inc. Content addressable storage systems and methods employing searchable blocks
US20100088520A1 (en) * 2008-10-02 2010-04-08 Microsoft Corporation Protocol for determining availability of peers in a peer-to-peer storage system
US8051205B2 (en) * 2008-10-13 2011-11-01 Applied Micro Circuits Corporation Peer-to-peer distributed storage
US20100174968A1 (en) * 2009-01-02 2010-07-08 Microsoft Corporation Heirarchical erasure coding
US20100257403A1 (en) * 2009-04-03 2010-10-07 Microsoft Corporation Restoration of a system from a set of full and partial delta system snapshots across a distributed system
US8769055B2 (en) 2009-04-24 2014-07-01 Microsoft Corporation Distributed backup and versioning
US8935366B2 (en) * 2009-04-24 2015-01-13 Microsoft Corporation Hybrid distributed and cloud backup architecture
US8560639B2 (en) * 2009-04-24 2013-10-15 Microsoft Corporation Dynamic placement of replica data
US8769049B2 (en) 2009-04-24 2014-07-01 Microsoft Corporation Intelligent tiers of backup data
US8370294B2 (en) * 2009-05-06 2013-02-05 Microsoft Corporation File stashing for storage media
US8280958B2 (en) * 2009-07-13 2012-10-02 International Business Machines Corporation List passing in a background file sharing network
US8204791B2 (en) * 2009-07-13 2012-06-19 International Business Machines Corporation File fragment pricing in a segmented file sharing network
US8458287B2 (en) 2009-07-31 2013-06-04 Microsoft Corporation Erasure coded storage aggregation in data centers
US10721269B1 (en) 2009-11-06 2020-07-21 F5 Networks, Inc. Methods and system for returning requests with javascript for clients before passing a request to a server
US8126987B2 (en) 2009-11-16 2012-02-28 Sony Computer Entertainment Inc. Mediation of content-related services
US8204860B1 (en) 2010-02-09 2012-06-19 F5 Networks, Inc. Methods and systems for snapshot reconstitution
US9195500B1 (en) 2010-02-09 2015-11-24 F5 Networks, Inc. Methods for seamless storage importing and devices thereof
US8631269B2 (en) * 2010-05-21 2014-01-14 Indian Institute Of Science Methods and system for replacing a failed node in a distributed storage network
US8433759B2 (en) 2010-05-24 2013-04-30 Sony Computer Entertainment America Llc Direction-conscious information sharing
US8347100B1 (en) 2010-07-14 2013-01-01 F5 Networks, Inc. Methods for DNSSEC proxying and deployment amelioration and systems thereof
US8555323B2 (en) * 2010-09-28 2013-10-08 The Chinese University Of Hong Kong Methods for replicating media contents and P2P VoD systems
US9286298B1 (en) 2010-10-14 2016-03-15 F5 Networks, Inc. Methods for enhancing management of backup data sets and devices thereof
US8504535B1 (en) * 2010-12-20 2013-08-06 Amazon Technologies, Inc. Erasure coding and redundant replication
US8396836B1 (en) 2011-06-30 2013-03-12 F5 Networks, Inc. System for mitigating file virtualization storage import latency
US9432454B2 (en) * 2011-08-29 2016-08-30 At&T Intellectual Property I, L.P. Cloud-to-cloud peering
US9141679B2 (en) 2011-08-31 2015-09-22 Microsoft Technology Licensing, Llc Cloud data storage using redundant encoding
US8463850B1 (en) 2011-10-26 2013-06-11 F5 Networks, Inc. System and method of algorithmically generating a server side transaction identifier
US9160697B2 (en) 2012-01-01 2015-10-13 Qualcomm Incorporated Data delivery optimization
US9020912B1 (en) 2012-02-20 2015-04-28 F5 Networks, Inc. Methods for accessing data in a compressed file system and devices thereof
US10454997B2 (en) * 2012-09-07 2019-10-22 Avigilon Corporation Distributed physical security system
US9519501B1 (en) 2012-09-30 2016-12-13 F5 Networks, Inc. Hardware assisted flow acceleration and L2 SMAC management in a heterogeneous distributed multi-tenant virtualized clustered system
US10391387B2 (en) 2012-12-14 2019-08-27 Microsoft Technology Licensing, Llc Presenting digital content item with tiered functionality
US9716749B2 (en) * 2012-12-14 2017-07-25 Microsoft Technology Licensing, Llc Centralized management of a P2P network
US9413846B2 (en) 2012-12-14 2016-08-09 Microsoft Technology Licensing, Llc Content-acquisition source selection and management
US9727268B2 (en) * 2013-01-08 2017-08-08 Lyve Minds, Inc. Management of storage in a storage network
US10375155B1 (en) 2013-02-19 2019-08-06 F5 Networks, Inc. System and method for achieving hardware acceleration for asymmetric flow connections
US9554418B1 (en) 2013-02-28 2017-01-24 F5 Networks, Inc. Device for topology hiding of a visited network
US9600365B2 (en) 2013-04-16 2017-03-21 Microsoft Technology Licensing, Llc Local erasure codes for data storage
CN104185216B (zh) * 2013-05-28 2018-09-04 腾讯科技(深圳)有限公司 一种文件的传输方法和装置
KR102238590B1 (ko) 2013-11-29 2021-04-09 삼성전자주식회사 데이터 패킷 전송의 인증 및 검증 방법, 및 상기 방법을 수행하는 장치들
US9678678B2 (en) 2013-12-20 2017-06-13 Lyve Minds, Inc. Storage network data retrieval
US20150324088A1 (en) * 2014-05-09 2015-11-12 Lyve Minds, Inc. Thumbnail image creation
US9753807B1 (en) 2014-06-17 2017-09-05 Amazon Technologies, Inc. Generation and verification of erasure encoded fragments
US10853311B1 (en) 2014-07-03 2020-12-01 Pure Storage, Inc. Administration through files in a storage system
US11838851B1 (en) 2014-07-15 2023-12-05 F5, Inc. Methods for managing L7 traffic classification and devices thereof
US10182013B1 (en) 2014-12-01 2019-01-15 F5 Networks, Inc. Methods for managing progressive image delivery and devices thereof
US9882906B2 (en) 2014-12-12 2018-01-30 International Business Machines Corporation Recommendation schema for storing data in a shared data storage network
US9800659B2 (en) 2015-02-02 2017-10-24 International Business Machines Corporation Enterprise peer-to-peer storage and method of managing peer network storage
US11895138B1 (en) 2015-02-02 2024-02-06 F5, Inc. Methods for improving web scanner accuracy and devices thereof
US10013682B2 (en) 2015-02-13 2018-07-03 International Business Machines Corporation Storage and recovery of digital data based on social network
US10834065B1 (en) 2015-03-31 2020-11-10 F5 Networks, Inc. Methods for SSL protected NTLM re-authentication and devices thereof
RU2605674C2 (ru) * 2015-05-29 2016-12-27 Сиа "Квик Ресто" Система автоматизации предприятий сферы торговли, общественного питания и услуг
US10187083B2 (en) 2015-06-26 2019-01-22 Microsoft Technology Licensing, Llc Flexible erasure coding with enhanced local protection group structures
US10404698B1 (en) 2016-01-15 2019-09-03 F5 Networks, Inc. Methods for adaptive organization of web application access points in webtops and devices thereof
US10797888B1 (en) 2016-01-20 2020-10-06 F5 Networks, Inc. Methods for secured SCEP enrollment for client devices and devices thereof
US10691557B1 (en) * 2016-06-24 2020-06-23 EMC IP Holding Company LLC Backup file recovery from multiple data sources
US10412198B1 (en) 2016-10-27 2019-09-10 F5 Networks, Inc. Methods for improved transmission control protocol (TCP) performance visibility and devices thereof
CN107018125B (zh) 2017-02-17 2019-08-09 阿里巴巴集团控股有限公司 一种区块链系统、数据存储方法及装置
US10191678B1 (en) * 2017-04-27 2019-01-29 EMC IP Holding Company LLC System and method for data re-protection with erasure coding
KR101907786B1 (ko) 2017-04-28 2018-10-12 한국과학기술원 캐시 메모리를 이용한 다수의 보조 노드 무선 통신에서 노드간 협력을 통해 사용자의 체감 효과를 향상시키는 분산 저장 방법 및 장치
US10567492B1 (en) 2017-05-11 2020-02-18 F5 Networks, Inc. Methods for load balancing in a federated identity environment and devices thereof
US10579284B2 (en) * 2017-06-02 2020-03-03 International Business Machines Corporation Filesystem enhancements for unified file and object access in an object storage cloud
KR102015188B1 (ko) * 2017-12-07 2019-08-27 한국과학기술원 제한된 메모리를 갖는 보조 노드에서 확률적 파일 최적 복구 방법, 그리고 파일 분산 저장 방법 및 장치
US11223689B1 (en) 2018-01-05 2022-01-11 F5 Networks, Inc. Methods for multipath transmission control protocol (MPTCP) based session migration and devices thereof
US10833943B1 (en) 2018-03-01 2020-11-10 F5 Networks, Inc. Methods for service chaining and devices thereof
US10765952B2 (en) 2018-09-21 2020-09-08 Sony Interactive Entertainment LLC System-level multiplayer matchmaking
US10695671B2 (en) 2018-09-28 2020-06-30 Sony Interactive Entertainment LLC Establishing and managing multiplayer sessions
US10911337B1 (en) * 2018-10-10 2021-02-02 Benjamin Thaddeus De Kosnik Network activity monitoring service
EP3932003A4 (en) * 2019-03-01 2022-11-30 SingularDTV GmbH DISTRIBUTED DIGITAL CONTENT DISTRIBUTION SYSTEM AND PROCEDURES USING BLOCKCHAINS AND ENCRYPTED PEER-TO-PEER NETWORK
CN114221767A (zh) * 2021-11-02 2022-03-22 北京中合谷投资有限公司 一种分布式网络的文件监控方法
US11599856B1 (en) * 2022-01-24 2023-03-07 My Job Matcher, Inc. Apparatuses and methods for parsing and comparing video resume duplications
US11936699B2 (en) 2022-06-03 2024-03-19 Micro Focus Llc Optimal usage of content storage in a managed network

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6308295B1 (en) * 1996-10-08 2001-10-23 Arizona Board Of Regents Parallel spectral reed-solomon encoder and decoder
US5987479A (en) 1997-09-24 1999-11-16 Sony Corporation, Inc. Large block allocation for disk-based file systems
US20030015423A1 (en) 1999-03-04 2003-01-23 Lagreca Alfred J. Method and apparatus for calibrating a pH/ISE meter
US7412462B2 (en) * 2000-02-18 2008-08-12 Burnside Acquisition, Llc Data repository and method for promoting network storage of data
US7529834B1 (en) * 2000-06-02 2009-05-05 Hewlett-Packard Development Company, L.P. Method and system for cooperatively backing up data on computers in a network
WO2002076003A2 (en) * 2001-03-19 2002-09-26 Imesh Ltd. System and method for peer-to-peer file exchange mechanism from multiple sources
WO2002086761A1 (fr) * 2001-04-18 2002-10-31 Satoshi Omori Procede et appareil d'enregistrement de donnees sequentielles de substances biologiques
US7243103B2 (en) * 2002-02-14 2007-07-10 The Escher Group, Ltd. Peer to peer enterprise storage system with lexical recovery sub-system
US20030158958A1 (en) * 2002-02-20 2003-08-21 Koninklijke Philips Electronics N.V. Distributed storage network architecture using user devices
JP2004127168A (ja) 2002-10-07 2004-04-22 Sony Corp 通信処理装置、および通信処理方法、並びにコンピュータ・プログラム
EP1728373B1 (en) * 2004-03-22 2018-01-03 Codemate A/S Distribution method, preferably applied in a streaming system
US7546342B2 (en) 2004-05-14 2009-06-09 Microsoft Corporation Distributed hosting of web content using partial replication
US20060069800A1 (en) * 2004-09-03 2006-03-30 Microsoft Corporation System and method for erasure coding of streaming media
US7984018B2 (en) * 2005-04-18 2011-07-19 Microsoft Corporation Efficient point-to-multipoint data reconciliation
US20070177739A1 (en) * 2006-01-27 2007-08-02 Nec Laboratories America, Inc. Method and Apparatus for Distributed Data Replication

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9442673B2 (en) 2011-11-30 2016-09-13 Huawei Technologies Co., Ltd. Method and apparatus for storing data using a data mapping algorithm
CN111464600A (zh) * 2020-03-20 2020-07-28 平安国际智慧城市科技股份有限公司 点对点存储网络建立方法、装置、介质及电子设备
CN111464600B (zh) * 2020-03-20 2023-04-07 深圳赛安特技术服务有限公司 点对点存储网络建立方法、装置、介质及电子设备

Also Published As

Publication number Publication date
ES2671700T3 (es) 2018-06-08
JP2009527856A (ja) 2009-07-30
CA2642158C (en) 2015-01-27
US9047310B2 (en) 2015-06-02
WO2007100509A1 (en) 2007-09-07
EP1999615B1 (en) 2018-03-28
EP1999615A1 (en) 2008-12-10
BRPI0708199A2 (pt) 2011-05-17
RU2435206C2 (ru) 2011-11-27
CA2642158A1 (en) 2007-09-07
KR20080106187A (ko) 2008-12-04
AU2007221340A1 (en) 2007-09-07
KR101432314B1 (ko) 2014-08-20
EP1999615A4 (en) 2013-03-06
CN101390075B (zh) 2015-09-02
RU2008134366A (ru) 2010-02-27
US20070208748A1 (en) 2007-09-06
JP5214472B2 (ja) 2013-06-19

Similar Documents

Publication Publication Date Title
CN101390075B (zh) 可靠、高效的对等存储
CN1681257B (zh) 用于在对等网络中进行路由的方法
US10073658B2 (en) Optimized caching of slices by a DS processing unit
US9817701B2 (en) Threshold computing in a distributed computing system
US11704195B1 (en) Pre-positioning target content in a storage network
US9823845B2 (en) Adaptive dispersed storage network (DSN) and system
US10592335B2 (en) Using data object copies to improve the performance of a distributed storage network
US10365969B2 (en) Multiple wireless communication systems stream slices based on geography
JP6975228B2 (ja) 標準及び非標準分散ストレージ・ネットワーク・データ・アクセスの方法およびコンピュータ可読メモリ
US10423490B2 (en) Read-source requests to support bundled writes in a distributed storage system
US10805042B2 (en) Creating transmission data slices for use in a dispersed storage network
US20170357666A1 (en) Implementing queues (fifo) and stacks (filo) on top dispersed storage
US11113009B1 (en) Computing device facilitating prioritization of task execution within a distributed storage network (DSN)
US10956091B2 (en) Expanding a dispersed storage network (DSN)
US10503592B2 (en) Overcoming bottlenecks in partial and traditional rebuild operations
US20190171375A1 (en) Adjusting optimistic writes in a dispersed storage network
US20190191191A1 (en) Hybrid techniques for content distribution with edge devices

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: 20150805

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

Effective date of registration: 20150805

Address after: Washington State

Applicant after: MICROSOFT TECHNOLOGY LICENSING, LLC

Address before: Washington State

Applicant before: Microsoft Corp.

C14 Grant of patent or utility model
GR01 Patent grant
CF01 Termination of patent right due to non-payment of annual fee
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20150902

Termination date: 20220213