Database Buffer Pool Initialization for Faster Startup
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Current database systems with large memory components require extensive initialization times, leading to prolonged startup periods, during which the system is unavailable for use, with no effective workaround to improve startup speed.
Innovation Solution
Allocate memory for buffer pools, fully initializing smaller pools and partially initializing larger pools in a deferred mode, allowing the database to operate while the memory manager initializes the remainder in the background, with recovery operations running parallel to the initialization process.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Reliability
If the entire memory component is initialized before opening the database for use, then the system reliability is improved, but the startup time increases significantly
Solution Approach 1:
The patent segments the buffer pool initialization process into two phases: a first phase that initializes a first portion of the buffer pool before database opening, and a second phase that initializes a second portion after database opening. This segmentation allows the database to become operational while initialization continues in the background, resolving the contradiction between ensuring system reliability through complete initialization and reducing startup time by avoiding full pre-initialization.
2Stability of the object's composition
If the entire buffer cache is initialized at startup, then the system stability is improved, but the time required for initialization increases to minutes
Solution Approach 1:
The patent applies preliminary action by initializing a first portion of the buffer pool before the database is opened for use, ensuring critical stability requirements are met. Meanwhile, the second portion of the buffer pool is initialized after database opening using background processes, thereby maintaining system stability while dramatically reducing the time the system remains unavailable during startup.
3Quantity of substance
If larger buffer pools are used to increase memory capacity, then the system performance is improved, but the initialization time increases proportionally
Solution Approach 1:
The patent introduces dynamics into the initialization process by allowing it to continue in the background after database opening. The larger buffer pool is not static in its initialization state but transitions dynamically: the first portion is initialized before opening to ensure performance, while the second portion completes initialization after opening through background processes, preventing initialization time from scaling linearly with buffer pool size.
Data Source
AI summary
A method for starting up a database system, comprising allocating memory spaces for three buffers; initializing two of the buffers; partially initializing the third buffer where the third buffer is larger than the other two; instructing the memory manager to initialize the remainder of the third buffer in the background process; performing recovery operations; and opening the database system for use. The database is operated in an open phase while the remainder of the third buffer is initialized in the background and ran in parallel to the recovery operation that may extend beyond the completion of opening the database. Thus opening the database prior to completion of full initialization and initializing the third buffer in the background improves the startup time of the database which becomes significant when the size of the third buffer is very large (e.g., 500 GB+).


