Disk block cache management for a distributed shared memory computer system
First Claim
1. A method for a process to perform operations on buffer cache metadata stored in a distributed shared memory computer system having at least two memories, the method comprising:
- determining, from attributes of a data block requested by a first process, in which memory buffer cache metadata associated with the data block is stored;
determining if the memory containing the buffer cache metadata is local to the first process;
if the first process is remote from the memory, requesting through the first process that a second process that is local to the memory perform the operation on the buffer cache metadata;
performing the operation with the second process; and
notifying the first process of the operation results.
1 Assignment
0 Petitions
Accused Products
Abstract
A buffer cache management structure, or metadata, for a computer system such as a NUMA (non-uniform memory access) machine, wherein physical main memory is distributed and shared among separate memories. The memories reside on separate nodes that are connected by a system interconnect. The buffer cache metadata is partitioned into portions that each include a set of one or more management data structures such as hash queues that keep track of disk blocks cached in the buffer cache. Each set of management data structures is stored entirely within one memory. A first process performs operations on the buffer cache metadata by determining, from an attribute of a data block requested by the process, in which memory a portion of the metadata associated with the data block is stored. The process then determines if the memory containing the metadata portion is local to the process. If so, the first process performs the operation. If not, the first process requests that a second process that is local to the memory perform the operation. The second process then performs the operation and notifies the first process of the operation results.
-
Citations
34 Claims
-
1. A method for a process to perform operations on buffer cache metadata stored in a distributed shared memory computer system having at least two memories, the method comprising:
-
determining, from attributes of a data block requested by a first process, in which memory buffer cache metadata associated with the data block is stored;
determining if the memory containing the buffer cache metadata is local to the first process;
if the first process is remote from the memory, requesting through the first process that a second process that is local to the memory perform the operation on the buffer cache metadata;
performing the operation with the second process; and
notifying the first process of the operation results. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22)
if the memory is local to the first process, having the first process perform the operation on the buffer cache metadata.
-
-
3. The method of claim 1 including:
if the memory is local to the first process, having a server process local to the memory perform the operation on the buffer cache metadata.
-
4. The method of claim 1 wherein the first process is remote from the memory, having a second process that is local to the memory perform the operation on the buffer cache metadata.
-
5. The method of claim 1 wherein if the first process is remote from the memory, migrating the first process to the memory to perform the operation on the buffer cache metadata.
-
6. The method of claim 1 wherein the first determining step comprises hashing on the data block attribute to determine in which memory the associated buffer cache metadata is stored.
-
7. The method of claim 1 wherein the operation is checking the buffer cache metadata for the presence of the data block in the buffer cache.
-
8. The method of claim 1 wherein the operation is modifying the buffer cache metadata to reflect the removal or addition of a data block to the buffer cache.
-
9. The method of claim 1 wherein the operation is allocating a buffer for a data block from a free list of buffers contained in the buffer cache metadata .
-
10. The method of claim 1 wherein the computer system is a non-uniform memory access (NUMA) machine having a multiple of nodes each with a local memory and one or more processors executing processes.
-
11. The method of claim 1 wherein the buffer cache metadata is partitioned into portions stored in the two memories.
-
12. The method of claim 1 wherein the buffer cache metadata contains a set of management data structures stored entirely within one memory.
-
13. The method of claim 12 wherein performing an operation on the buffer cache metadata includes:
-
determining from the data block attribute which management data structure in the set the operation is to performed on; and
performing an operation on the determined management data structure.
-
-
14. The method of claim 1 wherein the buffer cache metadata and an associated buffer cache are parts of a database server executing on the computer system.
-
15. The method of claim 1 wherein the buffer cache metadata is constructed by a database server executing on the computer system.
-
16. The method of claim 1 wherein the buffer cache metadata is constructed by an external cache manager executing on the computer systems.
-
17. The method of claim 1 wherein the buffer cache metadata is constructed by an operating system buffer cache executing on the computer system.
-
18. The method of claim 9 wherein the free list contains only elements from a act of management data structures stored entirely within one memory.
-
19. The method of claim 12 wherein the management data structures identify blocks cached in buffer caches.
-
20. The method of claim 1 wherein Se distributed shared memory computer system has a shared physical address space.
-
21. The method of claim 12 wherein each management data structure comprises a hash queue and associated hash queue header.
-
22. The method of claim 12 wherein each management data structure comprises a collection of associated buffer header elements.
-
23. A method for a process to perform operations on a buffer cache metadata stored in a distributed shared memory computer system having at least two memories, the method comprising:
-
providing buffer cache metadata that is partitioned into portions stored in at least the two memories, each portion containing a set of management data structures stored entirely within one memory;
determining, from an attribute of a data block requested by a first process, in which memory a portion of a buffer cache metadata associated with the data block is stored;
determining if the memory containing the buffer cache metadata is local to the first process;
if the memory is local to the first process, having the first process perform the operation on the buffer cache metadata;
if the first process is remote from the memory, requesting through the first process that a second process that is local to the memory perform the operation on the buffer cache metadata;
performing the operation with the second process; and
notifying the first process of the operation results. - View Dependent Claims (25, 26, 27, 28, 29, 30, 31, 32, 33, 34)
-
-
24. The method of Him 23 wherein a number of management data structures in a set is substantially the same for each portion of the metadata stored in a memory.
Specification