IP Library Granted Patent US 9,235,508
Granted Patent B2
US 9,235,508 · App. 14/803,074 · Granted Jan 12, 2016

Buffer management strategies for flash-based storage systems

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,235,508
App. No.
14/803,074
Granted
Jan 12, 2016
Kind
B2
Abstract

Techniques are generally described related to a flash-based buffer management strategy. One example method to manage a buffer for a computer system may include maintaining a page-action list for monitoring a plurality of operations being executed on the computer system and utilizing a plurality of buffer pages of the buffer. An example page-action list may contain a hot-access queue for recently accessed buffer pages and a cold-access queue for less accessed buffer pages. The example method may also include, upon a determination that the buffer is full, identifying a victim buffer page from the plurality of buffer pages for eviction and evicting the victim buffer page from the buffer. The victim buffer page may be selected from the cold-access queue and based on a page weight, which is calculated based on a page state of the specific buffer page and a page hotness prediction for the specific buffer page might be accessed by an incoming operation.

Claims (53)

1. A method to manage a buffer for a computer system, comprising:

maintaining a page-action list for monitoring a plurality of operations being executed on the computer system and utilizing a plurality of buffer pages of the buffer, wherein the page-action list contains a hot-access queue for recently accessed buffer pages and a cold-access queue for less accessed buffer pages;

upon a determination that the buffer is full, identifying a victim buffer page from the plurality of buffer pages for eviction, wherein the victim buffer page is selected from the cold-access queue and based on a page weight, which is calculated based on a page state of the specific buffer page and a page hotness prediction for the specific buffer page might be accessed by an incoming operation; and

evicting the victim buffer page from the buffer.

2. The method as recited in claim 1 , further comprising

during executing of a first operation which is selected from the plurality of operations and is accessing a first buffer page selected from the plurality of buffer pages, adding a first page-action referencing the first buffer page and storing the first operation's buffer action to the hot-access queue.

3. The method as recited in claim 2 , further comprising

upon determining that the first operation's buffer action is a write buffer action, setting a write weight state associated with the first buffer page to a high value.

4. The method as recited in claim 2 , further comprising

upon determining that the first operation's buffer action is a read buffer action and the first buffer page is referenced in the hot-access queue, setting a read weight state associated with the first buffer page to a high value.

5. The method as recited in claim 1 , further comprising:

moving a second page-action, referencing a second buffer page selected from the plurality of buffer pages, from the hot-access queue to the cold-access queue; and

setting a read weight state associated with the second buffer page to a low value.

6. The method as recited in claim 5 , further comprising:

removing a third page-action, referencing a third buffer page selected from the plurality of buffer pages, from the cold-access queue; and

setting a write weight state associated with the third buffer page to a low value.

7. The method as recited in claim 1 , wherein the victim buffer page is associated with a low read weight state and a low write weight state.

8. A system configured to manage a buffer for a computer system, comprising:

a page-action list containing a hot-access queue for recently accessed buffer pages and a cold-access queue for less accessed buffer pages; and

a buffer management module coupled with the page-action list, wherein the buffer management module is configured to

monitor a plurality of operations being executed on the computer system and utilizing a plurality of buffer pages of the buffer,

upon a determination that the buffer is full, identify a victim buffer page from the plurality of buffer pages for eviction, wherein the victim buffer page is selected from the cold-access queue and based on a page weight, which is calculated based on a page state of the specific buffer page and a page hotness prediction for the specific buffer page might be accessed by an incoming operation; and

evict the victim buffer page from the buffer.

9. The system as recited in claim 8 , wherein the buffer management module is further configured to

during executing of a first operation which is selected from the plurality of operations and is accessing a first buffer page selected from the plurality of buffer pages, add a first page-action referencing the first buffer page and storing the first operation's buffer action to the hot-access queue.

10. The system as recited in claim 9 , wherein the buffer management module is further configured to

upon determining that the first operation's buffer action is a write buffer action, set a write weight state associated with the first buffer page to a high value.

11. The system as recited in claim 9 , wherein the buffer management module is further configured to

upon determining that the first operation's buffer action is a read buffer action and the first buffer page is referenced in the hot-access queue, set a read weight state associated with the first buffer page to a high value.

12. The system as recited in claim 8 , wherein the buffer management module is further configured to:

move a second page-action, referencing a second buffer page selected from the plurality of buffer pages, from the hot-access queue to the cold-access queue; and

set a read weight state associated with the second buffer page to a low value.

13. The system as recited in claim 12 , wherein the buffer management module is further configured to:

remove a third page-action, referencing a third buffer page selected from the plurality of buffer pages, from the cold-access queue; and

set a write weight state associated with the third buffer page to a low value.

14. The system as recited in claim 8 , wherein the victim buffer page is associated with a low read weight state and a low write weight state.

15. A non-transitory machine-readable medium having a set of instructions which,

in response to execution by a processor, cause the processor to perform a method to manage a buffer for a computer system, the method comprising:

maintaining a page-action list for monitoring a plurality of operations being executed on the computer system and utilizing a plurality of buffer pages of the buffer, wherein the page-action list contains a hot-access queue for recently accessed buffer pages and a cold-access queue for less accessed buffer pages;

upon a determination that the buffer is full, identifying a victim buffer page from the plurality of buffer pages for eviction, wherein the victim buffer page is selected from the cold-access queue and based on a page weight, which is calculated based on a page state of the specific buffer page and a page hotness prediction for the specific buffer page might be accessed by an incoming operation; and

evicting the victim buffer page from the buffer.

16. The non-transitory machine-readable medium as recited in claim 15 , wherein the method further comprises

during executing of a first operation which is selected from the plurality of operations and is accessing a first buffer page selected from the plurality of buffer pages, adding a first page-action referencing the first buffer page and storing the first operation's buffer action to the hot-access queue.

17. The non-transitory machine-readable medium as recited in claim 16 , wherein the method further comprises:

upon determining that the first operation's buffer action is a write buffer action, setting a write weight state associated with the first buffer page to a high value; or

upon determining that the first operation's buffer action is a read buffer action and the first buffer page is referenced in the hot-access queue, setting a read weight state associated with the first buffer page to a high value.

18. The non-transitory machine-readable medium as recited in claim 15 , wherein the method further comprises:

moving a second page-action, referencing a second buffer page selected from the plurality of buffer pages, from the hot-access queue to the cold-access queue; and

setting a read weight state associated with the second buffer page to a low value.

19. The non-transitory machine-readable medium as recited in claim 18 , wherein the method further comprises:

removing a third page-action, referencing a third buffer page selected from the plurality of buffer pages, from the cold-access queue; and

setting a write weight state associated with the third buffer page to a low value.

20. The non-transitory machine-readable medium as recited in claim 15 , wherein the victim buffer page is associated with a low read weight state and a low write weight state.

Assignments (3)
RELEASE OF SECURITY INTEREST Recorded Jul 31, 2019
From: CRESTLINE DIRECT FINANCE, L.P.
To: EMPIRE TECHNOLOGY DEVELOPMENT LLC
Reel/Frame 049924/0794 →
SECURITY INTEREST Recorded Jan 29, 2019
From: EMPIRE TECHNOLOGY DEVELOPMENT LLC
To: CRESTLINE DIRECT FINANCE, L.P.
Reel/Frame 048373/0217 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 21, 2015
From: CUI, BIN; LV, YANFEI
To: PEKING UNIVERSITY
Reel/Frame 036138/0514 →