WO0235799A2

Method and apparatus for large payload distribution in a network

Abstract

Large payload files are selectively partitioned in blocks and theblocks distributed to a plurality of distribution stations at theedge of the network qualified to have the data. Each qualified station decides how much and what portion of the content to save locally, based on information such as network location and environment, usage, popularity, and other distribution criteria defined by the content provider. Different pieces of a large payload file may be available from different nodes, however, when a user requests access to the large payload file, for example, through an application server, a virtual file control system creates an illusion that the entire file is present at the connected node. However, since only selective portions of the large payload file may actually be resident at that node's storage at the time of request, a cluster of distribution servers at the distribution station may download the non-resident portions of the file as the applicationserver is servicing the user. The download may be in parallel andusually from the least congested nodes. New nodes added to the network learn from other nodes in the network what content they should have and downlaod the required content, in a desired amount, onto their local storage devices from the nearest and least congested nodes without interrupting network operation. Each node manages its local storage and decides what content to prune based on information such as usage patterns.

WO0235799A2, drawing sheet 1
Sheet 1 of 8

Term

No projected expiry on record.

  1. Priority
  2. Filed
  3. Published
  4. Today

70 claims: 15 independent, 55 dependent

  1. 1
    What Is Claimed Is:1. A method for distributing content of large payload file to a plurality of storage devices in a network node comprising: obtaining a plurality of block files representing content of a large payload file for storage in a plurality of storage devices in a network node;associating said plurality of block files with said plurality of storage devices;storing said plurality of block files in said plurality of storage devices based on said associations;and creating a virtual file, using said associations, for presentation to a client requesting said file content, said virtual file providing an illusion to said client that said file content is contiguous in said network node.
  2. 9
    An apparatus for distributing content of large payload file to a plurality of storage devices in a network node comprising:one or more first servers in a first server cluster of a network node obtaining a plurality of block files representing content of a large payload file for storage in a plurality of storage devices in said network node, said one or more first servers associating said plurality of block files with said plurality of storage devices and storing said plurality of block files in said plurality of storage devices based on said associations;and one or more second servers in a second server cluster of said network node creating a virtual file, using said associations, for presentation to a client requesting said file content, said virtual file providing an illusion to said client that said file content is contiguous in said network node.
  3. 14
    A method for minimizing network congestion during large payload delivery comprising:sending a search request to determine which nodes in a network have content for a requesting node, said network having a plurality of nodes;receiving a response to said search request from each of one or more responding nodes having said content;determining from said response which of said responding nodes are a desired set of nodes to download said content from;downloading said content from said desired set of nodes;and storing said downloaded content onto said requesting node.
  4. 21
    An apparatus for minimizing network congestion during large payload delivery comprising:a network comprising a plurality of nodes;and a first server in a first server cluster sending a search request to determine which nodes in said network have content for a requesting node of said network, said first server cluster having one or more first servers, said first server receiving a response to said search request from each of one or more responding nodes having said content, said first server cluster determining from said response which of said responding nodes are a desired set of nodes to download said content from, and said one or more first servers in said first server cluster downloading said content from said desired set of nodes and storing said downloaded content onto said requesting node.
  5. 28
    A method for managing a plurality of servers in a content delivery network comprising:distributing one or more incoming tasks to one or more available servers in a network node, said network node having a plurality of servers capable of processing said one or more incoming tasks, wherein said one or more available servers comprises a functioning subset of said plurality of servers;maintaining a list of tasks for each of said one or more available servers of said network node, said list of tasks comprising all tasks from said one or more incoming tasks distributed to said each of said one or more available servers;and distributing said all tasks from said list of tasks of a server of said plurality of servers that becomes designated as an unavailable server to said one or more available servers.
  6. 31
    An apparatus for managing a plurality of servers in a content delivery network comprising:a network node having a plurality of servers capable of performing identical tasks;a load balancer distributing one or more incoming tasks to one or more available servers in said network node, wherein said one or more available servers is a functioning subset of said plurality of servers, each of said plurality of servers maintaining a list of tasks containing said incoming tasks distributed to it;and a master server distributing to said one or more available servers all tasks from said list of tasks of a server of said plurality of servers that becomes designated as an unavailable server.
  7. 34
    A method for initializing a new node in a network comprising:adding a new node to a network having a plurality of nodes;sending a query automatically to said plurality of nodes to determine what contents to download;receiving replies to said query from a subset of said plurality of nodes having said contents for said new node;and downloading desired portions of said contents from said subset of said plurality of nodes having said contents.
  8. 38
    A method for automatically adapting a node in a network comprising:changing characteristics of a changed node in a network having a plurality of nodes;sending a query automatically to each of said plurality of nodes, by said changed node, to determine what content said changed node should have;receiving a reply to said query from each node of said plurality of nodes having content for said changed node, said reply comprising a list of contents to be learned by said changed node;generating a list of contents to be deleted from said changed node using information in said list of contents to be learned;generating a list of contents to be added to said changed node using information in said list of contents to be learned;deleting from said changed node items in said list of contents to be deleted;and downloading each item from said list of contents to be added from said replying nodes having content for said changed node.
  9. 42
    An apparatus for automatically adapting a node in a network comprising:a network having a plurality of nodes, each node having one or more servers;and a node in said network configured to become a changed node when characteristics change, said changed node sending a query automatically to each of said plurality of nodes to determine what content said changed node should have, said changed node receiving a reply to said query from each node of said plurality of nodes having content for said changed node, said reply including a list of contents to be learned by said changed node, said changed node generating a list of contents to be deleted and a list of contents to be added using information in said list of contents to be learned, said one or more servers in said changed node deleting items in said list of contents to be deleted, said one or more servers in said changed node downloading each item from said list of contents to be added from said replying nodes having content for said changed node.
  10. 46
    A method for generating a large payload file from non-contiguous segments of block files comprising:receiving a request at a network node for a large payload file;obtaining information about assembling said large payload file;obtaining a plurality of block files of said large payload file from a plurality of storage devices associated with said network node;creating a virtual representation of said large payload file from said plurality of block files using said assembling information;and transmitting said large payload file in response to said request.
  11. 50
    A method for satisfying a client request for content with portions of said content distributed amongst a plurality of network nodes comprising:receiving a first request at a first node from a client for content, wherein said first node comprises one of a plurality of nodes of a network, said first node having a portion of said content, wherein said content is distributed in subsets of block files amongst one or more of said plurality of nodes;preparing a virtual image of said content using data in a file metadata of said content available in said first node, said file metadata having information about reassembling said file, said virtual image providing an illusion to said client that said content is fully available at said first node;beginning transmission of said content to said client starting from said portion of said content available at said first node;obtaining non-resident portions of said content while said transmission is progressing, said obtaining non-resident portions comprising: sending a second request to determine nodes in said plurality of nodes that have said non-resident portions of said content, wherein one or more of said plurality of nodes may have same portion of said content;receiving a response from each responding node having said content, said response specifying the portion of said content and performance characteristics of said responding node;determining from said response which of said responding nodes are a desired set of nodes to download said non-resident portions of said content from;and downloading said non-resident portions of said content from said desired set of nodes and storing said non-resident portions onto said requesting node.
  12. 51
    An apparatus for generating a large payload file from non-contiguous segments of block files comprising:a network with a plurality of nodes;a plurality of storage devices in each of said plurality of nodes;and a first server in a first server cluster of a node of said network receiving a request for content of a large payload file, said first server cluster having one or more first servers, said first server obtaining information about assembling said large payload file, said first server obtaining a plurality of block files of said large payload file from said plurality of storage devices of said node, said first server creating a virtual representation of said large payload file from said plurality of block files using said assembling information, and transmitting said large payload file in response to said request.
  13. 55
    A method for distributing content to a plurality of network nodes comprising:obtaining a large payload file having content from a client for distribution in a network having a plurality of nodes, said client providing distribution criteria for said content;dividing said content into a plurality of block files;and distributing a subset of said plurality of block files to a plurality of qualified nodes, wherein each of said qualified nodes conforms to said distribution criteria set by said client.
  14. 61
    A method for distributing content to a plurality of network nodes comprising:obtaining a large payload file comprising file content from a client for distribution in a network having a plurality of nodes, said client providing distribution criteria for said file content, said distribution criteria having information about which of said plurality of nodes are authorized to have said content;dividing said file content into a plurality of block files having a block size that maximizes playback of said content;storing said plurality of block files in a plurality of local storage devices such that said plurality of block files are distributed over said plurality of local storage devices to load balance said plurality of local storage devices during input/output operations;and distributing a subset of said plurality of block files from said local storage devices to each one of said plurality of nodes qualified to receive said file content, wherein said nodes qualified are those nodes that conform to said distribution criteria set by said client, wherein each qualified node receiving said subset of said plurality of block files distributes said subset into a plurality of local storage devices of said receiving node.
  15. 62
    An apparatus for distributing content to a plurality of network nodes comprising:a network having a plurality of nodes, each of said plurality of nodes having a plurality of components capable of communicating with one another, said plurality of components comprising one or more first servers in a first server cluster;and a third server obtaining a large payload file having content from a client for distribution in said network, said client providing distribution criteria for said content, said third server transmitting said large payload file to a first server of said one or more first servers in said first server cluster, said first server dividing said content into a plurality of block files and distributing a subset of said plurality of block files to a plurality of qualified nodes, wherein each of said qualified nodes conforms to said distribution criteria set by said client.
Independent claims15