IP Library Granted Patent US 9,613,048
Granted Patent B2
US 9,613,048 · App. 14/482,934 · Granted Apr 4, 2017

Sending interim notifications to a client of a distributed filesystem

View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 9,613,048
App. No.
14/482,934
Granted
Apr 4, 2017
Kind
B2
Abstract

The disclosed embodiments disclose techniques for sending interim notifications to a client of a distributed filesystem. Two or more cloud controllers collectively manage distributed filesystem data that is stored in one or more 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 client request to access a file. The cloud controller determines that it will need to contact at least one of another peer cloud controller or a cloud storage system to service the request, and sends an interim notification to the client to notify the client that the request is pending.

Claims (39)

1. A computer-implemented method for sending interim notifications to a client 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 request from the client to access a file, wherein the client is configured to abort the request if the duration of the request exceeds a timeout interval;

determining from at least one of a level of consistency associated with the file and the type of file access being requested by the client for the file that the first cloud controller needs to initiate a remote request to contact at least one of a second, distinct cloud controller or a cloud storage system to service the request, wherein the first cloud controller determines that the request comprises a write operation that accesses the most recently updated version of the file, wherein the second cloud controller is the owning cloud controller for the file, wherein the remote request comprises contacting the second cloud controller to synchronize recent updates for the file to the first cloud controller and to claim ownership for the file to facilitate client write access for the file; and

sending an interim notification from the first cloud controller to the client before the timeout interval expires to notify the client that the request is pending and to ensure that the client does not abort the request, wherein sending the interim notification comprises tracking a set of delays associated with accessing the second cloud controller, determining from the tracked information that the remote request is likely to exceed the client timeout interval, and ensuring that the client receives the interim notification before the timeout interval is exceeded.

2. The computer-implemented method of claim 1 , wherein sending the interim notification to the client further comprises:

calculating an initial interval that gives the remote request as much additional time as possible while also ensuring that the timeout interval is not exceeded; and

delaying sending the interim notification from the first cloud controller to the client until the initial interval has expired.

3. The computer-implemented method of claim 1 , wherein sending the interim notification to the client further comprises:

determining that the remote request may involve substantial delay that exceeds multiple client timeout intervals; and

sending multiple interim notifications to the client to indicate to the client that the request is still pending but needs additional time.

4. The computer-implemented method of claim 1 ,

wherein the client is configured to send asynchronous file access requests to the first cloud controller; and

wherein, upon receiving the interim notification, the client proceeds to initiate other file operations and file requests to the first cloud controller instead of busy-waiting for the request, thereby improving file access performance for the client.

5. The computer-implemented method of claim 1 ,

wherein cloud controllers are configured to handle client and cloud controller requests asynchronously, thereby improving file access performance for the distributed filesystem; and

wherein the first cloud controller does not block on remote operations and continues to process new incoming client requests, send interim notifications to clients, and initiate additional remote operations while waiting for a given remote request to complete.

6. A non-transitory computer-readable storage medium storing instructions that when executed by a computer cause the computer to perform a method for sending interim notifications to a client 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 request from the client to access a file, wherein the client is configured to abort the request if the duration of the request exceeds a timeout interval;

determining from at least one of a level of consistency associated with the file and the type of file access being requested by the client for the file that the first cloud controller needs to initiate a remote request to contact at least one of a second, distinct cloud controller or a cloud storage system to service the request, wherein the first cloud controller determines that the request comprises a write operation that accesses the most recently updated version of the file, wherein the second cloud controller is the owning cloud controller for the file, wherein the remote request comprises contacting the second cloud controller to synchronize recent updates for the file to the first cloud controller and to claim ownership for the file to facilitate client write access for the file; and

sending an interim notification from the first cloud controller to the client before the timeout interval expires to notify the client that the request is pending and to ensure that the client does not abort the request, wherein sending the interim notification comprises tracking a set of delays associated with accessing the second cloud controller, determining from the tracked information that the remote request is likely to exceed the client timeout interval, and ensuring that the client receives the interim notification before the timeout interval is exceeded.

7. The non-transitory computer-readable storage medium of claim 6 , wherein sending the interim notification to the client further comprises:

calculating an initial interval that gives the remote request as much additional time as possible while also ensuring that the timeout interval is not exceeded; and

delaying sending the interim notification from the first cloud controller to the client until the initial interval has expired.

8. The non-transitory computer-readable storage medium of claim 6 , wherein sending the interim notification to the client further comprises:

determining that the remote request may involve substantial delay that exceeds multiple client timeout intervals; and

sending multiple interim notifications to the client to indicate to the client that the request is still pending but needs additional time.

9. The non-transitory computer-readable storage medium of claim 6 ,

wherein the client is configured to send asynchronous file access requests to the first cloud controller; and

wherein, upon receiving the interim notification, the client proceeds to initiate other file operations and file requests to the first cloud controller instead of busy-waiting for the request, thereby improving file access performance for the client.

10. A cloud controller that sends interim notifications to a client of a distributed filesystem, comprising:

a processor; and

a local storage device that stores a copy of the metadata for the distributed filesystem;

wherein two or more cloud controllers collectively manage the data of the distributed filesystem;

wherein the cloud controller:

receives a request from the client to access a file, wherein the client is configured to abort the request if the duration of the request exceeds a timeout interval;

determines from at least one of a level of consistency associated with the file and the type of file access being requested by the client for the file that the cloud controller needs to initiate a remote request to contact at least one of a second, distinct cloud controller or a cloud storage system to service the request, wherein the cloud controller determines that the request comprises a write operation that accesses the most recently updated version of the file, wherein the second cloud controller is the owning cloud controller for the file, wherein the remote request comprises contacting the second cloud controller to synchronize recent updates for the file to the cloud controller and to claim ownership for the file to facilitate client write access for the file; and

sends an interim notification to the client before the timeout interval expires to notify the client that the request is pending and to ensure that the client does not abort the request, wherein sending the interim notification comprises tracking a set of delays associated with accessing the second cloud controller, determining from the tracked information that the remote request is likely to exceed the client timeout interval, and ensuring that the client receives the interim notification before the timeout interval is exceeded.

Assignments (9)
PATENT SECURITY AGREEMENT Recorded Aug 25, 2023
From: PANZURA, LLC
To: ALTER DOMUS (US) LLC
Reel/Frame 064716/0982 →
RELEASE OF SECURITY INTEREST Recorded Jun 16, 2023
From: CANADIAN IMPERIAL BANK OF COMMERCE
To: PANZURA, LLC
Reel/Frame 064006/0786 →
CORRECTIVE ASSIGNMENT TO CORRECT THE THE ASSIGNOR'S NAME AND EXECUTION DATE PREVIOUSLY RECORDED AT REEL: 059744 FRAME: 0965. ASSIGNOR(S) HEREBY CONFIRMS THE ASSIGNMENT. Recorded Feb 22, 2023
From: PANZURA, LLC
To: CANADIAN IMPERIAL BANK OF COMMERCE
Reel/Frame 062955/0518 →
CORRECTIVE ASSIGNMENT TO CORRECT THE CONVEYING PARTY DATA FROM PANZURRA, LLC TO PANZURA, LLC AND CORRECT PROPERTY TYPES TO PATENT FOR PROPERTIES 31-34 AND 39 PREVIOUSLY RECORDED ON REEL 059744 FRAME 0965. ASSIGNOR(S) HEREBY CONFIRMS THE SECURITY INTEREST. Recorded Feb 17, 2023
From: PANZURA, LLC
To: CANADIAN IMPERIAL BANK OF COMMERCE
Reel/Frame 062928/0524 →
SECURITY INTEREST Recorded Apr 30, 2022
From: PANZURRA, LLC
To: CANADIAN IMPERIAL BANK OF COMMERCE
Reel/Frame 059744/0965 →
CHANGE OF ADDRESS Recorded Apr 1, 2022
From: PANZURA, LLC
To: PANZURA, LLC
Reel/Frame 059570/0712 →
MERGER Recorded Jan 5, 2022
From: PANZURA, INC.
To: NEW PANZURA, LLC
Reel/Frame 058555/0502 →
CHANGE OF NAME Recorded Jan 5, 2022
From: NEW PANZURA, LLC
To: PANZURA, LLC
Reel/Frame 058571/0140 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 24, 2014
From: LIN, YUN; TAYLOR, JOHN RICHARD
To: PANZURA, INC.
Reel/Frame 033804/0271 →