IP Library › Granted Patent US 7,552,218
Granted Patent B2
US 7,552,218 · App. 10/917,953 · Granted Jun 23, 2009

Transparent session migration across servers

Assignee: Oracle International Corporation
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,552,218
App. No.
10/917,953
Granted
Jun 23, 2009
Kind
B2
Abstract

Techniques allow a client to be switched from a session on a server to another session on another server in a way that is a transparent to the application for which the initial session was established. Thus, under transparent session migration, a client is switched between sessions without executing application instructions tailored to accomplish the migration. Instead, a client-side interface component, through which the application interacts with the server, handles details of migration, modifying the internal state of the client-side interface component to effect the same. Legacy applications do not have to be modified in order to institute techniques described herein.

Claims (73)

1. A method, the method comprising the computer-implemented steps of:

receiving a request to establish a certain session for a client of a multi-node system;

wherein a first database server runs on a first node of said multi-node system;

wherein a second database server runs on a second node of said multi-node system;

establishing as the certain session a first database session with said first database server of the multi-node system;

determining to transfer the certain session to said second database server;

transferring first session state of the first database session from the first database server to a second database session on the second database server;

wherein said first session state comprises temporary variable values generated by one or more processes executing database component software within the database session; and

establishing the second database session as the certain session for the client.

2. The method of claim 1 , wherein the step of transferring first session state includes:

the first node generating and storing a copy of a portion of the first database session state; and

sending a copy of the portion of the first database session state to the second node via a connection established between the first node and the second node.

3. A computer-readable storage medium carrying one or more sequences of instructions which, when executed by one or more processors, causes the one or more processors to perform the method recited in claim 2 .

4. The method of claim 1 , wherein:

the step of determining to transfer includes determining whether one or more migration criteria are satisfied; and

wherein the step of transferring first session state is commenced only if the one or more migration criteria are satisfied.

5. The method of claim 4 , wherein the one or more migration criteria are based on whether a transaction associated with the first database session has terminated.

6. The method of claim 5 , the steps further including:

sending a first message to the client to cause the client to create the second database session;

the client transmitting a second message to the first node indicating that the second database session has been created; and

in response to receiving the second message, the first node commencing transferring first session state.

7. The method of claim 6 , wherein:

the second message contains connection data for establishing a connection to the second node; and

transferring first session state includes transferring the first database session state via the connection.

8. A computer-readable storage medium carrying one or more sequences of instructions which, when executed by one or more processors, causes the one or more processors to perform the method recited in claim 7 .

9. A computer-readable storage medium carrying one or more sequences of instructions which, when executed by one or more processors, causes the one or more processors to perform the method recited in claim 5 .

10. The method of claim 4 , wherein:

each component of a plurality of software components executed on the first node accesses a respective portion of the first database session state;

the step of determining whether the one or more migration criteria are satisfied includes for each component of the plurality of components, invoking a function of the each component, the function returning a value indicating whether the respective portion of the first database session state can be transferred to another node; and

wherein the one or more migration criteria are based on the values returned by the function of each component of the plurality of components.

11. A computer-readable storage medium carrying one or more sequences of instructions which, when executed by one or more processors, causes the one or more processors to perform the method recited in claim 10 .

12. A computer-readable storage medium carrying one or more sequences of instructions which, when executed by one or more processors, causes the one or more processors to perform the method recited in claim 4 .

13. The method of claim 6 , wherein the steps further include:

in response to receiving the first message from the first node, the client transmitting to the second node a certain request to create the second database session; and

after creating the second database session:

the second node establishing a port for a connection to the first node, and

the second node transmitting to the client a message that contains connection data for establishing a connection to the port.

14. The method of claim 13 , wherein the steps further include:

the client transmitting to the second node a message that contains a copy of the connection data for establishing the connection to the port; and

in response to receiving the message that contains a copy of the connection data:

the first node establishing a connection based on the connection data, and commencing the step of transferring first session state.

15. A computer-readable storage medium carrying one or more sequences of instructions which, when executed by one or more processors, causes the one or more processors to perform the method recited in claim 13 .

16. A computer-readable storage medium carrying one or more sequences of instructions which, when executed by one or more processors, causes the one or more processors to perform the method recited in claim 14 .

17. The method of claim 6 , the steps further including after transferring the first database session state, sending a third message to the client to cause the client to use the second database session as the certain session.

18. A computer-readable storage medium carrying one or more sequences of instructions which, when executed by one or more processors, causes the one or more processors to perform the method recited in claim 17 .

19. A computer-readable storage medium carrying one or more sequences of instructions which, when executed by one or more processors, causes the one or more processors to perform the method recited in claim 6 .

20. The method of claim 1 , the steps further including receiving a request to migrate the first database session to the second node.

21. The method of claim 20 , the steps further including:

tracking progress of migrating the first database session;

based on the progress of migrating the first database session and a period of time,

ceasing to migrate the first database session,

generating data that indicates that migration of the first database session was attempted unsuccessfully.

22. A computer-readable storage medium carrying one or more sequences of instructions which, when executed by one or more processors, causes the one or more processors to perform the method recited in claim 21 .

23. A computer-readable storage medium carrying one or more sequences of instructions which, when executed by one or more processors, causes the one or more processors to perform the method recited in claim 20 .

24. The method of claim 1 , wherein:

the client resides on a computer and executes an application;

the application invokes a interface component to interact with a server that resides on the multi-node system;

the application makes a call to the server; and

the step of transferring first session state and establishing the second database session as the certain session are performed within the call.

25. A computer-readable storage medium carrying one or more sequences of instructions which, when executed by one or more processors, causes the one or more processors to perform the method recited in claim 24 .

26. The method of claim 1 , the steps further including:

the first node receiving a request to migrate the first database session to the second node;

after determining that a period of time has elapsed, the first node causing the client to call a server hosted one the second node; and

the step of transferring first session state and establishing the second database session as the certain session are performed within the call.

27. A computer-readable storage medium carrying one or more sequences of instructions which, when executed by one or more processors, causes the one or more processors to perform the method recited in claim 26 .

28. The method of claim 1 , wherein:

the step of transferring first session state and establishing the second database session are performed as an operation to migrate the first database session to the second node;

the steps further include, as a response to detecting a migration failure event:

ceasing to migrate the first database session,

relinquishing resources allocated to migrating the first database session, and

generating data that indicates that migration of the first database session was attempted unsuccessfully.

29. A computer-readable storage medium carrying one or more sequences of instructions which, when executed by one or more processors, causes the one or more processors to perform the method recited in claim 28 .

30. A computer-readable storage medium carrying one or more sequences of instructions which, when executed by one or more processors, causes the one or more processors to perform the method recited in claim 1 .

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 18, 2004
From: KALUSKAR, SANJAY; GOLLAPUDI, SREENIVAS; CHATTERJEE, DEBASHISH
To: ORACLE INTERNATIONAL CORPORATION
Reel/Frame 015888/0001 →
Continuity (2)
Provisional Application 6049536800 · Aug 14, 2003
Related Publication 20050038848A1 · Feb 17, 2005