IP Library Granted Patent US 11,182,077
Granted Patent B1
US 11,182,077 · App. 16/150,381 · Granted Nov 23, 2021

Systems, devices and methods using a solid state device as a caching medium with an SSD filtering or SSD pre-fetch algorithm

Inventors: Paresh Chatterjee (Fremont, CA); Srikumar Subramanian (Suwanee, GA); Narayanaswami Ganapathy (Newark, CA); Senthilkumar Ramasamy (Duluth, GA)
Assignee: AmZetta Technologies, LLC
G06F3/061G06F3/0655G06F3/0685G06F3/0689G06F12/0862G06F2212/602
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 11,182,077
App. No.
16/150,381
Granted
Nov 23, 2021
Kind
B1
Abstract

A method for determining when to load read I/O operations into an SSD cache medium for a physical storage medium of a data storage system can include maintaining an SSD filter bitmap with a plurality of bits, where each of the bits corresponds to a respective data block of the physical storage medium. The method can also include initially setting each of the bits to a first predetermined value, receiving a first read I/O operation directed to a particular data block of the physical storage medium and, in response to receiving the first read I/O operation, setting a bit corresponding to the particular data block to a second predetermined value. The method can further include receiving a second read I/O operation directed to the particular data block and, in response to receiving the second I/O operation, loading data for the particular data block into the SSD cache medium.

Claims (43)

1. A computer-implemented method for determining when to load read I/O operations into an SSD cache medium for a physical storage medium of a data storage system, comprising:

dividing the physical storage medium comprising a plurality of equally-sized data blocks into a plurality of zones, wherein each of the zones comprises a different set of the plurality of equally-sized data blocks;

maintaining an SSD filter bitmap including a plurality of bits, each of the bits of the SSD filter bitmap corresponding to a respective equally-sized data block of the physical storage medium, wherein the SSD filter bitmap comprises a plurality of zone level SSD filter bitmaps, each respective zone level SSD filter bitmap corresponding to a different zone of the physical storage medium;

initially setting each of the bits of the SSD filter bitmap to a first binary value;

receiving a first read I/O operation directed to a particular data block of the physical storage medium;

in response to receiving the first read I/O operation, setting a bit of the SSD filter bitmap corresponding to the particular data block of the physical storage medium to a second binary value;

receiving a second read I/O operation directed to the particular data block of the physical storage medium;

in response to receiving the second I/O operation, loading data for the particular data block into the SSD cache medium;

referencing the SSD filter bitmap to determine whether to search the SSD cache medium; and

allocating memory for the respective zone level SSD filter bitmaps on demand in response to receiving an initial read I/O operation directed to the respective zones of the physical storage medium.

2. The computer-implemented method of claim 1 , further comprising:

determining, using the SSD filter bitmap, that the first read I/O operation is an initial read I/O operation directed to the particular data block of the physical storage medium; and

servicing the first read I/O operation from the physical storage medium, wherein the data for the particular data block is not loaded into the SSD cache medium in response to the first read I/O operation.

3. The computer-implemented method of claim 1 , further comprising:

determining, using the SSD filter bitmap, that the second read I/O operation is a subsequent read I/O operation directed to the particular data block of the physical storage medium;

determining whether the data for the particular data block is stored in the SSD cache medium;

if the data for the particular data block is stored in the SSD cache medium, servicing the second read I/O operation from the SSD cache medium; and

if the data for the particular data block is not stored in the SSD cache medium, servicing the second read I/O operation from the physical storage medium and loading the data for the particular data block into the SSD cache medium in response to the second read I/O operation.

4. The computer-implemented method of claim 1 , further comprising periodically re-setting at least one of the bits of the SSD filter bitmap to the first binary value, wherein the at least one of the bits corresponds to a respective equally-sized data block of the physical storage medium having a frequency of access less than a threshold value.

5. A data storage system, comprising:

a physical storage medium;

an SSD cache medium for the physical storage medium; and

a data storage system computer including a processor and a memory in communication with the processor, the memory having computer-executable instructions stored thereon for determining when to load read I/O operations into the SSD cache medium for the physical storage medium that, when executed by the processor, cause the data storage system computer to:

divide the physical storage medium comprising a plurality of equally-sized data blocks into a plurality of zones, wherein each of the zones comprises a different set of the plurality of equally-sized data blocks;

maintain an SSD filter bitmap including a plurality of bits, each of the bits of the SSD filter bitmap corresponding to a respective equally-sized data block of the physical storage medium, wherein the SSD filter bitmap comprises a plurality of zone level SSD filter bitmaps, each respective zone level SSD filter bitmap corresponding to a different zone of the physical storage medium;

initially set each of the bits of the SSD filter bitmap to a first binary value;

receive a first read I/O operation directed to a particular data block of the physical storage medium;

in response to receiving the first read I/O operation, set a bit of the SSD filter bitmap corresponding to the particular data block of the physical storage medium to a second binary value;

receive a second read I/O operation directed to the particular data block of the physical storage medium;

in response to receiving the second I/O operation, load data for the particular data block into the SSD cache medium;

reference the SSD filter bitmap to determine whether to search the SSD cache medium; and

allocate memory for the respective zone level SSD filter bitmaps on demand in response to receiving an initial read I/O operation directed to the respective zones of the physical storage medium.

6. The data storage system of claim 5 , wherein the memory has further computer-executable instructions stored thereon that, when executed by the processor, cause the data storage system computer to:

determine, using the SSD filter bitmap, that the first read I/O operation is an initial read I/O operation directed to the particular data block of the physical storage medium; and

service the first read I/O operation from the physical storage medium, wherein the data for the particular data block is not loaded into the SSD cache medium in response to the first read I/O operation.

7. The data storage system of claim 5 , wherein the memory has further computer-executable instructions stored thereon that, when executed by the processor, cause the data storage system computer to:

determine, using the SSD filter bitmap, that the second read I/O operation is a subsequent read I/O operation directed to the particular data block of the physical storage medium;

determine whether the data for the particular data block is stored in the SSD cache medium;

if the data for the particular data block is stored in the SSD cache medium, service the second read I/O operation from the SSD cache medium; and

if the data for the particular data block is not stored in the SSD cache medium, service the second read I/O operation from the physical storage medium and load the data for the particular data block into the SSD cache medium in response to the second read I/O operation.

8. The data storage system of claim 5 , wherein the memory has further computer-executable instructions stored thereon that, when executed by the processor, cause the data storage system computer to periodically re-set at least one of the bits of the SSD filter bitmap to the first binary value, wherein the at least one of the bits corresponds to a respective equally-sized data block of the physical storage medium having a frequency of access less than a threshold value.

9. The computer-implemented method of claim 1 , further comprising maintaining a table comprising a plurality of pointers, each of the pointers corresponding to one of the respective zone level SSD filter bitmaps.

10. The data storage system of claim 5 , wherein the memory has further computer-executable instructions stored thereon that, when executed by the processor, cause the data storage system computer to maintain a table comprising a plurality of pointers, each of the pointers corresponding to one of the respective zone level SSD filter bitmaps.

Assignments (4)
CONVERSION Recorded Aug 23, 2021
From: AMERICAN MEGATRENDS, INC.
To: AMERICAN MEGATRENDS INTERNATIONAL, LLC
Reel/Frame 057264/0369 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 23, 2021
From: AMERICAN MEGATRENDS INTERNATIONAL, LLC
To: AMZETTA TECHNOLOGIES, LLC
Reel/Frame 057264/0377 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 15, 2019
From: SUBRAMANIAN, SRIKUMAR; GANAPATHY, NARAYANASWAMI; RAMASAMY, SENTHILKUMAR
To: AMERICAN MEGATRENDS, INC.
Reel/Frame 048340/0991 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 15, 2019
From: CHATTERJEE, EXECUTRIX OF THE ESTATE OF PARESH CHATTERJEE, UDITA
To: AMERICAN MEGATRENDS, INC.
Reel/Frame 048341/0001 →
Continuity (2)
Division 15145099 · May 3, 2016
Provisional Application 62157506 · May 6, 2015
Cited By (5)
US 12,292,827 US 12,298,902 US 12,360,892 US 12,504,899 US 12,572,468