US 7,493,400 B2
Creating and dissolving affinity relationships in a cluster
Juan R. Loaiza, Redwood City, Calif. (US); Neil James Scott Macnaughton, Los Gatos, Calif. (US); and Sashikanth Chandrasekaran, San Jose, Calif. (US)
Assigned to Oracle International Corporation, Redwood Shores, Calif. (US)
Filed on May 18, 2005, as Appl. No. 11/132,811.
Prior Publication US 2006/0265414 A1, Nov. 23, 2006
Int. Cl. G06F 15/16 (2006.01); G06F 9/46 (2006.01)
U.S. Cl. 709—227  [718/104; 718/106] 22 Claims
OG exemplary drawing
 
1. A method for mastering resources within a system that includes a plurality of nodes, the method comprising:
using an affinity-independent assignment mechanism to determine which nodes, of said plurality of nodes, master resources that belong to a first set of resources;
wherein resources within said first set of resources belong to objects for which no affinity relationship has been established;
using an affinity-based assignment mechanism to determine which nodes, of said plurality of nodes, master resources that belong to a second set of resources;
wherein resources within the second set of resources belong to objects for which an affinity relationship has been established;
wherein an affinity relationship has been established between a particular object and a particular node based on a set of factors;
wherein the set of factors includes at least one of:
how many locks the particular node has opened on the particular object relative to how many locks other nodes have opened on the particular object;
a comparison between a first cost of executing a particular command without establishing the affinity relationship, and a second cost of executing said particular command after establishing the affinity relationship;
the type of the operation specified in a command that accesses the object;
knowledge, about the object, known by the system;
user-specified affinity information; and
existence of a relationship between the particular object and another object that is in an affinity relationship with the particular node;
wherein the method is executed by a computer system.