Scalable file replication and web-based access
First Claim
Patent Images
1. A system comprising:
- a processor; and
a memory coupled to the processor, the memory comprising computer-program instructions executable by the processor to perform operations comprising;
replicating a file with a replication entity to produce a staged file by determining whether the staged file is acceptable to a file system via determinations comprising;
in an event a directory corresponding to a unique global identifier (UID) of the parent resource is identified, contents of the staged file are accepted in the file system;
in an event meta-data corresponding to the UID of the parent indicates that the directory corresponding to the UID of the parent resource has been deleted, contents of the staged file are accepted in the file system responsive to re-animating the deleted directory corresponding to the UID of the parent resource by downloading the directory corresponding to the UID of the parent resource from a peer;
in an event meta-data corresponding to the UID of the parent indicates that the directory corresponding to the UID of the parent resource has been deleted and re-animating the deleted directory corresponding to the UID of the parent resource by downloading the directory corresponding to the UID of the parent resource from a peer is not successful, contents of the staged file are not accepted in the file system;
in an event no directory corresponding to the UID of the parent resource is identified, contents of the staged file are not accepted in the file system;
storing the staged file in a scalable binary large object (blob) store located on a first node, wherein the scalable blob store includes put, get, and delete operations in order to reduce storage semantics as compared to the file system, thereby minimizing file system constraints;
receiving from the scalable blob store, a metadata write request to write;
replication metadata,file system metadata for the staged file, anda locator token;
performing the metadata write to obtain;
the replication metadata,the file system metadata for the staged file, andthe locator token;
storing, in a scalable metadata store located on a second node, the replication metadata, file system metadata for the staged file, and the locator token for the staged file from the scalable blob store;
using the locator token, in response to a web client request, to locate and retrieve a datastream associated with the staged file;
merging the replication metadata and blob store metadata to facilitate combined transactions.
2 Assignments
0 Petitions
Accused Products
Abstract
Various embodiments introduce the notion of a replication entity which implements a highly scalable file replication system. In one embodiment, the replication entity resides in the form of a scalable replication service. In at least some embodiments, the replication service provides a “drive in the sky” facility that can be used by individuals, such as subscribers, to synchronize their individual machines, such that their files are automatically replicated to a safe and always-on location. Alternatively or additionally, individuals such as subscribers can also access their files via a web-based interface when they are away from their machines.
59 Citations
20 Claims
-
1. A system comprising:
-
a processor; and a memory coupled to the processor, the memory comprising computer-program instructions executable by the processor to perform operations comprising; replicating a file with a replication entity to produce a staged file by determining whether the staged file is acceptable to a file system via determinations comprising; in an event a directory corresponding to a unique global identifier (UID) of the parent resource is identified, contents of the staged file are accepted in the file system; in an event meta-data corresponding to the UID of the parent indicates that the directory corresponding to the UID of the parent resource has been deleted, contents of the staged file are accepted in the file system responsive to re-animating the deleted directory corresponding to the UID of the parent resource by downloading the directory corresponding to the UID of the parent resource from a peer; in an event meta-data corresponding to the UID of the parent indicates that the directory corresponding to the UID of the parent resource has been deleted and re-animating the deleted directory corresponding to the UID of the parent resource by downloading the directory corresponding to the UID of the parent resource from a peer is not successful, contents of the staged file are not accepted in the file system; in an event no directory corresponding to the UID of the parent resource is identified, contents of the staged file are not accepted in the file system; storing the staged file in a scalable binary large object (blob) store located on a first node, wherein the scalable blob store includes put, get, and delete operations in order to reduce storage semantics as compared to the file system, thereby minimizing file system constraints; receiving from the scalable blob store, a metadata write request to write; replication metadata, file system metadata for the staged file, and a locator token; performing the metadata write to obtain; the replication metadata, the file system metadata for the staged file, and the locator token; storing, in a scalable metadata store located on a second node, the replication metadata, file system metadata for the staged file, and the locator token for the staged file from the scalable blob store; using the locator token, in response to a web client request, to locate and retrieve a datastream associated with the staged file; merging the replication metadata and blob store metadata to facilitate combined transactions. - View Dependent Claims (2, 3, 4, 5, 6, 7)
-
-
8. A system comprising:
-
one or more replication front ends individual ones of which being associated with a file replication engine that is executable on one or more processors to provide state-based file replication via exchange of version vectors; at least one scalable binary large object (blob) store for storing file data in a manner that does not require full file system semantics; at least one scalable metadata store for storing associated file metadata and a locator token for the file data in the at least one scalable blob store, wherein the system is embodied as a service, and wherein a replication client can participate in bi-directional replication with the replication service using the same replication protocols that would be utilized when replicating with another replication client running on a file system; and one or more scalable file service access nodes at least some of which being configured to; marshal files into a staged file format, the staged file format comprising; a compressed marshaled representation of a file, a signature of the file for differential transfer of the file, and a jump table for navigating in the compressed marshaled representation of the file, and unmarshal staged files. - View Dependent Claims (9, 10, 11, 12)
-
-
13. A computer-implemented method comprising:
-
receiving, with a replication entity via the computer, a staged file; sending, via the computer, to a storage access node, a write request for the staged file; sending, via the computer, the staged file to a scalable binary large object (blob) store, wherein the scalable blob store; stores the staged file via a marshaled replicated blob; and provides reduced storage semantics comprising object put, get, and delete operations; receiving, via the computer, from the scalable blob store, a locator token for the staged file; sending, via the computer, to the storage access node, a metadata write request to write replication metadata, file system metadata for the staged file, and the locator token; forwarding, via the computer, the metadata write request to a scalable metadata store; and committing, via the computer, said metadata write request on said scalable metadata store, wherein the committing of the metadata write request comprises storing the replication metadata, the locator token and the file system metadata in the scalable metadata store. - View Dependent Claims (14, 15, 16, 17, 18, 19, 20)
-
Specification