Method of buffering data objects in a database
First Claim
1. A method of buffering data objects in a database of a computer system, the computer system having one or more storage devices on which the data objects of the database are stored, the computer system also having a memory on which the data objects may be stored temporarily and accessed relatively faster than from the one or more storage devices, the computer system also supporting an on line transaction processing (OLTP) environment in which data objects are retrieved randomly and a decision support system (DSS) environment in which data objects are retrieved non-randomly, the method comprising the following steps:
- (a) allocating a portion of the memory as a buffer cache;
(b) allocating at least a first memory pool and a second memory pool each having a user configurable size within the buffer cache, the first memory pool having multiple identical storage blocks, each having a first storage capacity, and the second memory pool also having multiple identical storage blocks, each having a second storage capacity, the second storage capacity being greater than the first storage capacity;
(c) identifying a selected data object;
(d) determining whether the selected data object is selected randomly;
(e) based upon whether the selected data object is selected randomly or non-randomly, determining in which memory pool to copy the selected data object; and
(f) storing the data object in the memory pool identified in step (e)wherein the step of determining in which memory pool of the buffer cache to copy the data object determines that the data object should be copied to the first memory pool if the selected that object is randomly selected, and that the data object should be copied to the second memory pool if the selected data object is not randomly, selected.
1 Assignment
0 Petitions
Accused Products
Abstract
Computer systems and computer implemented methods are provided for managing memory in a database management system. The computer memory is partitioned into a plurality of buffer caches, each of which is separately addressable. One buffer cache is set aside as a default buffer cache, while the other buffer caches are reserved for specific data objects meeting certain predefined criteria. Those objects meeting the predefined criteria are stored in reserved buffer caches where they are likely to remain for a relatively long period of time (in comparison to data objects stored in the default buffer caches). A buffer cache may have a plurality of memory pools, each of which contains multiple storage blocks. The storage blocks in a given memory pool are identically sized, while the storage blocks in one memory pool are sized differently from the storage blocks in another memory pool.
-
Citations
13 Claims
-
1. A method of buffering data objects in a database of a computer system, the computer system having one or more storage devices on which the data objects of the database are stored, the computer system also having a memory on which the data objects may be stored temporarily and accessed relatively faster than from the one or more storage devices, the computer system also supporting an on line transaction processing (OLTP) environment in which data objects are retrieved randomly and a decision support system (DSS) environment in which data objects are retrieved non-randomly, the method comprising the following steps:
-
(a) allocating a portion of the memory as a buffer cache; (b) allocating at least a first memory pool and a second memory pool each having a user configurable size within the buffer cache, the first memory pool having multiple identical storage blocks, each having a first storage capacity, and the second memory pool also having multiple identical storage blocks, each having a second storage capacity, the second storage capacity being greater than the first storage capacity; (c) identifying a selected data object; (d) determining whether the selected data object is selected randomly; (e) based upon whether the selected data object is selected randomly or non-randomly, determining in which memory pool to copy the selected data object; and (f) storing the data object in the memory pool identified in step (e) wherein the step of determining in which memory pool of the buffer cache to copy the data object determines that the data object should be copied to the first memory pool if the selected that object is randomly selected, and that the data object should be copied to the second memory pool if the selected data object is not randomly, selected. - View Dependent Claims (2, 3, 4)
-
-
5. A computer system for managing the storage of data objects in a database, the computer system comprising:
-
one or more storage devices on which the data objects of a database are stored; a memory in which the data objects can be stored temporarily and accessed at relatively faster rate than from the one or more storage devices; means for copying data objects from the one or more storage devices to the memory; a portion of the memory allocated as a buffer cache having at least a first memory pool and a second memory pool each having a user configurable size, the first memory pool having multiple identical storage blocks, each of a first storage capacity, and the second memory pool also having identical multiple storage blocks each of a second storage capacity, the second storage capacity being greater than the first storage capacity; and means for copying a selected data object to the first or second memory pool based on whether the selected data object is randomly selected, wherein the means for copying copies the selected data object to the first memory pool if the selected data object is randomly selected in an on line transaction processing (OLTP) environment and copies the selected data object to the second memory pool if the selected data object is not randomly selected in a decision support system (DSS) environment. - View Dependent Claims (6)
-
-
7. In a computer comprising a processor, a memory, and a storage device, said computer including a database system storing a plurality of database tables, each table comprising a plurality of data records, a method for accessing said data records, the method comprising:
-
(a) allocating a portion of the memory as a buffer cache; (b) allocating at least a first memory pool and a second memory pool each having a user configurable size within the buffer cache, the first memory pool having multiple identical storage blocks, each having a first storage capacity, and the second memory pool also having multiple identical storage block, each having a second storage capacity, the second storage capacity being greater than the first storage capacity; (c) receiving a request for performing a database operation which require access to data objects stored within said plurality of database tables; (d) determining whether said request occurs in response to an OLTP query or a DSS query; (e) if said request is determined to be in response to a DSS query copying said data objects to said second memory pool, and if said request is determined to be in response to an OLTP query, copying said data objects to said first memory pool. - View Dependent Claims (8, 9, 10, 11, 12, 13)
-
Specification