Garbage collection method for time-constrained distributed applications
AssigneeLucent Technologies Inc.
InventorsMurali Aravamudan, Prakash Iyer
Life of this patent
Estimating the term…
Abstract
A method for executing distributed processes on garbage collecting virtual machines. More particularly, garbage collection is delivered as a function of certain timing variables such as the time until a process will require its next garbage collection cycle, process hibernation time, and the actual total garbage collection time per process. Advantageously, distributed application programs are executed on garbage collecting virtual machines without any adverse processing impact resulting from the garbage collection process.
Claims20
A method for providing services in a telecommunications system, the system including at least one device server, at least two call coordinators, and a memory having a plurality of objects, the method comprising:
- executing a first process in the device server which during execution uses particular ones of a plurality of free objects from the plurality of objects in the memory to deliver at least one service in the telecommunications system;
- executing a second process in a first call coordinator for receiving and operating on requests from the device server in the delivery of the at least one service;
- executing a sequence of garbage collection cycles in the telecommunications system for identifying and collecting a plurality of unused objects, the sequence of garbage collection cycles including:
- establishing a process execution time interval, a process hibernation time interval, and a garbage collection time interval;
- defining a third process in a second call coordinator for receiving and operating on requests from the device server in the delivery of the at least one service;
- determining whether the second process in the first call coordinator has executed for a time period equal to the process execution time interval, and if so, placing the second process into a hibernation state for a time period equal to the process hibernation time interval such that during the process hibernation time interval the second process accepts no further requests from the device server;
- executing, concurrently with the first process and the second process, the third process in the second call coordinator for receiving and operating on all requests from the device server;
- traversing, for a time period equal to the garbage collection time interval, the plurality of objects in the memory and collecting particular ones of the plurality of objects that are unused to form a plurality of unused objects, and returning the plurality of unused objects to the plurality of free objects;
- and
- returning, after a time interval equal to a combination of the process hibernation time interval and the garbage collection time interval, execution back to the second process in the first call coordinator for the receiving and the operating on the requests from the device server.
A method for managing a memory, the memory storing a plurality of objects, of a computer system, the computer system including a device server and at least two clients, the method comprising:
- executing a first process in the device server which during execution uses particular ones of a plurality of free objects from the plurality of objects in the memory to deliver at least one application in the computer system;
- executing a second process in a first client for receiving and operating on requests from the device server in the delivery of the at least one application;
- executing a sequence of garbage collection cycles in the computer system for identifying and collecting a plurality of unused objects, the sequence of garbage collection cycles including:
- establishing a process execution time interval, a process hibernation time interval, and a garbage collection time interval;
- defining a third process in a second client for receiving and operating on requests from the device server in the delivery of the at least one application;
- determining whether the second process in the first client has executed for a time period equal to the process execution time interval, and if so, placing the second process into a hibernation state for a time period equal to the process hibernation time interval such that during the process hibernation time interval the second process accepts no further requests from the device server;
- executing, concurrently with the first process and the second process, the third process in the second client for receiving and operating on all requests from the device server;
- traversing, for a time period equal to the garbage collection time interval, the plurality of objects in the memory and collecting particular ones of the plurality of objects that are unused to form a plurality of unused objects, and returning the plurality of unused objects to the plurality of free objects;
- and
- returning, after a time interval equal a combination of the process hibernation time interval and the garbage collection time interval, execution back to the second process in the first client for the receiving and the operating on the requests from the device server.
A machine-readable medium having stored thereon a plurality of instructions, the plurality of instructions including instructions that, when executed by a machine, cause the machine to perform of a method for providing services in a telecommunications system, the telecommunications systems having a device server, at least two call coordinators and a memory having a plurality of objects, by executing a first process in the device server which during execution uses particular ones of a plurality of free objects from the plurality of objects in the memory to deliver at least one service in the telecommunications system;
- executing a second process in a first call coordinator for receiving and operating on requests from the device server in the delivery of the at least one service;
- executing a sequence of garbage collection cycles in the telecommunications system for identifying and collecting a plurality of unused objects, the sequence of garbage collection cycles including:
- establishing a process execution time interval, a process hibernation time interval, and a garbage collection time interval;
- defining a third process in a second call coordinator for receiving and operating on requests from the device server in the delivery of the at least one service;
- determining whether the second process in the first call coordinator has executed for a time period equal to the process execution time interval, and if so, placing the second process into a hibernation state for a time period equal to the process hibernation time interval such that during the process hibernation time interval the second process accepts no further requests from the device server;
- executing, concurrently with the first process and the second process, the third process in the second call coordinator for receiving and operating on all requests from the device server;
- traversing, for a time period equal to the garbage collection time interval, the plurality of objects in the memory and collecting particular ones of the plurality of objects that are unused to form a plurality of unused objects, and returning the plurality of unused objects to the plurality of free objects;
- and
- returning, after a time interval equal to a combination of the process hibernation time interval and the garbage collection time interval, execution back to the second process in the first call coordinator for the receiving and the operating on the requests from the device server.
Dependencies are inferred from the claim text.