Buffer Pool Extension for Database Server
AssigneeMicrosoft Corporation
InventorsChengliang Zhang, Sadashivan krishnamurthy, Georgiy I. Reynya, Alexandre Verbitski
Life of this patent
Estimating the term…
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.
Claims20
A method implemented at least in part by a computer, the method comprising:
- accessing metadata of pages of a database buffer pool, the database buffer pool potentially including pages that are stored in main memory, pages that are stored in solid state memory, and pages that are stored in both main memory and solid state memory;
- determining, from the metadata, a cold threshold usable to determine whether a page is cold, wherein the page is cold if applying a function to access data represented by the metadata of the page returns a value less than or equal to the cold threshold;
- determining, from the metadata, a warm threshold usable to determine whether the page is warm, wherein a page is warm if applying the function to the access data of the metadata of the page returns a value greater than the cold threshold and less than or equal to the warm threshold;
- and
- evicting a page from the main memory or the solid state memory to free space for one or more other pages.
In a computing environment, a system, comprising:
- a set of one or more storage devices that include components operable to move to provide access to data of the storage devices;
- main memory that is volatile and operable to provide access to data stored thereon without physical movement of any components of the main memory;
- secondary memory that is nonvolatile and operable to provide access to data stored thereon without physical movement of any components of the secondary memory;
- one or more processors operable to execute instructions corresponding to a database management system that is operable to manage pages in a buffer pool in the main and secondary memory and to evict a page based on determining whether the page has accesses corresponding to at least three classifications, the page having accesses corresponding to a first of the classifications if accesses to the page are within a first range of percentiles, the page having accesses corresponding to a second of the classifications if accesses to the page are within a second range of percentiles, and the page having accesses corresponding to a third of the classifications if accesses to the page are within a third range of percentiles.
A computer storage medium having computer-executable instructions, which when executed perform actions, comprising:
- receiving a request for data of a database;
- determining that the data resides in storage other than main memory;
- determining that a buffer pool in the main memory is full;
- selecting a candidate page for eviction from the buffer pool in main memory based on a function that classifies the candidate page according to one of at least three classifications according to accesses to the candidate page;
- and
- evicting the candidate page from main memory.
Dependencies are inferred from the claim text.