Synchronizing file updates between two cloud controllers of a distributed filesystem
First Claim
1. A computer-implemented method for synchronizing file updates between two cloud controllers of a distributed filesystem, the method comprising:
- collectively managing the data of the distributed filesystem using two or more cloud controllers, wherein collectively managing the data comprises storing the data for the distributed filesystem in one or more cloud storage systems, wherein the cloud controllers cache and ensure data consistency for data stored in the cloud storage systems;
receiving at a first cloud controller a client request to access a file in the distributed filesystem, wherein cloud controllers track version information for each file, wherein the tracked version information for the file on a cloud controller is updated whenever the cloud controller either updates the metadata for the file in response to a client write or receives a metadata update for the file from another cloud controller;
sending a synchronization update request for the file to a second cloud controller, wherein sending the synchronization update request comprises;
sending a version identifier for the most recent version of the file currently available on the first cloud controller to the second cloud controller; and
using the version identifier to determine that the file has been modified on the second cloud controller and that the version of the file currently available on the first cloud controller is out-of-datewherein upon receiving the synchronization update request the second cloud controller is configured to;
use the version identifier to determine a set of metadata deltas that are needed to update the out-of-date version of the file on the first cloud controller to the updated version of the file on the second cloud controller;
compress the set of metadata deltas; and
send the compressed set of metadata deltas to the first cloud controller in a synchronization update; and
receiving the synchronization update for the file from the second cloud controller in response to the synchronization update request;
wherein using the version identifier to determine the set of metadata deltas facilitates determining the differences between the out-of-date file version and the current file version without needing to cache or download all of the data for the file on either cloud controller.
9 Assignments
0 Petitions
Accused Products
Abstract
The disclosed embodiments disclose techniques for synchronizing file updates between two cloud controllers of a distributed filesystem. Two or more cloud controllers collectively manage distributed filesystem data that is stored in the cloud storage systems; the cloud controllers ensure data consistency for the stored data, and each cloud controller caches portions of the distributed filesystem. During operation, a cloud controller receives a request from a client to access a file in the distributed filesystem. The cloud controller sends a synchronization update request for the file to a second cloud controller and in response receives a synchronization update for the file from the second cloud controller.
14 Citations
14 Claims
-
1. A computer-implemented method for synchronizing file updates between two cloud controllers of a distributed filesystem, the method comprising:
-
collectively managing the data of the distributed filesystem using two or more cloud controllers, wherein collectively managing the data comprises storing the data for the distributed filesystem in one or more cloud storage systems, wherein the cloud controllers cache and ensure data consistency for data stored in the cloud storage systems; receiving at a first cloud controller a client request to access a file in the distributed filesystem, wherein cloud controllers track version information for each file, wherein the tracked version information for the file on a cloud controller is updated whenever the cloud controller either updates the metadata for the file in response to a client write or receives a metadata update for the file from another cloud controller; sending a synchronization update request for the file to a second cloud controller, wherein sending the synchronization update request comprises; sending a version identifier for the most recent version of the file currently available on the first cloud controller to the second cloud controller; and using the version identifier to determine that the file has been modified on the second cloud controller and that the version of the file currently available on the first cloud controller is out-of-date wherein upon receiving the synchronization update request the second cloud controller is configured to; use the version identifier to determine a set of metadata deltas that are needed to update the out-of-date version of the file on the first cloud controller to the updated version of the file on the second cloud controller; compress the set of metadata deltas; and send the compressed set of metadata deltas to the first cloud controller in a synchronization update; and receiving the synchronization update for the file from the second cloud controller in response to the synchronization update request; wherein using the version identifier to determine the set of metadata deltas facilitates determining the differences between the out-of-date file version and the current file version without needing to cache or download all of the data for the file on either cloud controller. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8)
-
-
9. A non-transitory computer-readable storage medium storing instructions that when executed by a computer cause the computer to perform a method for synchronizing file updates between two cloud controllers of a distributed filesystem, the method comprising:
-
collectively managing the data of the distributed filesystem using two or more cloud controllers, wherein collectively managing the data comprises storing the data for the distributed filesystem in one or more cloud storage systems, wherein the cloud controllers cache and ensure data consistency for data stored in the cloud storage systems; receiving at a first cloud controller a client request to access a file in the distributed filesystem, wherein cloud controllers track version information for each file, wherein the tracked version information for the file on a cloud controller is updated whenever the cloud controller either updates the metadata for the file in response to a client write or receives a metadata update for the file from another cloud controller; sending a synchronization update request for the file to a second cloud controller, wherein sending the synchronization update request comprises; sending a version identifier for the most recent version of the file currently available on the first cloud controller to the second cloud controller; and using the version identifier to determine that the file has been modified on the second cloud controller and that the version of the file currently available on the first cloud controller is out-of-date wherein upon receiving the synchronization update request the second cloud controller is configured to; use the version identifier to determine a set of metadata deltas that are needed to update the out-of-date version of the file on the first cloud controller to the updated version of the file on the second cloud controller; compress the set of metadata deltas; and send the compressed set of metadata deltas to the first cloud controller in a synchronization update; and receiving the synchronization update for the file from the second cloud controller in response to the synchronization update request; wherein using the version identifier to determine the set of metadata deltas facilitates determining the differences between the out-of-date file version and the current file version without needing to cache or download all of the data for the file on either cloud controller. - View Dependent Claims (10, 11, 12, 13)
-
-
14. A cloud controller that receives a synchronization update from a second cloud controller in a distributed filesystem, comprising:
-
a processor; a storage mechanism that stores metadata for the distributed filesystem; and a storage management mechanism; wherein two or more cloud controllers collectively manage the data of the distributed filesystem; wherein the cloud controller is configured to receive a request from a client to access a file in the distributed filesystem, wherein cloud controllers track version information for each file, wherein the tracked version information for the file on the cloud controller is updated whenever the cloud controller either updates the metadata for the file in response to a client write or receives a metadata update for the file from another cloud controller; wherein the storage management mechanism sends a synchronization update request for the file to a second cloud controller, wherein sending the synchronization update request comprises; sending a version identifier for the most recent version of the file currently available on the cloud controller to the second cloud controller; and using the version identifier to determine that the file has been modified on the second cloud controller and that the version of the file currently available on the cloud controller is out-of-date; wherein upon receiving the synchronization update request the second cloud controller is configured to; use the version identifier to determine a set of metadata deltas that are needed to update the out-of-date version of the file on the cloud controller to the updated version of the file on the second cloud controller; compress the set of metadata deltas; and send the compressed set of metadata deltas to the cloud controller in a synchronization update; wherein the storage management mechanism is configured to receive the synchronization update for the file from the second cloud controller in response to the synchronization update request; and wherein using the version identifier to determine the set of metadata deltas facilitates determining the differences between the out-of-date file version and the current file version without needing to cache or download all of the data for the file on either cloud controller.
-
Specification