IP Library › Granted Patent US 10,303,379
Granted Patent B2
US 10,303,379 · App. 15/714,598 · Granted May 28, 2019

Efficient adaptive read-ahead in log structured storage

Inventors: Avraham Bab-Dinitz (Rehovot, IL); Dorit Hakmon (Tel Aviv, IL); Asaf Porat-Stoler (Tel Aviv, IL); Yosef Shatsky (Karnei Shomron, IL)
Assignee: International Business Machines Corporation
G06F3/0619G06F3/0665G06F3/0689G06F12/0862G06F12/128
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,303,379
App. No.
15/714,598
Granted
May 28, 2019
Kind
B2
Abstract

A mechanism is provided in a data processing system comprising at least one processor and at least one memory. The at least one memory comprise instructions which are executed by the at least one processor and configure the processor to implement a read-ahead manager for adaptive read-ahead in log structured storage. The read-ahead manager determines a probability value P representing a probability to read into cache a temporal environment for a front-end read for a given segment in user space in a log structured storage. Responsive to performing a front-end read of a record of the given segment in the log structured storage, the read-ahead manager performs pre-fetch of the temporal environment for the record with probability P.

Claims (41)

1. A method, in a data processing system comprising at least one processor and at least one memory, the at least one memory comprising instructions which are executed by the at least one processor and configure the processor to implement a read-ahead manager for adaptive read-ahead in log structured storage, the method comprising:

determining, by the read-ahead manager, a probability value P representing a probability to read into cache a temporal environment for a front-end read for a given segment in user space in a log structured storage, wherein determining the probability value comprises: responsive to reading a plurality of front-end reads of records for a given segment of user space in a log structured storage, determining, by the read-ahead manager, a cache hit ratio associated with the given segment; responsive to determining the cache hit ratio is increasing, increasing, by the read-ahead manager, the probability value P; and responsive to determining the cache hit ratio is decreasing, decreasing, by the read-ahead manager, the probability value P, wherein determining the cache hit ratio is increasing comprises determining the following:

H>T×P,

 wherein H is the cache hit ratio, wherein T is a predetermined cache hit threshold; and

responsive to performing a front-end read of a record of the given segment in the log structured storage, performing, by the read-ahead manager, pre-fetch of the temporal environment for the record with probability P.

2. The method of claim 1 , wherein increasing the probability value P comprises calculating the probability value as follows:

P =min( P+I, 1),

wherein I is a predetermined increment step and wherein 0<I<1.

3. The method of claim 1 , wherein decreasing the probability value P comprises calculating the probability value as follows:

P =max( P−I, M ),

wherein I is a predetermined increment step, wherein 0<I<1, wherein M is a predetermined pre-fetch ratio, and wherein 0<<M<1.

4. The method of claim 1 , wherein the plurality of front-end reads comprises a predetermined number of front-end reads of records for the given segment.

5. The method of claim 1 , wherein the temporal environment is of a predetermined size.

6. A computer program product comprising a computer readable storage medium having a computer readable program stored therein, wherein the computer readable program, when executed on a computing device, causes the computing device to implement a read-ahead manager for adaptive read-ahead in log structured storage, wherein the computer readable program causes the computing system to:

determine, by the read-ahead manager, a probability value P representing a probability to read into cache a temporal environment for a front-end read for a given segment in user space in a log structured storage, wherein determining the probability value comprises: responsive to reading a plurality of front-end reads of records for a given segment of user space in a log structured storage, determining, by the read-ahead manager, a cache hit ratio associated with the given segment; responsive to determining the cache hit ratio is increasing, increasing, by the read-ahead manager, the probability value P; and responsive to determining the cache hit ratio is decreasing, decreasing, by the read-ahead manager, the, probability value P, wherein determining the cache hit ratio is increasing comprises determining the following:

H>T×P,

 wherein H is the cache hit ratio, wherein T is a predetermined cache hit threshold, and

responsive to performing a front-end read of a record of the given segment in the log structured storage, perform, by the read-ahead manager, pre-fetch of the temporal environment for the record with probability P.

7. The computer program product of claim 6 , wherein increasing the probability value P comprises calculating the probability value as follows:

P =min( P+I, 1),

wherein I is a predetermined increment step and wherein 0<I<1.

8. The computer program product of claim 6 , wherein decreasing the probability value P comprises calculating the probability value as follows:

P =max( P−I, M ),

wherein I is a predetermined increment step, wherein 0<I<1, wherein M is a predetermined pre-fetch ratio, and wherein 0<<M<1.

9. The computer program product of claim 6 , wherein the plurality of front-end reads comprises a predetermined number of front-end reads of records for the given segment.

10. The computer program product of claim 6 , wherein the temporal environment is of a predetermined size.

11. An apparatus comprising:

at least one processor; and

at least one memory coupled to the at least one processor, wherein the at least one memory comprises instructions which, when executed by the at least one processor, cause the at least one processor to implement a read-ahead manager for adaptive read-ahead in log structured storage, wherein the instructions cause the at least one processor to:

determine, by the read-ahead manager, a probability value P representing a probability to read into cache a temporal environment for a front-end read for a given segment in user space in a log structured storage, wherein determining the probability value comprises: responsive to reading a plurality of front-end reads of records for a given segment of user space in a log structured storage, determining, by the read-ahead manager, a cache hit ratio associated with the given segment; responsive to determining the cache hit ratio is increasing, increasing, by the read-ahead manager, the probability value P; and responsive to determining the cache hit ratio is decreasing, decreasing, by the read-ahead manager, the probability value P, wherein determining the cache hit ratio is increasing comprises determining the following:

H>T×P,

 wherein H is the cache hit ratio, wherein T is a predetermined cache hit threshold; and

responsive to performing a front-end read of a record of the given segment in the log structured storage, perform, by the read-ahead manager, pre-fetch of the temporal environment for the record with probability P.

12. The apparatus of claim 11 , wherein increasing the probability value P comprises calculating the probability value as follows:

P =min( P+I, 1),

wherein I is a predetermined increment step and wherein 0<I<1.

13. The apparatus of claim 11 , wherein decreasing the probability value P comprises calculating the probability value as follows:

P =max( P−I, M ),

wherein I is a predetermined increment step, wherein 0<I<1, wherein M is a predetermined pre-fetch ratio, and wherein 0<<M<1.

14. The apparatus of claim 11 , wherein the plurality of front-end reads comprises a predetermined number of front-end reads of records for the given segment.

15. The apparatus of claim 11 , wherein the temporal environment is of a predetermined size.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 25, 2017
From: BAB-DINITZ, AVRAHAM; HAKMON, DORIT; PORAT-STOLER, ASAF; SHATSKY, YOSEF
To: INTERNATIONAL BUSINESS MACHINES CORPORATION
Reel/Frame 043684/0570 →
Continuity (1)
Related Publication 20190095111A1 · Mar 28, 2019
Cited By (4)
US 12,226,430 US 12,502,401 US 12,514,867 US 12,514,869