Buffer pool extension for database server
First Claim
1. A method, implemented at a computer system that includes one or more processors, a first memory, a second memory that is slower than the first memory, and a third memory that is slower than the second memory, for associating pages of a buffer pool with different memories, the method comprising:
- determining a first page access frequency threshold and a second page access frequency threshold for classifying a plurality of pages of the buffer pool; and
de-allocating a portion of the first memory by re-assigning pages from the first memory to both the second memory and the third memory, including;
preserving one or more first pages having corresponding page access frequencies greater than the first page access threshold within the first memory;
re-assigning one or more second pages from the first memory to the second memory based on the one or more second pages having corresponding page access frequencies that are less than the first page access threshold, but greater than the second page access threshold; and
re-assigning one or more third pages from the first memory to the third memory based on the one or more third pages having corresponding page access frequencies that are less than the second page access threshold.
3 Assignments
0 Petitions
Accused Products
Abstract
Aspects of the subject matter described herein relate to a buffer pool for a database system. In aspects, secondary memory such as solid state storage is used to extend the buffer pool of a database system. Thresholds such as hot, warm, and cold for classifying pages based on access history of the pages may be determined via a sampling algorithm. When a database system needs to free space in a buffer pool in main memory, a page may be evicted to the buffer pool in secondary memory or other storage based on how the page is classified and conditions of the secondary memory or other storage.
46 Citations
20 Claims
-
1. A method, implemented at a computer system that includes one or more processors, a first memory, a second memory that is slower than the first memory, and a third memory that is slower than the second memory, for associating pages of a buffer pool with different memories, the method comprising:
-
determining a first page access frequency threshold and a second page access frequency threshold for classifying a plurality of pages of the buffer pool; and de-allocating a portion of the first memory by re-assigning pages from the first memory to both the second memory and the third memory, including; preserving one or more first pages having corresponding page access frequencies greater than the first page access threshold within the first memory; re-assigning one or more second pages from the first memory to the second memory based on the one or more second pages having corresponding page access frequencies that are less than the first page access threshold, but greater than the second page access threshold; and re-assigning one or more third pages from the first memory to the third memory based on the one or more third pages having corresponding page access frequencies that are less than the second page access threshold. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10)
-
-
11. A computer system, comprising:
-
one or more hardware processors; a first memory, a second memory that is slower than the first memory, and a third memory that is slower than the second memory; and one or more computer-readable media having stored thereon computer-executable instruction that, when executed by the one or more hardware processors, cause the computer system to associate pages of a buffer pool with different memories, including the following; determining a first page access frequency threshold and a second page access frequency threshold for classifying a plurality of pages of the buffer pool; and de-allocating a portion of the first memory by re-assigning pages from the first memory to both the second memory and the third memory, including; preserving one or more first pages having corresponding page access frequencies greater than the first page access threshold within the first memory; re-assigning one or more second pages from the first memory to the second memory based on the one or more second pages having corresponding page access frequencies that are less than the first page access threshold, but greater than the second page access threshold; and re-assigning one or more third pages from the first memory to the third memory based on the one or more third pages having corresponding page access frequencies that are less than the second page access threshold. - View Dependent Claims (12, 13, 14, 15, 16, 17, 18, 19)
-
-
20. A computer program product comprising one or more hardware storage devices having stored thereon computer-executable instructions that, when executed by one or more processors of a computer system, cause the computer system to associate pages of a buffer pool with different memories, the method comprising:
-
determining a first page access frequency threshold and a second page access frequency threshold for classifying a plurality of pages of the buffer pool; and de-allocating a portion of a first memory by re-assigning pages from the first memory to both a second memory that is slower than the first memory and a third memory that is slower than the second memory, including; preserving one or more first pages having corresponding page access frequencies greater than the first page access threshold within the first memory; re-assigning one or more second pages from the first memory to the second memory based on the one or more second pages having corresponding page access frequencies that are less than the first page access threshold, but greater than the second page access threshold; and re-assigning one or more third pages from the first memory to the third memory based on the one or more third pages having corresponding access frequencies that are less than the second page access threshold.
-
Specification