IP Library Granted Patent US 10,168,912
Granted Patent B2
US 10,168,912 · App. 15/046,059 · Granted Jan 1, 2019

Short stroking and data tiering for 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 10,168,912
App. No.
15/046,059
Granted
Jan 1, 2019
Kind
B2
Abstract

The disclosed embodiments disclose techniques for optimizing caching performance for 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 cloud controllers cache portions of the distributed filesystem on hard drives with rotating disk platters. The outside portions of these disk platters have higher I/O bandwidth than the inside portions of the disk platters. During operation, a cloud controller determines that a hot subset of cached data is likely to be accessed frequently by clients, and stores this hot subset to an outside portion of a disk platter. The cloud controller further determines that a cold subset of cache data is less likely to be accessed by clients, and stores the cold subset on an inside portion of a disk platter.

Claims (80)

1. A computer-implemented method for optimizing caching performance 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 file 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 a cloud controller comprises a hard drive that caches distributed-filesystem data, wherein the hard drive comprises one or more rotating disk platters;

collectively presenting a unified namespace for the distributed filesystem to the clients of the distributed filesystem via the two or more cloud controllers, wherein the clients access the distributed filesystem via the cloud controllers, wherein the cloud controllers cache a subset of the file data from the cloud storage systems that is being actively accessed by each respective cloud controller's clients, wherein new file data received by each cloud controller from its clients is written to the one or more cloud storage systems;

maintaining at each cloud controller a copy of the metadata for the files stored in the distributed filesystem, wherein changes to the metadata for the distributed filesystem are communicated to the set of cloud controllers for the distributed filesystem to ensure that the clients of the distributed filesystem share a consistent view of the files in the distributed filesystem;

determining that a hot subset of cached data stored on the hard drive is likely to be accessed frequently by clients of the cloud controller;

determining that a cold subset of cached data stored on the hard drive is less likely to be accessed by clients of the cloud controller;

storing the hot subset of cached data on an outside portion of a disk platter of the hard drive; and

storing the cold subset of cached data on an inside portion of the disk platter;

wherein the outside portion of the disk platter has higher I/O bandwidth than the inside portion of the disk platter.

2. The computer-implemented method of claim 1 , wherein locating the hot subset of cached data on the outside portion of the disk platter comprises:

maintaining a linear gradient of data temperatures across the disk platter, wherein higher data temperatures indicate a higher likelihood of subsequent accesses; and

storing cached data across the disk platter according to calculated data temperatures and projected access patterns.

3. The computer-implemented method of claim 2 , wherein the hot subset of cached data initially has a low data temperature, wherein locating the hot subset of cached data on the outside portion of the disk platter comprises:

receiving a client request to access the hot subset of cached data;

determining based on a set of tracked accesses for the hot subset of cached data that the data temperature of the hot subset has increased; and

moving the hot subset of cached data from a section of the disk platter that is associated with a lower data temperature to the outside portion of the disk platter.

4. The computer-implemented method of claim 3 ,

wherein the cloud controller determines the data temperature and location for the hot subset of cached data on the disk platter based on the frequency and recency of data use for the hot subset of cached data; and

wherein raising the data temperature for the hot subset of cached data comprises determining that the hot subset of cached data is being accessed frequently by multiple users in a recent timeframe.

5. The computer-implemented method of claim 4 , wherein the cloud controller determines the data temperature for the hot subset of cached data based on:

the number of users that have accessed the hot subset of cached data;

the number of times each user has accessed hot subset of cached data;

the total number of times the hot subset of cached data has been accessed;

the frequency and time distribution of accesses for the hot subset of cached data; and

how recently users have accessed the hot subset of cached data.

6. The computer-implemented method of claim 5 ,

wherein upon receiving a first request to access a subset of cached data, the cloud controller is configured to, upon determining that the subset of cached data is being accessed by a single user and has not been accessed in a long time interval, continue to consider the subset of cached data to have a low data temperature; and

wherein upon receiving a subsequent request from a second distinct user in a short subsequent timeframe, the cloud controller increases the data temperature for the subset of cached data.

7. The computer-implemented method of claim 5 ,

wherein cloud controllers exchange access records for their locally cached data; and

wherein the cloud controller considers data accesses on remote cloud controllers when determining data temperatures for locally cached data.

8. The computer-implemented method of claim 2 , wherein the cloud controller limits the rate at which data on the inside portion of the disk platter can be accessed.

9. The computer-implemented method of claim 8 ,

wherein the cloud controller delays requests to access the inside portion of the disk platter while performing multiple subsequent accesses to the outside portion of the disk platter;

wherein the cloud controller batches two or more requests to the inside portion of the disk platter together to amortize seek delays to the inside portion of the disk platter; and

wherein rate-limiting accesses to the inside portion of the disk platter facilitates optimizing I/O performance for hot cached data that is cached on the hard drive.

10. The computer-implemented method of claim 2 ,

wherein the cloud controller further comprises a solid-state drive (SSD);

wherein the cloud controller is configured to cache metadata for the distributed filesystem on the SSD; and

wherein the cloud controller is configured to cache file data for the distributed filesystem on the hard drive using linear gradient of data temperatures.

11. A non-transitory computer-readable storage medium storing instructions that when executed by a computer cause the computer to perform a method for optimizing caching performance 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 file 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 a cloud controller comprises a hard drive that caches distributed-filesystem data, wherein the hard drive comprises one or more rotating disk platters;

collectively presenting a unified namespace for the distributed filesystem to the clients of the distributed filesystem via the two or more cloud controllers, wherein the clients access the distributed filesystem via the cloud controllers, wherein the cloud controllers cache a subset of the file data from the cloud storage systems that is being actively accessed by each respective cloud controller's clients, wherein new file data received by each cloud controller from its clients is written to the one or more cloud storage systems;

maintaining at each cloud controller a copy of the metadata for the files stored in the distributed filesystem, wherein changes to the metadata for the distributed filesystem are communicated to the set of cloud controllers for the distributed filesystem to ensure that the clients of the distributed filesystem share a consistent view of the files in the distributed filesystem;

determining that a hot subset of cached data stored on the hard drive is likely to be accessed frequently by clients of the cloud controller;

determining that a cold subset of cached data stored on the hard drive is less likely to be accessed by clients of the cloud controller;

storing the hot subset of cached data on an outside portion of a disk platter of the hard drive; and

storing the cold subset of cached data on an inside portion of the disk platter;

wherein the outside portion of the disk platter has higher I/O bandwidth than the inside portion of the disk platter.

12. The non-transitory computer-readable storage medium of claim 11 , wherein locating the hot subset of cached data on the outside portion of the disk platter comprises:

maintaining a linear gradient of data temperatures across the disk platter, wherein higher data temperatures indicate a higher likelihood of subsequent accesses; and

storing cached data across the disk platter according to calculated data temperatures and projected access patterns.

13. The non-transitory computer-readable storage medium of claim 12 , wherein the hot subset of cached data initially has a low data temperature, wherein locating the hot subset of cached data on the outside portion of the disk platter comprises:

receiving a client request to access the hot subset of cached data;

determining based on a set of tracked accesses for the hot subset of cached data that the data temperature of the hot subset has increased; and

moving the hot subset of cached data from a section of the disk platter that is associated with a lower data temperature to the outside portion of the disk platter.

14. The non-transitory computer-readable storage medium of claim 13 ,

wherein the cloud controller determines the data temperature and location for the hot subset of cached data on the disk platter based on the frequency and recency of data use for the hot subset of cached data; and

wherein raising the data temperature for the hot subset of cached data comprises determining that the hot subset of cached data is being accessed frequently by multiple users in a recent timeframe.

15. The non-transitory computer-readable storage medium of claim 14 , wherein the cloud controller determines the data temperature for the hot subset of cached data based on:

the number of users that have accessed the hot subset of cached data;

the number of times each user has accessed hot subset of cached data;

the total number of times the hot subset of cached data has been accessed;

the frequency and time distribution of accesses for the hot subset of cached data; and

how recently users have accessed the hot subset of cached data.

16. The non-transitory computer-readable storage medium of claim 15 ,

wherein upon receiving a first request to access a subset of cached data, the cloud controller is configured to, upon determining that the subset of cached data is being accessed by a single user and has not been accessed in a long time interval, continue to consider the subset of cached data to have a low data temperature; and

wherein upon receiving a subsequent request from a second distinct user in a short subsequent timeframe, the cloud controller increases the data temperature for the subset of cached data.

17. The non-transitory computer-readable storage medium of claim 15 ,

wherein cloud controllers exchange access records for their locally cached data; and

wherein the cloud controller considers data accesses on remote cloud controllers when determining data temperatures for locally cached data.

18. A cloud controller that optimizes caching performance for a distributed filesystem, comprising:

a processor;

a hard drive that caches distributed-filesystem data, wherein the hard drive comprises one or more rotating disk platters; 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 file 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 the cloud controllers collectively present a unified namespace for the distributed filesystem to the clients of the distributed filesystem, wherein the clients access the distributed filesystem via the cloud controllers, wherein the cloud controllers cache a subset of the file data from the cloud storage systems that is being actively accessed by each respective cloud controller's clients, wherein new file data received by each cloud controller from its clients is written to the one or more cloud storage systems, wherein each cloud is configured to maintain a copy of the metadata for the files stored in the distributed filesystem, wherein changes to the metadata for the distributed filesystem are communicated to the set of cloud controllers for the distributed filesystem to ensure that the clients of the distributed filesystem share a consistent view of the files in the distributed filesystem;

wherein the cloud controller is configured to:

determine that a hot subset of cached data stored on the hard drive is likely to be accessed frequently by clients of the cloud controller and store the hot subset of cached data on an outside portion of a disk platter of the hard drive; and

determine that a cold subset of cached data stored on the hard drive is less likely to be accessed by clients of the cloud controller and store the cold subset of cached data on an inside portion of the disk platter; and

wherein the outside portion of the disk platter has higher I/O bandwidth than the inside portion of the disk platter.

Assignments (7)
PATENT SECURITY AGREEMENT Recorded Aug 25, 2023
From: PANZURA, LLC
To: ALTER DOMUS (US) LLC
Reel/Frame 064716/0982 →
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 →
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 058556/0132 →
CHANGE OF NAME Recorded Jan 5, 2022
From: NEW PANZURA, LLC
To: PANZURA, LLC
Reel/Frame 058645/0146 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 8, 2016
From: DAVIS, ANDREW P.; TAYLOR, JOHN RICHARD
To: PANZURA, INC.
Reel/Frame 037925/0304 →