CN103593384A - 以目的地分析和数据去重实现数据传输优化的方法和系统 - Google Patents
以目的地分析和数据去重实现数据传输优化的方法和系统 Download PDFInfo
- Publication number
- CN103593384A CN103593384A CN201310351353.1A CN201310351353A CN103593384A CN 103593384 A CN103593384 A CN 103593384A CN 201310351353 A CN201310351353 A CN 201310351353A CN 103593384 A CN103593384 A CN 103593384A
- Authority
- CN
- China
- Prior art keywords
- node
- file
- data
- nodes
- requested date
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/17—Details of further file system functions
- G06F16/174—Redundancy elimination performed by the file system
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/11—File system administration, e.g. details of archiving or snapshots
- G06F16/113—Details of archiving
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/18—File system types
- G06F16/182—Distributed file systems
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1095—Replication or mirroring of data, e.g. scheduling or transport for data synchronisation between network nodes
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/56—Provisioning of proxy services
- H04L67/565—Conversion or adaptation of application format or content
- H04L67/5651—Reducing the amount or size of exchanged application data
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
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)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Information Transfer Between Computers (AREA)
Abstract
本发明涉及一种以目的地分析和数据去重实现数据传输优化的方法和系统。提供了用于在从源节点到目的地节点且通过至少两个中间节点的节点链上传输被请求数据的方法和系统。所述方法包括:在文件系统级别,在所述至少两个中间节点中的每个节点处,标识先前发送到或接收自所述节点链中的后续节点的与被请求数据的至少一部分匹配的在先数据;当所述在先数据与被请求数据的所述至少一部分匹配时,将指向所述在先数据的至少一个指针和重构方案传输到所述后续节点,所述重构方案用于至少基于所述至少一个指针而在所述后续节点处重构所述被请求数据;以及将所述被请求数据的先前未发送到所述后续节点或未由所述后续节点接收的其它部分传输到所述后续节点。
Description
技术领域
本发明一般地涉及数据传输,具体地说,涉及通过目的地分析和数据去重实现数据传输优化。
背景技术
跨慢速或拥挤的连接传输大量数据是一个普遍的难题。如果数据传输要求的增长超过带宽的增长,则此难题将继续存在或甚至更糟。
发明内容
根据本发明的一个方面,提供一种用于在从源节点到目的地节点且通过至少两个中间节点的节点链上传输被请求数据的方法。所述方法包括在文件系统级别,在所述至少两个中间节点中的每个节点处,标识先前发送到所述节点链中的后续节点或先前从所述节点链中的后续节点接收的与所述被请求数据的至少一部分匹配的在先数据。所述方法还包括当所述在先数据与所述被请求数据的所述至少一部分匹配时,将指向所述在先数据的至少一个指针和重构方案(recipe)传输到所述后续节点,所述重构方案用于至少基于所述至少一个指针而在所述后续节点处重构所述被请求数据。所述方法还包括将所述被请求数据的先前未发送到所述后续节点或未由所述后续节点接收的其它部分传输到所述后续节点。
根据本发明的另一个方面,提供一种用于在从源节点到目的地节点且通过至少两个中间节点的节点链上传输被请求数据的系统。所述系统包括匹配数据部分标识器,其用于在文件系统级别,在所述至少两个中间节点中的每个节点处,标识先前发送到所述节点链中的后续节点或先前从所述节点链中的后续节点接收的与所述被请求数据的至少一部分匹配的在先数据。所述系统还包括传输设备,其用于当所述在先数据与所述被请求数据的所述至少一部分匹配时,将指向所述在先数据的至少一个指针和重构方案传输到所述后续节点,所述重构方案至少基于所述至少一个指针而在所述后续节点处重构所述被请求数据。所述传输设备还将所述被请求数据的先前未发送到所述后续节点或未由所述后续节点接收的其它部分传输到所述后续节点。
根据本发明的另一个方面,提供一种用于在从源节点到目的地节点且通过至少两个中间节点的节点链上传输被请求数据的方法。所述方法包括在多个分块级别对文件进行分块。所述方法还包括在所述多个分块级别中的每个级别处,生成用于在所述节点链中的后续节点处重构所述文件的相应重构方案以及用于存储所述文件的块的相应块存档。所述方法还包括选择所述相应重构方案和与所述相应重构方案对应的所述块存档,所述相应重构方案和所述块存档导致将最少量的数据传输到所述后续节点。所述方法还包括将所选择的重构方案和所选择的块存档传输到所述后续节点。
根据本发明的另一个方面,提供一种用于在从源节点到目的地节点且通过至少两个中间节点的节点链上传输被请求数据的系统。所述系统包括数据分块器,其用于在多个分块级别对文件进行分块。所述系统还包括重构方案和块存档生成器,其用于在所述多个分块级别中的每个级别处,生成在所述节点链中的后续节点处重构所述文件的相应重构方案以及存储所述文件的块的相应块存档。所述重构方案和块存档生成器还选择所述相应重构方案和与所述相应重构方案对应的所述块存档,所述相应重构方案和所述块存档导致将最少量的数据传输到所述后续节点。所述系统还包括传输设备,其用于将所选择的重构方案和所选择的块存档传输到所述后续节点。
从以下将结合附图阅读的对本发明的示例性实施例的详细描述,这些和其它特性和优点将变得显而易见。
附图说明
本公开将参考附图,在以下对优选实施例的描述中提供详细信息,这些附图是:
图1示出了根据本发明的一个实施例的可以应用本发明的示例性处理系统100;
图2示出了根据本发明的一个实施例的通过目的地分析和数据去重实现数据传输优化的示例性系统200;
图3示出了根据本发明的一个实施例的可以应用本发明的节点的示例性网络300;
图4示出了根据本发明的一个实施例的通过目的地分析和数据去重实现数据传输优化的示例性方法400;以及
图5示出了根据本发明的一个实施例的通过目的地分析和数据去重实现数据传输优化的另一个示例性方法500。
具体实施方式
本发明涉及通过目的地分析和数据去重的数据传输优化。本发明通过战略性地在中间节点处维护数据仓库,减少数据重新传输。当用户希望在两个节点之间传输数据时,将检查以查看是否在更靠近接收者的节点处已经存在该数据的一部分或全部。在一个实施例中,然后仅发送以下项:(1)未存在于合适的中间节点上的数据;以及(2)组装原始数据所需的指令。此策略将提高传输速度并降低传输成本。应该指出,优选实施例消除在节点之间同步数据库的需要。
在一个实施例中,本发明使用结合了动态分块优化的链式去重策略以减小数据传输的大小。如在此使用的,术语“链式去重策略”指公开的结合了多个主机上的文件级别去重的去重策略。此外,如在此使用的,术语“动态分块优化”指公开的用于选择随后相互比较的文件部分或“块”的最佳大小的方法。
图1示出了根据本发明的一个实施例的可以应用本发明的示例性处理系统100。处理系统100包括至少一个处理器(CPU)102,其经由系统总线104在操作上耦合到其它组件。只读存储器(ROM)106、随机存取存储器(RAM)108、显示适配器110、I/O适配器112、用户接口适配器114和网络适配器198在操作上耦合到系统总线104。
显示设备116通过显示适配器110在操作上耦合到系统总线104。磁盘存储设备(例如,磁盘或光盘存储设备)118通过I/O适配器112在操作上耦合到系统总线104。
鼠标120和键盘122通过用户接口适配器114在操作上耦合到系统总线104。鼠标120和键盘122用于将信息输入系统100以及从系统100输出信息。
收发器196通过网络适配器198在操作上耦合到系统总线104。
当然,处理系统100还可以包括其它元件(未示出),如所属技术领域的技术人员很容易地构想的那样,以及省略某些元件。此外,针对通过图1中的收发器196和/或某个其它元件(示出或未示出)与处理系统100连接的用户,可以省略处理系统100的元件,例如键盘122和鼠标120。所属技术领域的技术人员很容易地构想处理器系统100的这些和其它变型以及其中包括的元件,同时保持本发明的精神。
此外,应该理解,下面针对图2描述的系统200实际上是用于实现本发明的一个相应实施例的系统。处理系统100的部分或全部可以在系统200的一个或多个元件中实现。
同样,下面针对图3描述的网络300实际上是根据本发明的一个实施例的可以应用本发明的网络。处理系统100的部分或全部可以在网络300的一个或多个元件中实现。
进一步,应该理解,处理系统100可以执行在此描述的方法的至少一部分,例如包括图4的方法400的各部分。
图2示出了根据本发明的一个实施例的通过目的地分析和数据去重实现数据传输优化的示例性系统200。系统200可以位于数据传输涉及的一个或多个节点上。系统200包括匹配数据部分标识器210、数据分块器220、重构方案和块存档生成器230、数据库240、索引250和收发器260。数据库240可以包括索引250以及块存档270。
匹配数据部分标识器210将被请求数据与预先存储的数据相比较,以便判定被请求数据的任何部分是否与预先存储的数据相匹配。
数据分块器220输入接收的文件并对接收的文件进行分块。在一个实施例中,在多个分块级别对接收的文件进行分块。
重构方案和块存档生成器230生成用于重构至少某些被请求数据的重构方案(例如,在后续节点处,例如包括下一个非目的地节点或目的地节点)。在一个实施例中,重构方案和块存档生成器230生成一组重构方案和一组块存档,并进行选择以便使用重构方案和对应于该重构方案的块存档,它们导致传输最少量的数据(例如,对于给定传输,整体传输最少量的数据,或者在链路的一部分上传输最少量的数据,等等)。虽然示为单个元件,但在其它实施例中,重构方案和块存档生成器230可以被实现为多个元件。例如,可以在一个元件中实现用于生成重构方案的功能,同时可以在另一个元件中实现用于生成块存档的功能。
数据库240在其中存储数据。在一个实施例中,针对此类存储选择性地选择存储在数据库240中的数据。在一个实施例中,存储在数据库240中的数据在其中存储一段预定时间。
索引250标识存储在同一节点处的数据库240中的数据。在一个实施例中,索引250还标识存储在其它节点处的数据库中的数据。在一个实施例中,索引250本身也可以存储在数据库240中。
收发器260初始接收被提供给数据分块器220进行分块的文件。此外,收发器260将数据、指针和重构方案传输到一个或多个其它(例如,下游)节点。例如,在一个实施例中,收发器260传输被请求数据的一个或多个部分(例如,存储在前一个节点处或转发自前一个节点)、已经存储(例如,在(同一节点)或不同节点处)的指向数据(例如,被请求数据的一个或多个部分)的一个或多个指针,以及用于在后续节点处重构数据的一个或多个重构方案。后续节点可以是下一非目的地节点,或者可以是目的地节点。应该理解,给定节点处的给定收发器260还可以接收被请求数据的一个或多个部分、指向数据的一个或多个指针,以及用于在后续节点处重构数据的一个或多个重构方案,因为给定节点可以是至少两个中间节点中的一个节点,并且可以沿着该给定节点转发来自上一个节点的数据、指针和方案。
下面将进一步详细地描述系统200的元件执行的功能。
图3示出了根据本发明的一个实施例的可以应用本发明的节点的示例性网络300。网络300包括叶节点A-H、J-N和P。
假设希望将数据从叶节点A传输到叶节点D。在传统的网络体系结构中,该数据在到达目的地之前将经过节点B和C。但是,在许多情况下,正在被传输的数据或它的各部分先前已通过某些中间节点被传输。
在本发明的一个实施例中,在每个仓库节点处,存储通过该仓库节点的部分或全部数据,并维护存储在部分或所有其它仓库节点处的部分或全部数据的目录。每个先前节点知道它已发送到每个后续节点的数据,并且通过商定策略知道每个后续节点存储的数据。
例如,如果再次考虑图3中的网络,当节点A将数据传输到节点D时,节点B和C将在数据通过它们时记录该数据的部分或全部。下次节点B之后的叶节点将数据发送到节点C之后的叶节点时(例如,在节点A将数据发送到节点D的情况下),节点B首先将新传输中的数据与先前传输到节点C的数据的记录相比较。如果先前传输了该数据的部分或全部,则只需发送有关如何从节点C处的数据仓库取回该数据的指令。通过此操作,将减少节点B和节点C之间的链路上的负载。
现在将针对图4提供本发明的一个优选实施例的描述。当节点B和C在慢速链路的任一端并在节点A和D之间时,执行以下步骤以便将文件从节点A发送到节点D。应该指出,在该实施例中,节点A将所有业务按顺序通过节点B和节点C而发送到节点D。
图4示出了根据本发明的一个实施例的通过目的地分析和数据去重实现数据传输优化的示例性方法。
在步骤410,启动从节点A到节点D的连接以便下载文件f。
在步骤420,将节点B和节点C标识为位于节点A和节点D之间以便用于传输文件f。
在步骤430,节点A请求从节点D发送文件f。
在步骤440,节点D将文件f发送到节点C。
在步骤450,节点C将文件f与它接收并发送到节点B的其它文件相比较,以便唯一标识文件f中存在的已发送到节点B或已从节点B接收的文件的各部分,即使先前已将整个文件f发送(到节点B)或已(由节点B)接收整个文件f。
在步骤460,节点C创建文件x,其包括指向先前发送或接收的一个或多个文件的标记,并且还包括文件f与一个或多个文件(先前发送或接收)之间的更改,以及基于传输的更改和重构信息重构文件f所需的信息。在一个实施例中,通过执行所接收的文件与先前发送或接收的文件的逐位比较而确定更改。在一个实施例中,当超过阈值数量的在先数据与被请求数据的至少一部分匹配时,发送更改。通过这种方式,与传输所有数据相比,将显著减少传输的数据量。
在步骤470,节点C将文件x传输到节点B。
在步骤480,节点B重构文件f。
在步骤490,节点B将重构后的文件f发送到节点A。
现在将针对图5提供本发明的一个备选实施例的描述。所述备选实施例描述了一种系统,其在所有节点(而不只是在慢速连接的任一端处的节点,即,存储所有发送和接收的文件的大型数据库的所有节点)之间(根据商定的规则)运行本发明的去重系统。
图5示出了根据本发明的一个实施例的通过目的地分析和数据去重实现数据传输优化的另一个示例性方法。
在步骤510,数据分块器220(在以管理方式设置的所有可能的可行分块级别)对接收的文件进行分块。
在步骤520,重构方案和块存档生成器230通过文件系统级别去重(使用文件系统对链中的下一个智能节点中的已知文件进行去重),在每个分块级别生成重构方案和块存档。如果给出组中的特定分块级别,并且因此给出特定块存档,则重构方案用于在后续节点处重构文件。块存档用于在给定分块级别处存储块(例如,存储一段预定时间)。因此,每个重构方案对应于特定块存档,且重构方案和块存档两者对应于同一分块级别。
在步骤530,重构方案和块存档生成器230选择导致传输最少量数据的最佳重构方案和块存档。
在步骤540,至少(例如,在本地数据库240中)存储所选择的重构方案和对应于该重构方案的块存档。
在步骤550,收发器260将最佳重构方案和块存档传输到链中的下一个智能节点。
在步骤560,链中的下一个智能节点经由收发器260接收重构方案和块存档。
在步骤570,链中的下一个智能节点使用所接收的重构方案和块存档重构文件。
针对链中的每个智能节点重复步骤510到570。
现在将描述本发明的一个示例性实施例。为此,将做出以下假设。叶节点D存储它已发送到叶节点E的任何事物(存储一段商定的时间)等。因此,在一个实施例中,每个智能节点都在一段商定的时间内保存从每个先前智能节点发送给它的文件的记录。假设去重的主要级别在文件系统级别。假设文件是具有实质性大小的文件。假设可以通过公共配置或对网络拓扑(公共或其它)的某种其它预定理解,确定从A到K的路径。
再次参考图3,如果叶节点A想要将文件发送到叶节点K,则叶节点A将文件发送到叶节点D,叶节点D将文件发送到叶节点E,叶节点E将文件发送到叶节点F,叶节点F将文件发送到叶节点J,叶节点J将文件发送到叶节点K。
在每个智能节点(D、E、F、J)处,将发生以下操作。
接收整个文件。每个发送智能节点将执行上面针对图5描述的步骤510到570。
现在将给出对一个备选实施例的描述。假设智能节点存储通过它传输的数据,则智能节点知道子节点(在该实例中为节点G)是否具有包括在重构原始文件中有用的数据块的文件。如果发现包括对重构文件有用的块,并且在节点G与目的地节点(节点F)之间具有备选路径,而且使用该备选路径具有可感知到的优势,则存储在节点G中的块可以用于帮助将块存档传输到目的地节点。在这种情况下,节点G可以用于通过在节点G中创建部分块存档来帮助传输,该部分块存档然后与来自前一个智能节点(节点E)的块存档一起被传输到链中的下一个智能节点。
现在将给出关于与本发明相关的其它考虑事项的描述。发送到节点的数据可能在给定已知时间之后过期。相同的信任级别适用于通过路由器发送数据。去重也适用于加密后的数据。节点中的数据(关于数据发送到的节点)必须最新并且同步。可以使用定制软件(例如定制文件传输软件)执行通过这些节点的通信。尽管本发明的一个实施例被描述为在链路的任一端运行,但本发明可以在任何两个连接的节点之间工作。所述系统可以在连接节点之间(即,在A和B之间、在B和C之间,以及在C和D之间)工作。
现在将给出关于本发明如何不同于广域网(WAN)优化的描述。本发明是自上而下的,而不是自下而上的。与WAN优化相比,本发明不需要知道正在接收什么文件。与其中在文件级别执行数据去重的WAN优化相比,本发明在文件系统级别执行数据去重。为了执行去重,当前正在被发送的文件永远无需已在以前被发送。因此,这与依赖于重新发送已知文件的当前WAN缓存策略截然不同。
此外,关于本发明如何不同于广域网(WAN)优化,做出以下说明。WAN优化结合了缓存和去重。WAN优化中的去重工作在开放系统互连堆栈的第4层。WAN去重通过存储文件模式的字典(其根据先前传输来标识)来工作。这些字典必须保持很小,以便不会妨碍及时传输文件。相比之下,本发明在文件系统级别(字节级别)使用去重。本发明使用结合了动态分块优化的链式去重策略,以便减小传输的大小。这是链式策略,因此两个节点之间的传输(包括多个中间节点)将导致多次使用优化过程。本发明允许较大的去重“字典”,必须实时传输文件的设备不可能具有如此大的去重“字典”。本发明提供大得多的机会来减少带宽使用。
进一步做出以下说明。本发明不需要任何有关谁具有什么的集中知识。它也不依赖于能够获得有关谁具有什么的知识的目的地节点。
我们的系统依赖于文件系统级别去重。做出以下关于文件系统级别去重的说明。本发明使用文件系统级别去重,其中“文件系统”包括接收节点中的已知文件。这些文件是已知的,因为发送节点在商定的时间内存储这些文件。这也可以称为字节级别去重。
现在将给出本发明提供的较之现有技术地理优化策略的优势。具有多种当前链路优化策略。其中某些策略包括基于去重的策略。某些基于去重的策略尝试使用有关以前发送到该节点的文件部分的现有知识,对两个节点之间的实时数据流执行去重。在这些策略中,尝试运行中识别和去重。运行中数据去重包括对照已知的同步数据库,在运行中估计入站数据或对入站数据进行分块和散列。
其它策略包括文件系统的同步。本发明不需要接收节点或发送节点具有任何有关彼此的现有知识,也不需要有关存储在其它叶节点中的文件的详细知识。本发明并不在线实现并因而发生延迟传输;相应地,本发明可以在发送之前利用大量时间进行最佳去重。本发明不涉及大型数据库的同步。本发明可以利用发送节点与接收节点之间的若干节点。
所属技术领域的技术人员知道,本发明的各个方面可以实现为系统、方法或计算机程序产品。因此,本发明的各个方面可以具体实现为以下形式,即:完全的硬件实施方式、完全的软件实施方式(包括固件、驻留软件、微代码等),或硬件和软件方面结合的实施方式,这里可以统称为“电路”、“模块”或“系统”。此外,本发明的各个方面还可以实现为在一个或多个计算机可读介质中的计算机程序产品的形式,该计算机可读介质中包含计算机可读的程序代码。
可以采用一个或多个计算机可读介质的任意组合。计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质。计算机可读存储介质例如可以是—但不限于—电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者上述的任意合适的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本文件中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。
计算机可读的信号介质可以包括例如在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括—但不限于—电磁信号、光信号或它们的任意合适的组合。计算机可读的信号介质可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。
计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括—但不限于—无线、有线、光缆、RF等等,或者上述的任意合适的组合。
可以以一种或多种程序设计语言的任意组合来编写用于执行本发明的各个方面的操作的计算机程序代码,所述程序设计语言包括面向对象的程序设计语言—诸如Java、Smalltalk、C++等,还包括常规的过程式程序设计语言—诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络—包括局域网(LAN)或广域网(WAN)—连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。
下面将参照根据本发明实施例的方法、装置(系统)和计算机程序产品的流程图和/或框图描述本发明的各个方面。应当理解,流程图和/或框图的每个方框以及流程图和/或框图中各方框的组合,都可以由计算机程序指令实现。这些计算机程序指令可以提供给通用计算机、专用计算机或其它可编程数据处理装置的处理器,从而生产出一种机器,使得这些指令在通过计算机或其它可编程数据处理装置的处理器执行时,产生了实现流程图和/或框图中的一个或多个方框中规定的功能/动作的装置。
也可以把这些计算机程序指令存储在计算机可读介质中,这些指令使得计算机、其它可编程数据处理装置、或其它设备以特定方式工作,从而,存储在计算机可读介质中的指令就产生出包括实现流程图和/或框图中的一个或多个方框中规定的功能/动作的指令的制造品(article ofmanufacture)。
也可以把计算机程序指令加载到计算机、其它可编程数据处理装置、或其它设备上,使得在计算机、其它可编程装置或其它设备上执行一系列操作步骤,以产生计算机实现的过程,从而使得在计算机或其它可编程装置上执行的指令提供实现流程图和/或框图中的一个或多个方框中规定的功能/动作的过程。
附图中的流程图和框图显示了根据本发明的不同实施例的系统、方法和计算机程序产品的可能实现的体系结构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
本说明书中对本发明的“一个实施例”或“一实施例”的引用以及它们的其它变型指结合该实施例描述的特定特性、结构或特征等被包括在本发明的至少一个实施例中。因此,本说明书的各种位置中出现的短语“在一个实施例中”或“在一实施例中”以及任何其它变型不一定都指同一实施例。
应该理解,使用以下“/”、“和/或”以及“至少一个”(例如,在“A/B”、“A和/或B”以及“A和B中的至少一个”的情况下)的任意一个都旨在包含仅选择第一列出的选项(A),或者仅选择第二列出的选项(B),或者选择两个选项(A和B)。作为进一步实例,在“A、B和/或C”以及“A、B和C中的至少一个”的情况下,此语句旨在包含仅选择第一列出的选项(A),或者仅选择第二列出的选项(B),或者仅选择第三列出的选项(C),或者仅选择第一和第二列出的选项(A和B),或者仅选择第一和第三列出的选项(A和C),或者仅选择第二和第三列出的选项(B和C),或者选择所有三个选项(A和B和C)。这可以扩展为列出的任意多个项,如本领域和相关技术领域的技术人员显而易见的那样。
描述系统和方法的优选实施例(它们旨在是示例性的而非限制性的)之后,要指出的是,本领域技术人员可以根据上述教导做出修改和变型。因此,应该理解,可以在公开的特定实施例中进行更改,其在所附权利要求概述的本发明的范围内。因此,描述本发明的各个方面以及专利法需要的细节和特殊性之后,在所附权利要求中给出证书专利要求保护和期望保护的内容。
Claims (25)
1.一种用于在从源节点到目的地节点且通过至少两个中间节点的节点链上传输被请求数据的方法,所述方法包括:
在文件系统级别,在所述至少两个中间节点中的每个节点处,标识先前发送到所述节点链中的后续节点或先前从所述节点链中的后续节点接收的与所述被请求数据的至少一部分匹配的在先数据;
当所述在先数据与所述被请求数据的所述至少一部分匹配时,将指向所述在先数据的至少一个指针和重构方案传输到所述后续节点,所述重构方案用于至少基于所述至少一个指针而在所述后续节点处重构所述被请求数据;以及
将所述被请求数据的先前未发送到所述后续节点或未由所述后续节点接收的其它部分传输到所述后续节点。
2.根据权利要求1的方法,其中所述标识步骤在非传输层处标识与所述被请求数据的所述至少一部分匹配的所述在先数据。
3.根据权利要求1的方法,其中所述文件系统级别处于字节级别。
4.根据权利要求1的方法,其中所述数据传输方法还包括由所述至少两个目的地节点中的至少每个节点执行以下操作:
在多个分块级别对文件进行分块;
在所述多个分块级别中的每个级别处,生成用于在所述后续节点处重构所述文件的相应重构方案以及用于存储所述文件的块的相应块存档;以及
将与所述多个分块级别中的至少一个级别对应的所述重构方案和所述块存档传输到所述后续节点,
其中所述文件包括在由所述标识步骤使用的所述在先数据中。
5.根据权利要求4的方法,其中所述生成步骤包括:
生成多个重构方案和多个块存档;以及
选择所述多个重构方案中的一个给定重构方案和与该给定重构方案对应的所述多个块存档中的一个给定块存档,该给定重构方案和该给定块存档导致在所述节点链上传输最少量的数据。
6.根据权利要求4的方法,其中所述后续节点是所述节点链中的下一非目的地节点。
7.根据权利要求4的方法,其中所述后续节点是所述目的地节点。
8.根据权利要求1的方法,其中所述标识和传输步骤被限于仅由所述至少两个中间节点中的一个节点在慢速连接的每一侧执行,所述慢速连接具有小于预定阈值的数据传输速率。
9.根据权利要求1的方法,还包括在所述至少两个中间节点中的每个节点处维护相应索引和相应数据库,所述相应索引标识存储在所述至少两个中间节点中的同一节点处的所述相应数据库中的数据。
10.根据权利要求9的方法,其中在所述至少两个中间节点中的每个节点处维护的所述相应索引进一步标识存储在所述至少两个中间节点中的其它节点处的所述相应数据库中的数据。
11.根据权利要求10的方法,其中在所述至少两个中间节点中的每个节点处维护的所述相应索引进一步标识存储在所述源节点和所述目的地节点处的数据。
12.根据权利要求9的方法,其中所述至少两个中间节点中的每个节点处的所述相应数据库未同步到所述至少两个中间节点中的其它节点处的所述相应数据库。
13.根据权利要求1的方法,其中在所述至少两个中间节点中的一个节点处完全重构所述被请求数据,然后将完全重构后的被请求数据传输到后续节点。
14.根据权利要求1的方法,还包括当超过阈值数量的所述在先数据与所述被请求数据的所述至少一部分匹配时,将所述在先数据与所述被请求数据之间的更改传输到所述后续节点。
15.根据权利要求1的方法,其中在有形地体现在计算机可读存储介质上的计算机可执行程序中实现所述方法。
16.一种用于在从源节点到目的地节点且通过至少两个中间节点的节点链上传输被请求数据的系统,所述系统包括:
匹配数据部分标识器,其用于在文件系统级别,在所述至少两个中间节点中的每个节点处,标识先前发送到所述节点链中的后续节点或先前从所述节点链中的后续节点接收的与所述被请求数据的至少一部分匹配的在先数据;以及
传输设备,其用于当所述在先数据与所述被请求数据的所述至少一部分匹配时,将指向所述在先数据的至少一个指针和重构方案传输到所述后续节点,所述重构方案至少基于所述至少一个指针而在所述后续节点处重构所述被请求数据,以及用于将所述被请求数据的先前未发送到所述后续节点或未由所述后续节点接收的其它部分传输到所述后续节点。
17.根据权利要求16的系统,其中所述匹配数据部分标识器在非传输层处标识与所述被请求数据的所述至少一部分匹配的先前存储的数据。
18.根据权利要求16的系统,其中在所述至少两个中间节点中的一个节点处完全重构所述被请求数据,然后将完全重构后的被请求数据传输到后续节点。
19.根据权利要求16的系统,其中当超过阈值数量的所述在先数据与所述被请求数据的所述至少一部分匹配时,所述传输设备进一步将所述在先数据与所述被请求数据之间的更改传输到所述后续节点。
20.一种用于在从源节点到目的地节点且通过至少两个中间节点的节点链上传输被请求数据的方法,所述方法包括:
在多个分块级别对文件进行分块;
在所述多个分块级别中的每个级别处,生成用于在所述节点链中的后续节点处重构所述文件的相应重构方案以及用于存储所述文件的块的相应块存档;
选择所述相应重构方案和与所述相应重构方案对应的所述块存档,所述相应重构方案和所述块存档导致将最少量的数据传输到所述后续节点;以及
将所选择的重构方案和所选择的块存档传输到所述后续节点。
21.根据权利要求20的方法,其中在所述至少两个中间节点中的一个节点处完全重构所述文件,然后将完全重构后的文件传输到所述节点链中的后续非目的地节点。
22.根据权利要求20的方法,其中在所述至少两个中间节点中的一个节点处完全重构所述文件,然后将完全重构后的文件传输到所述目的地节点。
23.一种用于在从源节点到目的地节点且通过至少两个中间节点的节点链上传输被请求数据的系统,所述系统包括:
数据分块器,其用于在多个分块级别对文件进行分块;
重构方案和块存档生成器,其用于在所述多个分块级别中的每个级别处,生成在所述节点链中的后续节点处重构所述文件的相应重构方案以及存储所述文件的块的相应块存档,以及用于选择所述相应重构方案和与所述相应重构方案对应的所述块存档,所述相应重构方案和所述块存档导致将最少量的数据传输到所述后续节点;以及
传输设备,其用于将所选择的重构方案和所选择的块存档传输到所述后续节点。
24.根据权利要求23的系统,其中在所述至少两个中间节点中的一个节点处完全重构所述文件,然后将完全重构后的文件传输到所述节点链中的后续非目的地节点。
25.根据权利要求23的系统,其中在所述至少两个中间节点中的一个节点处完全重构所述文件,然后将完全重构后的文件传输到所述目的地节点。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US13/585,123 | 2012-08-14 | ||
US13/585,123 US9042386B2 (en) | 2012-08-14 | 2012-08-14 | Data transfer optimization through destination analytics and data de-duplication |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103593384A true CN103593384A (zh) | 2014-02-19 |
CN103593384B CN103593384B (zh) | 2017-03-01 |
Family
ID=50083529
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201310351353.1A Active CN103593384B (zh) | 2012-08-14 | 2013-08-13 | 以目的地分析和数据去重实现数据传输优化的方法和系统 |
Country Status (2)
Country | Link |
---|---|
US (2) | US9042386B2 (zh) |
CN (1) | CN103593384B (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108243207A (zh) * | 2016-12-23 | 2018-07-03 | 航天星图科技(北京)有限公司 | 一种网络云盘的数据存储方法 |
CN111064674A (zh) * | 2019-11-05 | 2020-04-24 | 珠海格力电器股份有限公司 | 数据的传输方法及装置、系统 |
Families Citing this family (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10536357B2 (en) * | 2015-06-05 | 2020-01-14 | Cisco Technology, Inc. | Late data detection in data center |
US10142353B2 (en) | 2015-06-05 | 2018-11-27 | Cisco Technology, Inc. | System for monitoring and managing datacenters |
US10181954B2 (en) * | 2016-03-28 | 2019-01-15 | Digicert, Inc. | Cloud-based code signing service—hybrid model to avoid large file uploads |
US10509733B2 (en) | 2017-03-24 | 2019-12-17 | Red Hat, Inc. | Kernel same-page merging for encrypted memory |
US10209917B2 (en) | 2017-04-20 | 2019-02-19 | Red Hat, Inc. | Physical memory migration for secure encrypted virtual machines |
US10379764B2 (en) | 2017-05-11 | 2019-08-13 | Red Hat, Inc. | Virtual machine page movement for encrypted memory |
US11354420B2 (en) | 2017-07-21 | 2022-06-07 | Red Hat, Inc. | Re-duplication of de-duplicated encrypted memory |
US11614956B2 (en) | 2019-12-06 | 2023-03-28 | Red Hat, Inc. | Multicast live migration for encrypted virtual machines |
US20240020201A1 (en) * | 2022-07-14 | 2024-01-18 | Microsoft Technology Licensing, Llc | Generating diffs between archives using a generic grammar |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20040158706A1 (en) * | 2002-10-16 | 2004-08-12 | Haruo Moritomo | System, method, and device for facilitating multi-path cryptographic communication |
US20070043824A1 (en) * | 2005-08-20 | 2007-02-22 | International Business Machines Corporation | Methods, apparatus and computer programs for data communication efficiency |
US20090077261A1 (en) * | 2007-09-13 | 2009-03-19 | International Business Machines Corporation | Method and system for file transfer over a messaging infrastructure |
CN101448021A (zh) * | 2008-12-29 | 2009-06-03 | 深圳市迅雷网络技术有限公司 | 一种实现点对点网络连通的方法及装置 |
CN101789977A (zh) * | 2010-02-08 | 2010-07-28 | 北京同有飞骥科技有限公司 | 一种基于Hash编码的远程数据复制去重方法 |
US20100265951A1 (en) * | 2007-12-17 | 2010-10-21 | Norihito Fujita | Routing method and node |
CN102158540A (zh) * | 2011-02-18 | 2011-08-17 | 广州从兴电子开发有限公司 | 分布式数据库实现系统及方法 |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
GB0031157D0 (en) * | 2000-12-20 | 2001-01-31 | Ncr Int Inc | Streaming of data |
JP3823867B2 (ja) * | 2002-04-11 | 2006-09-20 | 日本電気株式会社 | 通信ネットワーク制御システム、制御方法、ノード及びプログラム |
US7490140B2 (en) * | 2005-05-12 | 2009-02-10 | International Business Machines Corporation | Peer data transfer orchestration |
JP5140666B2 (ja) * | 2006-06-27 | 2013-02-06 | トムソン ライセンシング | パフォーマンスを考慮した、ピアツーピア・コンテンツ・オンデマンド |
US8159949B2 (en) * | 2007-05-03 | 2012-04-17 | Abroadcasting Company | Linked-list hybrid peer-to-peer system and method for optimizing throughput speed and preventing data starvation |
US8386630B1 (en) * | 2007-09-09 | 2013-02-26 | Arris Solutions, Inc. | Video-aware P2P streaming and download with support for real-time content alteration |
ES2390143B1 (es) | 2010-09-17 | 2013-05-17 | Telefónica, S.A. | Sistema y método de almacenamiento y retransmisión de datos con múltiples saltos y múltiples trayectorias para transferencias masivas. |
-
2012
- 2012-08-14 US US13/585,123 patent/US9042386B2/en not_active Expired - Fee Related
-
2013
- 2013-08-13 CN CN201310351353.1A patent/CN103593384B/zh active Active
-
2015
- 2015-03-25 US US14/668,202 patent/US9916317B2/en not_active Expired - Fee Related
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20040158706A1 (en) * | 2002-10-16 | 2004-08-12 | Haruo Moritomo | System, method, and device for facilitating multi-path cryptographic communication |
US20070043824A1 (en) * | 2005-08-20 | 2007-02-22 | International Business Machines Corporation | Methods, apparatus and computer programs for data communication efficiency |
US20090077261A1 (en) * | 2007-09-13 | 2009-03-19 | International Business Machines Corporation | Method and system for file transfer over a messaging infrastructure |
US20100265951A1 (en) * | 2007-12-17 | 2010-10-21 | Norihito Fujita | Routing method and node |
CN101448021A (zh) * | 2008-12-29 | 2009-06-03 | 深圳市迅雷网络技术有限公司 | 一种实现点对点网络连通的方法及装置 |
CN101789977A (zh) * | 2010-02-08 | 2010-07-28 | 北京同有飞骥科技有限公司 | 一种基于Hash编码的远程数据复制去重方法 |
CN102158540A (zh) * | 2011-02-18 | 2011-08-17 | 广州从兴电子开发有限公司 | 分布式数据库实现系统及方法 |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108243207A (zh) * | 2016-12-23 | 2018-07-03 | 航天星图科技(北京)有限公司 | 一种网络云盘的数据存储方法 |
CN111064674A (zh) * | 2019-11-05 | 2020-04-24 | 珠海格力电器股份有限公司 | 数据的传输方法及装置、系统 |
CN111064674B (zh) * | 2019-11-05 | 2021-02-26 | 珠海格力电器股份有限公司 | 数据的传输方法及装置、系统 |
Also Published As
Publication number | Publication date |
---|---|
US20150199349A1 (en) | 2015-07-16 |
US9042386B2 (en) | 2015-05-26 |
CN103593384B (zh) | 2017-03-01 |
US9916317B2 (en) | 2018-03-13 |
US20140050222A1 (en) | 2014-02-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103593384A (zh) | 以目的地分析和数据去重实现数据传输优化的方法和系统 | |
US10929374B2 (en) | Constructing blockchain world state Merkle Patricia Trie subtree | |
CA3058225C (en) | Updating blockchain world state merkle patricia trie subtree | |
CN101313495B (zh) | 数据同步方法、系统及装置 | |
CN1684464B (zh) | 用于在本地装置和远程装置间更新对象的方法和系统 | |
CN112270550B (zh) | 一种基于区块链的新能源电力溯源方法及系统 | |
CN103227836B (zh) | 离线下载方法和离线下载服务器 | |
CN107807891A (zh) | 信息采集方法及终端设备 | |
CN104378234A (zh) | 跨数据中心的数据传输处理方法及系统 | |
CN114567643B (zh) | 跨区块链的数据流转方法、装置及相关设备 | |
CN110380919A (zh) | 区块链请求的处理方法、装置、电子设备及可读存储介质 | |
WO2023160089A1 (zh) | 用于区块链网络的消息广播方法、区块链节点和区块链系统 | |
US11368297B2 (en) | Method and apparatus for updating digital certificate | |
CN105074688A (zh) | 使用对等节点图的基于流的数据去重复 | |
CN111951112A (zh) | 基于区块链的智能合约执行方法、终端设备和存储介质 | |
KR20140013892A (ko) | 복수의 정보 시스템에서의 출력 비교 방법 | |
CN111404936B (zh) | 文件转发系统及方法 | |
CN113630365B (zh) | 海量异构数据的并行传输方法、装置、设备及存储介质 | |
CN110648140B (zh) | 一种基于区块链的多链配合方法及装置 | |
CN116263925A (zh) | 基于区块链的对账方法和装置 | |
CN100561921C (zh) | 客户端与服务器快速交换资料的系统及方法 | |
CN109657481A (zh) | 数据管理方法及装置 | |
US20240134892A1 (en) | Information generation method, apparatus, electronic device, and computer -readable medium | |
US20240232237A9 (en) | Information generation method, apparatus, electronic device, and computer -readable medium | |
CN116915870B (zh) | 任务创建请求处理方法、装置、电子设备和可读介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |