Synchronization protocol for multi-premises hosting of digital content items
First Claim
Patent Images
1. A method, comprising:
- detecting creation or modification of a content item;
obtaining a first set of identifiers of content item blocks of the created or modified content item;
determining a content item namespace to which the content item belongs;
sending, to a metadata server of a content management service, a user account identifier;
based, at least in part, on sending the user account identifier, obtaining from the metadata server, data representing assignments of the content item namespace to a plurality of candidate content item block servers;
selecting, from among the plurality of candidate content item block servers to which the content item namespace is assigned, a target content item block server;
wherein the selecting the target content item block server is based, at least in part, on determining that an identifier of the content item namespace is associated with an identifier of the target content item block server in the data obtained from the metadata server representing the assignments of the content item namespace to the plurality of candidate content item block servers;
sending the first set of identifiers to a metadata server;
based, at least in part, on the selecting the target content item block server and the sending the first set of identifiers to the metadata server, receiving a second set of one or more identifiers from the metadata server, the second set of one or more identifiers identifying one or more content item blocks of the content item that are not stored at the target content item block server;
uploading, to the target content item block server, the identified one or more content item blocks of the content item that are not stored at the target content item block server; and
wherein the method is performed by a computing system having one or more processors and storage media storing one or more programs, the one or more programs including instructions configured to perform the method, the instructions executed by the one or more processors to perform the method.
3 Assignments
0 Petitions
Accused Products
Abstract
A synchronization protocol for multi-premises hosting of digital content items. In one embodiments, for example, a method, comprising: detecting creation or modification of a content item; determining a content item namespace to which the content item belongs; obtaining an identifier of a block server to which the content item namespace is assigned; and uploading any content item blocks of the content item to the block server that are not already stored at the block server.
-
Citations
21 Claims
-
1. A method, comprising:
-
detecting creation or modification of a content item; obtaining a first set of identifiers of content item blocks of the created or modified content item; determining a content item namespace to which the content item belongs; sending, to a metadata server of a content management service, a user account identifier; based, at least in part, on sending the user account identifier, obtaining from the metadata server, data representing assignments of the content item namespace to a plurality of candidate content item block servers; selecting, from among the plurality of candidate content item block servers to which the content item namespace is assigned, a target content item block server; wherein the selecting the target content item block server is based, at least in part, on determining that an identifier of the content item namespace is associated with an identifier of the target content item block server in the data obtained from the metadata server representing the assignments of the content item namespace to the plurality of candidate content item block servers; sending the first set of identifiers to a metadata server; based, at least in part, on the selecting the target content item block server and the sending the first set of identifiers to the metadata server, receiving a second set of one or more identifiers from the metadata server, the second set of one or more identifiers identifying one or more content item blocks of the content item that are not stored at the target content item block server; uploading, to the target content item block server, the identified one or more content item blocks of the content item that are not stored at the target content item block server; and wherein the method is performed by a computing system having one or more processors and storage media storing one or more programs, the one or more programs including instructions configured to perform the method, the instructions executed by the one or more processors to perform the method. - View Dependent Claims (2, 3, 4, 5)
-
-
6. A method performed by a computing system having one or more processors and storage media storing one or more programs, the one or more programs including instructions configured to perform the method, the instructions executed by the one or more processors to perform the method, the method comprising:
-
sending a current client journal cursor value to a metadata server of a content management service, the current client journal cursor value associated with a content item namespace and a first content item block server to which the content item namespace is assigned; based, at least in part, on the sending the current client journal cursor value, receiving, from the metadata server, a first set of content item block identifiers corresponding to at least one content item block that makes up a content item, wherein the content item belongs to the content item namespace; based, at least in part, on the receiving the first set of content item block identifiers, determining one or more content item blocks of the content item that are not locally stored by the computing system; sending, to the metadata server, a user account identifier associated with the content item; based, at least in part, on the sending the user account identifier, obtaining, from the metadata server, data representing assignments of the content item namespace to a plurality of candidate content item block servers, the plurality of candidate content item block servers including the first content item block server and a second content item block server; selecting, from among the plurality of candidate content item block servers to which the content item namespace is assigned, the second content item block server from which to download the one or more content item blocks of the content item that were not locally stored by the computing system; wherein the selecting the second content item block server is based, at least in part, on determining that an identifier of the content item namespace is associated with an identifier of the second content item block server in the data obtained from the metadata server representing the assignments of the content item namespace to the plurality of candidate content item block servers; and based, at least in part, on selecting the second content item block server, downloading, to the computing system from the second content item block server, the one or more content item blocks of the content item that were not locally stored by the computing system. - View Dependent Claims (7, 8, 9)
-
-
10. A method, comprising:
-
detecting a new content item belonging to a content item namespace; determining a client at which the content item namespace is mounted; notifying the client that an update to the content item namespace is available; receiving, from the client, a current client journal cursor value, the current client journal cursor value associated with the content item namespace and a content item block server to which the content item namespace is assigned; based, at least in part, on the received current client journal cursor value, obtaining a set of identifiers of content item blocks, of which the new content item is composed, stored at the content item block server; sending the set of content item block identifiers to the client; wherein the content item namespace is assigned to a plurality of content item block servers, the plurality of content item block servers to which the content item namespace is assigned including the content item block server; and wherein the method is performed by a computing system having one or more processors and storage media storing one or more programs, the one or more programs including instructions configured to perform the method, the instructions executed by the one or more processors to perform the method. - View Dependent Claims (11, 12, 13)
-
-
14. A method, comprising:
-
receiving, from a client, (A) an identifier of a content item namespace and (B) a first set of identifiers of first content item blocks, the first content item blocks making up a first version of a content item stored at the client, the content item belonging to the content item namespace; based, at least in part, on the receiving the identifier of the content item namespace and the first set of identifiers of first content item blocks from the client, selecting, from among a plurality of candidate content item block servers to which the content item namespace is assigned, a particular content item block server to which the content item namespace is assigned; based, at least in part, on the first set of identifiers, determining a second set of identifiers of second content item blocks, the second content item blocks making up a second version of the content item stored at the particular content item block server; sending, to the client, an indication of the selection of the particular content item block server and one or more content item block identifiers that are in the first set that are not in the second set; and wherein the method is performed by a computing system having one or more processors and storage media storing one or more programs, the one or more programs including instructions configured to perform the method, the instructions executed by the one or more processors to perform the method. - View Dependent Claims (15, 16, 17, 18, 19, 20, 21)
-
Specification