Method and system for managing distributed content and related metadata
First Claim
1. A method of efficiently managing storage in a distributed network having a plurality of connected nodes comprising the steps of:
- determining when a certain file storage parameter exceeds a pruning threshold; and
performing a pruning cycle including;
(a) identifying the content components associated with the storage;
(b) selectively pruning the content components based at least in part on usage statistics so that the file storage parameter is reduced to below the pruning threshold; and
(c) updating metadata associated with the content components to reflect the updated storage system parameters.
3 Assignments
0 Petitions
Accused Products
Abstract
The invention provides a method and system for creating an innovative file system that separates its directory presentation from its data store. The method and system include processing, division, distribution, managing, synchronizing, and reassembling of file system objects that does not delay the presentation of the content to the user, but also uses a reduced amount of storage space. The invention includes the ability to manage and control the integrity of the files distributed across the network, and the ability to serve and reconstruct files in real time using a Virtual File Control System.
-
Citations
52 Claims
-
1. A method of efficiently managing storage in a distributed network having a plurality of connected nodes comprising the steps of:
-
determining when a certain file storage parameter exceeds a pruning threshold; and
performing a pruning cycle including;
(a) identifying the content components associated with the storage;
(b) selectively pruning the content components based at least in part on usage statistics so that the file storage parameter is reduced to below the pruning threshold; and
(c) updating metadata associated with the content components to reflect the updated storage system parameters. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32)
-
-
17. A computer program product for efficiently managing storage in a distributed network having a plurality of connected nodes wherein the computer program product comprises a plurality of routines configured to:
-
determine when a certain file storage parameter exceeds a pruning threshold; and
perform a pruning cycle including;
(a) identifying the content components associated with the storage;
(b) selectively pruning the content components based at least in part on usage statistics so that the file storage parameter is reduced to below the pruning threshold; and
(c) updating metadata associated with the content components to reflect the updated storage system parameters.
-
-
33. A method for distributing a file system object in a network having a plurality of network nodes comprising steps of:
-
(a) receiving a request to distribute a file system object;
(b) processing the request to generate metadata based on the requested file system object;
(c) distributing metadata and at least a portion of the file system object to a plurality of qualifying nodes based on distribution criteria; and
(d) integrating metadata in respective meta file systems in the qualifying nodes to represent the distribution of the file system object. - View Dependent Claims (35, 36, 38)
-
-
34. A method for propagating a distribution command related to file system object changes in a network having a plurality of network nodes comprising steps of, at each network node:
-
(a) creating a distribution map containing distribution criteria for a respective node;
(b) forwarding the distribution command to a qualified set of neighbors in part based on the distribution map; and
(c) in response to the distribution command, managing storage and meta file system in the network nodes, and issuing the same command to another qualified set of neighbors to represent the distribution of information across network nodes.
-
-
37. A method for building meta file systems for directories and volumes, comprising:
-
(a) receiving a file system object change request from a user or from another node;
(b) processing the change request to generate associated metadata;
(c) distributing a command containing information regarding file system object change to a plurality of qualified nodes that meet a distribution criteria, the information including file system object metadata;
(d) receiving file system object metadata; and
(e) updating the meta file system structure to represent the file system object change.
-
-
39. A method for building meta file system for files, comprising:
-
(a) receiving new file object or file object change request from a user or from another node;
(b) processing the file object or file object change request to generate metadata;
(c) distributing a command related to the changes to a plurality of nodes based on distribution criteria, the command including file object metadata;
(d) receiving file object metadata;
(e) adding a block index array into the received file object metadata;
(f) placing the file object metadata in an appropriate directory within the meta file system;
(g) storing some block files of the file object in at least one storage device; and
(h) updating block index arrays in respective network nodes based on the distribution map.
-
-
40. A method for deleting a file object, comprising
(a) receiving a delete request from a user or from another node to delete the file object; -
(b) locate the metadata of the file object;
(c) distributing a command related to the delete request to a plurality of nodes based on distribution criteria;
(d) removing metadata from the meta file system to represent deletion of the file system object; and
(e) removing block files from block storage device corresponding to the file system object requested to be deleted.
-
-
41. A method for deleting a file system object, comprising
(a) receiving a delete request from a user or from another node (b) locate the metadata of the file system object; -
(c) distributing a command related to the deletion to a plurality of nodes based on distribution criteria;
(d) removing metadata from a meta file system;
(e) removing a directory from the meta file system that corresponds to the deleting of the file system object.
-
-
42. A method for re-locating a file system object in a metwork, comprising:
-
(a) receiving a re-location request from a user or from another node;
(b) locate the metadata of the file system object;
(c) distributing a command related to the re-location of the object to a plurality of nodes based on a distribution criteria;
(d) changing the metadata of the file system object and all the other related objects in the directory the corresponds to the file system object being re-located; and
(e) relocating the file system object from one location of the meta file system to another location within the meta file system in accordance with the re-location request.
-
-
43. A method for applying distribution policies when distributing a file system object, comprising:
-
(a) configuring a set of distribution policies;
(b) looking up at least one distribution policy using parameters that apply to the distribution; and
(c) allocating network and storage resources based on the distribution policy.
-
-
44. A method for storing multiple data blocks associated to a file in a plurality of storage devices, comprising:
-
(a) creating a block storage indexing array with the number of cells equivalent to the total number of blocks that made up the file;
(b) marking cells that do not have an associated data block with a zero value;
(c) storing data blocks into a plurality of storage devices and indicates in the appropriate cells in the array the index number of the storage devices; and
(d) naming the data block using a hashing algorithm and node-limited path.
-
-
45. A method for serving a random request to a file in a network node, comprising:
-
(a) calculating a cell position in an appropriate block index array using a requesting offset and number of bytes to read;
(b) applying a hashing algorithm using a device index in a cell;
(c) reading data from a block file; and
(d) serving the data.
-
-
46. A method for serving random request to a file in a network node, comprising:
-
(a) calculating a cell position in an appropriate block index array using the requesting offset and number of bytes to read;
(b) issuing a PREPARE command to download the requesting blocks from remote nodes in a network;
(c) downloading the blocks from remote nodes in parallel;
(d) storing data blocks into a plurality of storage devices and indicating in the appropriate cells in the array the index number of the storage devices;
(e) naming the data block using a hashing algorithm and node-limited path; and
(f) serving the data.
-
-
47. A method for applying file server policy when serving a file system, comprising:
-
(a) configuring a set of service policies based on a set of parameters;
(b) looking up at least one policy using at least one parameter; and
(c) applying each policy by allocating network and storage resources for the service.
-
-
48. A method for separating a file system presentation of content from storge of the content, comprising:
-
storing content in storage devices across network nodes; and
using a meta file system and metadata at each node to associate a file system view with data stored in storage devices across the network nodes.
-
-
49. A method for building an virtual in-memory file system that includes an overlay file system, comprising:
-
(a) loading meta file system and metadata to create a file system presentation;
(b) caching meta information that associates the virtual file system objects to the data stored in a plurality of storage devices; and
(c) serving file system requests by mapping the requests to the actual data in the storage using cached meta information.
-
-
50. A method for building a scalable virtual in-memory file system that includes selective and dynamic caching of a virtual file control system:
-
(a) loading part of meta file system and metadata to create a file system presentation;
(b) caching part of the information that associates the virtual file system objects to the data stored in a plurality of storage devices;
(c) serving file system requests by mapping the requests to the actual data in the storage using cached meta information if information exists in a cache;
(d) if information does not exist in cache, tearing down part of the file system presentation information and removing part of the cache that are least frequently accessed, and loading the requesting metadata to re-construct a partial file system presentation that request by users; and
(e) serving file system requests by mapping the requests to the actual data in the storage.
-
-
51. A method for dividing a large file for storage and distribution in an SCDN comprising:
-
dynamically selecting a block size during storage and distribution of content across nodes of the SCDN, including;
using an optimum block size that reduces or avoids storage fragmentation, maximizes transfer efficiency, and is not significantly larger than a “
flash interval”
.
-
-
52. A method for aggregating a storage and file system from a plurality of servers comprising:
-
(a) receiving a file system request to add, delete, or modify a file system object at a first node;
(b) processing the file system request to generate metadata;
(c) distributing the metadata and subset of file system object received at the first node to a plurality of nodes;
(d) integrating information from the first node to receiving nodesa;
(e) receiving a file system request to add, delete, or modify a file system object at a second node in the set of receiving nodes;
(f) processing the file system request to generate metadata;
(g) distributing the metadata and subset of file system object received at the first node to a second plurality of nodes which include the first node; and
(h) integrating metadata information from the second node to the second set of nodes.
-
Specification