Using a virtual machine instance as the basic unit of user execution in a server environment
First Claim
1. A method for servicing requests received by a database system in a multiple-user environment, the method comprising the steps of:
- spawning a first process executing a first virtual machine instance in response to establishing a first database session between the database system and a first user;
spawning a second process executing a second virtual machine instance in response to establishing a second database session between the database system and a second user;
responding to requests that are received by the database system in said first session by executing virtual machine code using the first virtual machine instance;
responding to requests that are received by the database system in said second session by executing the virtual machine code using the second virtual machine instance;
wherein said first virtual machine instance and said second virtual machine instance share access to data stored in a shared state area;
wherein said first virtual machine instance and said second virtual machine instance share read-only access to said data stored in said shared state area;
wherein said shared state area stores an object class;
wherein said first virtual machine instance stores, in session-specific memory associated with said first virtual machine instance, a first value for a static variable associated with said object class; and
wherein said second virtual machine instance stores, in session-specific memory associated with said second virtual machine instance, a second value for said static variable associated with said object class.
0 Assignments
0 Petitions
Accused Products
Abstract
Techniques are provided for instantiating separate Java virtual machines for each session established by a server. Because each session has its own virtual machine, the Java programs executed by the server for each user connected to the server are insulated from the Java programs executed by the server for all other users connected to the server. The separate VM instances can be created and run, for example, in separate units of execution that are managed by the operating system of the platform on which the server is executing. For example, the separate VM instances may be executed either as separate processes, or using separate system threads. Because the units of execution used to run the separate VM instances are provided by the operating system, the operating system is able to ensure that the appropriate degree of insulation exists between the VM instances.
30 Citations
20 Claims
-
1. A method for servicing requests received by a database system in a multiple-user environment, the method comprising the steps of:
-
spawning a first process executing a first virtual machine instance in response to establishing a first database session between the database system and a first user; spawning a second process executing a second virtual machine instance in response to establishing a second database session between the database system and a second user; responding to requests that are received by the database system in said first session by executing virtual machine code using the first virtual machine instance; responding to requests that are received by the database system in said second session by executing the virtual machine code using the second virtual machine instance; wherein said first virtual machine instance and said second virtual machine instance share access to data stored in a shared state area; wherein said first virtual machine instance and said second virtual machine instance share read-only access to said data stored in said shared state area; wherein said shared state area stores an object class; wherein said first virtual machine instance stores, in session-specific memory associated with said first virtual machine instance, a first value for a static variable associated with said object class; and wherein said second virtual machine instance stores, in session-specific memory associated with said second virtual machine instance, a second value for said static variable associated with said object class. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10)
-
-
11. A computer-readable storage medium storing instructions for servicing requests received by a server in a multiple-user environment, the instructions comprising instructions for performing the steps of:
-
spawning a first process executing a first virtual machine instance in response to establishing a first database session between the database system and a first user; spawning a second process executing a second virtual machine instance in response to establishing a second database session between the database system and a second user; responding to requests that are received by the database system in said first session by executing virtual machine code using the first virtual machine instance; responding to requests that are received by the database system in said second session by executing the virtual machine code using the second virtual machine instance; wherein said first virtual machine instance and said second virtual machine instance share access to data stored in a shared state area allocated in volatile memory; wherein said first virtual machine instance and said second virtual machine instance share read-only access to said data stored in said shared state area; wherein said shared state area stores an object class; wherein said first virtual machine instance stores, in session-specific memory associated with said first virtual machine instance, a first value for a static variable associated with said object class; and wherein said second virtual machine instance stores, in session-specific memory associated with said second virtual machine instance, a second value for said static variable associated with said object class. - View Dependent Claims (12, 13, 14, 15, 16, 17, 18, 19, 20)
-
Specification