IP Library › Granted Patent US 10,152,422
Granted Patent B1
US 10,152,422 · App. 15/621,513 · Granted Dec 11, 2018

Page-based method for optimizing cache metadata updates

Inventor: Kishore Sampathkumar (Bangalore, IN)
Assignee: Seagate Technology LLC
G06F12/0882G06F12/0246G06F12/0804G06F12/0866
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,152,422
App. No.
15/621,513
Granted
Dec 11, 2018
Kind
B1
Abstract

A method of adjusting asynchronous cache operations on a cache device includes accessing the cache device each cache window having a plurality of cache blocks, and each cache block having corresponding metadata indicating a status of the cache block. The method also includes receiving, at a first cache block, a first input/output operation and updating a first metadata of the first cache block, the first metadata being marked as dirty. The method also includes receiving, at a second cache block, a second input/output operation and updating a second metadata of the second cache block, the second metadata being marked as dirty. The method also includes grouping, in a page, the first and second input/output operations and updating, in a single operation according to the page, the first and second cache blocks according to the first and second input/output operations. The first and second metadata are then marked as non-dirty.

Claims (45)

1. A method of adjusting asynchronous cache operations on a cache device, comprising:

accessing the cache device having a plurality of cache windows, each cache window having a plurality of cache blocks, and each cache block having corresponding metadata indicating a status of the cache block;

receiving, at a first cache block of the plurality of cache blocks, a first input/output operation;

updating a first metadata of the first cache block, in response to the receiving the first input/output operation, the first metadata being marked as dirty;

receiving, at a second cache block of the plurality of cache blocks, a second input/output operation;

updating a second metadata of the second cache block, in response to the receiving the second input/output operation, the second metadata being marked as dirty;

grouping, in a page, the first and second input/output operations;

updating, in a single operation according to the page, the first and second cache blocks according to the first and second input/output operations; and

marking the first and second metadata as non-dirty.

2. The method of claim 1 , wherein the second input/output operation is received from a user.

3. The method of claim 1 , wherein the first input/output operation is a write operation.

4. The method of claim 1 , wherein the first input/output operation is a flush operation.

5. The method of claim 1 , wherein the first metadata is persistent metadata.

6. The method of claim 1 , wherein the grouping in a page further includes the first and second metadata updates.

7. The method of claim 1 , wherein the grouping is in response to a flush threshold being reached, wherein the flush threshold includes a predicted cache hit ratio for the cache device.

8. A cache device, comprising:

a plurality of cache windows, each cache window having a plurality of cache blocks, and each cache block having corresponding metadata indicating a status of the cache block; and

a controller configured to perform the steps, including:

receiving, at a first cache block of the plurality of cache blocks, a first input/output operation;

updating a first metadata of the first cache block, in response to the receiving the first input/output operation, the first metadata being marked as dirty;

receiving, at a second cache block of the plurality of cache blocks, a second input/output operation;

updating a second metadata of the second cache block, in response to the receiving the second input/output operation, the second metadata being marked as dirty;

grouping, in a page, the first and second input/output operations;

updating, in a single operation according to the page, the first and second cache blocks according to the first and second input/output operations; and

marking the first and second metadata as non-dirty.

9. The cache device of claim 8 , wherein the second input/output operation is received from a user.

10. The cache device of claim 8 , wherein the first input/output operation is a write operation.

11. The cache device of claim 8 , wherein the first input/output operation is a flush operation.

12. The cache device of claim 8 , wherein the first metadata is persistent metadata.

13. The cache device of claim 8 , wherein the grouping in a page further includes the first and second metadata updates.

14. The cache device of claim 8 , wherein the grouping by the controller is in response to a flush threshold being reached, wherein the flush threshold includes a predicted cache hit ratio for the cache device.

15. A method of adjusting asynchronous cache operations on a cache device, comprising:

accessing the cache device having a plurality of cache windows, each cache window having a plurality of cache blocks, and each cache block having corresponding metadata indicating a status of the cache block;

receiving, at a first cache block of the plurality of cache blocks, a first input/output operation;

updating a first metadata of the first cache block, in response to the receiving the first input/output operation, the first metadata being marked as presently existing only in the cache device;

receiving, at a second cache block of the plurality of cache blocks, a second input/output operation;

updating a second metadata of the second cache block, in response to the receiving the second input/output operation, the second metadata being marked as presently existing only in the cache device;

grouping, in a page, the first and second input/output operations;

updating, in a single operation according to the page, the first and second cache blocks according to the first and second input/output operations; and

removing the marking of presently existing only in the cache device from the first and second metadata.

16. The method of claim 15 , wherein the second input/output operation is received from a user.

17. The method of claim 15 , wherein the first input/output operation is a write operation.

18. The method of claim 15 , wherein the first input/output operation is a flush operation.

19. The method of claim 15 , wherein the grouping in a page further includes the first and second metadata updates.

20. The method of claim 15 , wherein the grouping is in response to a flush threshold being reached, wherein the flush threshold includes a predicted cache hit ratio for the cache device.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 14, 2017
From: SAMPATHKUMAR, KISHORE
To: SEAGATE TECHNOLOGY LLC
Reel/Frame 042706/0891 →
Cited By (1)
US 12,242,386