IP Library Granted Patent US 7,743,167
Granted Patent B2
US 7,743,167 · App. 11/604,004 · Granted Jun 22, 2010

Method and system for servicing requests in a dynamic cluster

Assignee: Oracle America, Inc.
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 7,743,167
App. No.
11/604,004
Granted
Jun 22, 2010
Kind
B2
Abstract

A method for servicing requests in a dynamic cluster that includes receiving, by a first replica of the dynamic cluster, a first request that includes a first membership label from a client, wherein the client stores the first membership label and a first cluster list, determining whether the first membership label is obsolete, and sending a second membership label and a second cluster list to the client when the first membership label is obsolete, wherein the client updates the first cluster list with the second cluster list.

Claims (87)

1. A method for servicing requests in a dynamic cluster comprising:

receiving, by a first replica of a first plurality of replicas in the dynamic cluster, a first request comprising a first membership label from a client,

wherein the first request comprises an object key and the object key comprises an obsolete object reference,

wherein the client stores the first membership label and a first cluster list corresponding to the first membership label, and

wherein the first cluster list comprises identifiers of the first plurality of replicas;

identifying a reference factory corresponding to the object key;

obtaining an object reference template from the reference factory;

updating the obsolete object reference using the object reference template to create an updated object reference;

determining, by the first replica, whether the first membership label is obsolete; and

sending, by the first replica to the client, a second membership label and a second cluster list corresponding to the second membership label when the first membership label is obsolete,

wherein the second cluster list comprises identifiers of a second plurality of replicas in the dynamic cluster,

wherein the sending the second membership label and the second cluster list comprises:

intercepting, from a servant, a first response comprising results to the first request to the client;

adding the updated object reference to the first response, wherein the updated object reference comprises the second membership label and the second cluster list; and

sending the first response to the client, wherein the first response sent to the client comprises the results and the updated object reference, and

wherein the client updates the first cluster list with the second cluster list.

2. The method of claim 1 , further comprising:

receiving, by a second replica of the second plurality of replicas, a second request comprising the second membership label from the client; and

sending a second response based on the second request to the client.

3. The method of claim 2 , wherein the second replica is chosen to receive the second request based on a priority in the second cluster list.

4. The method of claim 1 , wherein a header of the first request comprises an object key and a service context, and wherein the service context comprises the first membership label.

5. The method of claim 1 , wherein determining whether the first membership label is obsolete comprises:

intercepting the first request by an interceptor executing on the first replica; and

comparing the first membership label with a stored membership label.

6. The method of claim 1 , wherein the object reference template comprises the second membership label and the second cluster list.

7. The method of claim 1 , further comprising:

receiving notification of a cluster list change; and

updating the reference factory to create an updated reference factory, wherein the updated reference factory comprises the object reference template with the second membership label and the second cluster list.

8. The method of claim 7 , further comprising:

destroying an obsolete object adaptor maintained by the reference factory in response to the notification; and

creating a new object adaptor by the updated reference factory when the first request is received,

wherein the updated object reference is created using the new object adaptor.

9. The method of claim 8 , wherein creating a new object adaptor is performed using an adaptor activator.

10. The method of claim 1 , further comprising:

receiving a notification of a cluster list change;

generating the second membership label by the first replica in response to the notification; and

generating a third membership label by a second replica in response to the notification,

wherein the second membership label and the third membership label are distinct.

11. The method of claim 1 , further comprising:

storing a last replica identifier by the client, wherein requests are transmitted only to a last replica identified by the last replica identifier until the last replica fails, wherein the last replica identifier identifies the first replica when the first request is received by the first replica.

12. A system comprising:

a first replica of a first plurality of replicas, the first replica comprising:

a first processor; and

a first set of instructions that when executed by the first processor causes the first processor to:

receive a first request comprising a first membership label from a client,

wherein the first request comprises an object key and the object key comprises an obsolete object reference,

wherein the client stores the first membership label and a first cluster list corresponding to the first membership label, and wherein the first cluster list comprises identifiers of the first plurality of replicas,

identify a reference factory corresponding to the object key;

obtain an object reference template from the reference factory;

update the obsolete object reference using the object reference template to create an updated object reference;

determine whether the first membership label is obsolete; and

send, to the client, a second membership label and a second cluster list corresponding to the second membership label when the first membership label is obsolete,

wherein the second cluster list comprises identifiers of a second plurality of replicas,

wherein the sending the second membership label and the second cluster list comprises:

 intercepting, from a servant, a first response comprising results to the first request to the client;

 adding the updated object reference to the first response, wherein the updated object reference comprises the second membership label and the second cluster list; and

 sending the first response to the client, wherein the first response sent to the client comprises the results and the updated object reference, and

wherein the client updates the first cluster list with the second cluster list; and

a second replica of the second plurality of replicas, the second replica comprising:

a second processor; and

a second set of instructions that when executed by the second processor causes the second processor to:

receive a second request comprising the second membership label from the client; and

send a second response based on the second request to the client.

13. The system of claim 12 , wherein a header of the first request comprises an object key and a service context, and wherein the service context comprises the first membership label.

14. The system of claim 13 , further comprising:

a server group manager configured to execute on the first replica,

wherein the server group manager determines whether the first membership label is obsolete, wherein determining whether the first membership label is obsolete comprises:

intercepting the first request by an interceptor executing on the first replica;

accessing the service context of the first request by the interceptor; and

comparing the first membership label with a stored membership label.

15. The system of claim 12 , wherein the client stores a last replica identifier, and wherein requests are transmitted only to a last replica identified by the last replica identifier until the last replica fails, wherein the last replica identifier identifies the first replica when the first request is received by the first replica.

16. A computer readable medium comprising computer readable program code embodied therein for causing a replica of a first plurality of replicas in a dynamic cluster to:

receive a request comprising a first membership label from a client,

wherein the request comprises an object key and the object key comprises an obsolete object reference,

wherein the client stores the first membership label and a first cluster list corresponding to the first membership label, and

wherein the first cluster list comprises identifiers of the first plurality of replicas;

identify a reference factory corresponding to the object key;

obtain an object reference template from the reference factory;

update the obsolete object reference using the object reference template to create an updated object reference;

determine whether the first membership label is obsolete; and

send, to the client, a second membership label and a second cluster list corresponding to the second membership label when the first membership label is obsolete,

wherein the second cluster list comprises identifiers of a second plurality of replicas in the dynamic cluster,

wherein the sending the second membership label and the second cluster list comprises:

intercepting, from a servant, a response comprising results to the first request to the client;

adding the updated object reference to the response, wherein the updated object reference comprises the second membership label and the second cluster list; and

sending the response to the client, wherein the first response sent to the client comprises the results and the updated object reference, and

wherein the client updates the first cluster list with the second cluster list.

Assignments (2)
MERGER AND CHANGE OF NAME Recorded Dec 16, 2015
From: ORACLE USA, INC.; SUN MICROSYSTEMS, INC.; ORACLE AMERICA, INC.
To: ORACLE AMERICA, INC.
Reel/Frame 037306/0292 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 22, 2006
From: CARR, HAROLD; CAVANAUGH, KEN M.
To: SUN MICROSYSTEMS, INC.
Reel/Frame 018617/0531 →
Continuity (2)
Provisional Application 6073970200 · Nov 23, 2005
Related Publication 20070124380A1 · May 31, 2007