Distributed change notifications for a distributed filesystem
First Claim
1. A computer-implemented method for requesting distributed change notifications for 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, wherein cloud controllers distribute updates for modified files that do not need strong read-after-write consistency via lazy incremental metadata snapshots, wherein files that are being collaborated upon by multiple clients and/or client processes need strong read-after-write consistency, wherein changes to files that need strong read-after-write consistency need to be propagated to any clients accessing such files as quickly as possible after such files are written and closed;
receiving at a first cloud controller a request from a client to access a file in the distributed filesystem;
determining that the file needs strong read-after-write consistency; and
sending a registration notification from the first cloud controller to all of the other cloud controllers of the distributed filesystem, wherein the registration notification requests that the first cloud controller receive expedited notification of any changes to the file, wherein cloud controllers track the set of registration notification requests received from other cloud controllers for files in the distributed filesystem, wherein a second cloud controller receives the registration notification request, wherein a given registration notification requests change notifications for a range of filesystem scopes that include a specific file, a directory, and a portion of the distributed filesystem hierarchy;
wherein the second cloud controller subsequently receives a file write and a subsequent file close request for the file from a second client;
wherein the second cloud controller determines from its tracked set of registration notification requests that the first cloud controller has registered to receive change notifications for the modified file and sends a change notification message for the modified file to the first cloud controller;
wherein cloud controllers are configured to send change notification messages for a given modified file to only the set of cloud controllers that have previously sent notification requests with filesystem scopes that apply to the given modified file, thereby supporting strong read-after-write consistency while reducing the number of change notification messages that need to be sent between cloud controllers; and
wherein cloud controllers that did not send notification requests for the given modified file are informed of updates to the given modified file lazily via a subsequent incremental metadata snapshot.
9 Assignments
0 Petitions
Accused Products
Abstract
The disclosed embodiments disclose techniques for providing distributed change notifications for 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 determines that the file needs strong read-after write consistency and sends a registration notification to the other cloud controllers of the distributed filesystem to request immediate notification of any changes to the file.
-
Citations
12 Claims
-
1. A computer-implemented method for requesting distributed change notifications for 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, wherein cloud controllers distribute updates for modified files that do not need strong read-after-write consistency via lazy incremental metadata snapshots, wherein files that are being collaborated upon by multiple clients and/or client processes need strong read-after-write consistency, wherein changes to files that need strong read-after-write consistency need to be propagated to any clients accessing such files as quickly as possible after such files are written and closed; receiving at a first cloud controller a request from a client to access a file in the distributed filesystem; determining that the file needs strong read-after-write consistency; and sending a registration notification from the first cloud controller to all of the other cloud controllers of the distributed filesystem, wherein the registration notification requests that the first cloud controller receive expedited notification of any changes to the file, wherein cloud controllers track the set of registration notification requests received from other cloud controllers for files in the distributed filesystem, wherein a second cloud controller receives the registration notification request, wherein a given registration notification requests change notifications for a range of filesystem scopes that include a specific file, a directory, and a portion of the distributed filesystem hierarchy; wherein the second cloud controller subsequently receives a file write and a subsequent file close request for the file from a second client; wherein the second cloud controller determines from its tracked set of registration notification requests that the first cloud controller has registered to receive change notifications for the modified file and sends a change notification message for the modified file to the first cloud controller; wherein cloud controllers are configured to send change notification messages for a given modified file to only the set of cloud controllers that have previously sent notification requests with filesystem scopes that apply to the given modified file, thereby supporting strong read-after-write consistency while reducing the number of change notification messages that need to be sent between cloud controllers; and wherein cloud controllers that did not send notification requests for the given modified file are informed of updates to the given modified file lazily via a subsequent incremental metadata snapshot. - 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 requesting distributed change notifications for 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, wherein cloud controllers distribute updates for modified files that do not need strong read-after-write consistency via lazy incremental metadata snapshots, wherein files that are being collaborated upon by multiple clients and/or client processes need strong read-after-write consistency, wherein changes to files that need strong read-after-write consistency need to be propagated to any clients accessing such files as quickly as possible after such files are written and closed; receiving at a first cloud controller a request from a client to access a file in the distributed filesystem; determining that the file needs strong read-after-write consistency; and sending a registration notification from the first cloud controller to all of the other cloud controllers of the distributed filesystem, wherein the registration notification requests that the first cloud controller receive expedited notification of any changes to the file, wherein cloud controllers track the set of registration notification requests received from other cloud controllers for files in the distributed filesystem, wherein a second cloud controller receives the registration notification request, wherein a given registration notification requests change notifications for a range of filesystem scopes that include a specific file, a directory, and a portion of the distributed filesystem hierarchy; wherein the second cloud controller subsequently receives a file write and a subsequent file close request for the file from a second client; wherein the second cloud controller determines from its tracked set of registration notification requests that the first cloud controller has registered to receive change notifications for the modified file and sends a change notification message for the modified file to the first cloud controller wherein cloud controllers are configured to send change notification messages for a given modified file to only the set of cloud controllers that have previously sent notification requests with filesystem scopes that apply to the given modified file, thereby supporting strong read-after-write consistency while reducing the number of change notification messages that need to be sent between cloud controllers; and wherein cloud controllers that did not send notification requests for the given modified file are informed of updates to the given modified file lazily via a subsequent incremental metadata snapshot. - View Dependent Claims (10, 11)
-
-
12. A cloud controller that requests distributed change notifications for 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 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, wherein cloud controllers distribute updates for modified files that do not need strong read-after-write consistency via lazy incremental metadata snapshots, wherein files that are being collaborated upon by multiple clients and/or client processes need strong read-after-write consistency, wherein changes to files that need strong read-after-write consistency need to be propagated to any clients accessing such files as quickly as possible after such files are written and closed; wherein the cloud controller is configured to receive a request from a client to access a file in the distributed filesystem; wherein the storage management mechanism determines that the file needs strong read-after-write consistency; and wherein the storage management mechanism is configured to send a registration notification from the first cloud controller to all of the other cloud controllers of the distributed filesystem to request that the cloud controller receive expedited notification of any changes to the file, wherein cloud controllers track the set of registration notification requests received from other cloud controllers for files in the distributed filesystem, wherein a second cloud controller receives the registration notification request, wherein a given registration notification requests change notifications for a range of filesystem scopes that include a specific file, a directory, and a portion of the distributed filesystem hierarchy; wherein the second cloud controller subsequently receives a file write and a subsequent file close request for the file from a second client; wherein the second cloud controller determines from its tracked set of registration notification requests that the cloud controller has registered to receive change notifications for the modified file and sends a change notification message for the modified file to the cloud controller wherein cloud controllers are configured to send change notification messages for a given modified file to only the set of cloud controllers that have previously sent notification requests with filesystem scopes that apply to the given modified file, thereby supporting strong read-after-write consistency while reducing the number of change notification messages that need to be sent between cloud controllers; and wherein cloud controllers that did not send notification requests for the given modified file are informed of updates to the given modified file lazily via a subsequent incremental metadata snapshot.
-
Specification