Maintaining a shared cache that has partitions allocated among multiple nodes and a data-to-partition mapping
First Claim
1. A method for managing data, the method comprising the steps of:
- allocating a plurality of partitions of a shared cache, wherein said plurality of partitions include a partition in each of a set of two or more nodes of a multiple node system;
establishing a mapping between the plurality of partitions and a plurality of data items; and
in response to a request for a particular data item by a first node of said multiple node system, performing the steps ofdetermining which partition of said plurality of partitions corresponds to the particular data item based on said mapping;
determining whether the particular data item currently resides in said corresponding partition;
if the particular data item does not currently reside in said corresponding partition, then loading a copy of the particular data item into the corresponding partition; and
providing the particular data item from the corresponding partition to the first node;
wherein a dirty version of the particular data item resides in a second node of the multiple node system; and
wherein the step of loading a copy of the particular data item into the corresponding partition includes loading the dirty version of the particular data item from the second node into the corresponding partition.
1 Assignment
0 Petitions
Accused Products
Abstract
Various techniques are described for improving the performance of a multiple node system by allocating, in two or more nodes of the system, partitions of a shared cache. A mapping is established between the data items managed by the system, and the various partitions of the shared cache. When a node requires a data item, the node first determines which partition of the shared cache corresponds to the required data item. If the data item does not currently reside in the corresponding partition, the data item is loaded into the corresponding partition even if the partition does not reside on the same node that requires the data item. The node then reads the data item from the corresponding partition of the shared cache.
61 Citations
32 Claims
-
1. A method for managing data, the method comprising the steps of:
-
allocating a plurality of partitions of a shared cache, wherein said plurality of partitions include a partition in each of a set of two or more nodes of a multiple node system; establishing a mapping between the plurality of partitions and a plurality of data items; and in response to a request for a particular data item by a first node of said multiple node system, performing the steps of determining which partition of said plurality of partitions corresponds to the particular data item based on said mapping; determining whether the particular data item currently resides in said corresponding partition; if the particular data item does not currently reside in said corresponding partition, then loading a copy of the particular data item into the corresponding partition; and providing the particular data item from the corresponding partition to the first node; wherein a dirty version of the particular data item resides in a second node of the multiple node system; and wherein the step of loading a copy of the particular data item into the corresponding partition includes loading the dirty version of the particular data item from the second node into the corresponding partition. - View Dependent Claims (2, 3, 4, 5, 7, 8, 9, 19, 20, 21, 22, 25, 26)
-
-
6. A method for managing data, the method comprising the steps of:
-
allocating a plurality of partitions of a shared cache, wherein said plurality of partitions include a partition in each of a set of two or more nodes of a multiple node system; establishing a mapping between the plurality of partitions and a plurality of data items; and in response to a request for a particular data item by a first node of said multiple node system, performing the steps of determining which partition of said plurality of partitions corresponds to the particular data item based on said mapping; determining whether the particular data item currently resides in said corresponding partition; if the particular data item does not currently reside in said corresponding partition, then loading a copy of the particular data item into the corresponding partition; and providing the particular data item from the corresponding partition to the first node; wherein each partition of said plurality of partitions maintains lock structures for data items that correspond to the partition based on the mapping; and wherein the method includes gathering information from each partition of the plurality of partitions to construct wait-for-graphs to perform deadlock detection. - View Dependent Claims (17, 18, 23)
-
-
10. A method for managing data, the method comprising the steps of:
-
allocating a plurality of partitions of a shared cache, wherein said plurality of partitions include a partition in each of a set of two or more nodes of a multiple node system; establishing a mapping between the plurality of partitions and a plurality of data items by performing a hash operation on hash keys to produce hash values, wherein at least a portion of the hash keys are identifiers associated with persistent storage devices and the mapping is based on the hash values; and in response to a request for a particular data item by a first node of said multiple node system, performing the steps of determining which partition of said plurality of partitions corresponds to the particular data item based on said mapping; determining whether the particular data item currently resides in said corresponding partition; if the particular data item does not currently reside in said corresponding partition, then loading a copy of the particular data item into the corresponding partition; and providing the particular data item from the corresponding partition to the first node. - View Dependent Claims (11, 27, 28)
-
-
12. A method for managing data, the method comprising the steps of:
-
allocating a plurality of partitions of a shared cache, wherein said plurality of partitions include a partition in each of a set of two or more nodes of a multiple node system; establishing a mapping between the plurality of partitions and a plurality of data items; and in response to a request for a particular data item by a first node of said multiple node system, performing the steps of determining which partition of said plurality of partitions corresponds to the particular data item based on said mapping; determining whether the particular data item currently resides in said corresponding partition; if the particular data item does not currently reside in said corresponding partition, then loading a copy of the particular data item into the corresponding partition; and providing the particular data item from the corresponding partition to the first node; wherein recovery from failure of a particular partition of said plurality of partitions includes recovering a data item that resided in said particular partition based on a current version of the data item from a node-private cache of a surviving node of said multiple node system. - View Dependent Claims (13, 29, 30)
-
-
14. A method for managing data, the method comprising the steps of:
-
allocating a plurality of partitions of a shared cache, wherein said plurality of partitions include a partition in each of a set of two or more nodes of a multiple node system; establishing a mapping between the plurality of partitions and a plurality of data items; and in response to a request for a particular data item by a first node of said multiple node system, performing the steps of determining which partition of said plurality of partitions corresponds to the particular data item based on said mapping; determining whether the particular data item currently resides in said corresponding partition; if the particular data item does not currently reside in said corresponding partition, then loading a copy of the particular data item into the corresponding partition; and providing the particular data item from the corresponding partition to the first node wherein; the multiple node system includes a plurality of nodes; a node of said plurality of nodes includes a checkpoint associated with a redo log; and the method further comprises preventing the node from advancing the checkpoint past a position in the redo log associated with a particular data item until the partition, of said plurality of partitions, that is associated with the particular data item has written the particular data item to persistent storage. - View Dependent Claims (31)
-
-
15. A method for managing data, the method comprising the steps of:
-
allocating a plurality of partitions of a shared cache, wherein said plurality of partitions include a partition in each of a set of two or more nodes of a multiple node system; establishing a mapping between the plurality of partitions and a plurality of data items; and in response to a request for a particular data item by a first node of said multiple node system, performing the steps of determining which partition of said plurality of partitions corresponds to the particular data item based on said mapping; determining whether the particular data item currently resides in said corresponding partition; if the particular data item does not currently reside in said corresponding partition, then loading a copy of the particular data item into the corresponding partition; and providing the particular data item from the corresponding partition to the first node; wherein recovery from failure of a particular partition of said plurality of partitions includes merging redo information from a plurality of nodes in said multiple node system. - View Dependent Claims (16, 24, 32)
-
Specification