Systems and methods for dynamic control of cache and pool sizes
First Claim
1. A system to support dynamic control of cache size, comprising:
- a cache capable of storing in memory one or more objects of each of one or more classes defined by an object-oriented programming language;
one or more properties associated with a class of the one or more classes;
a configuration file capable of defining the one or more properties associated with the class; and
a cache control component capable of performing on an object in the one or more objects at least one of;
instantiating and/or adding the object into the cache and setting the idle time of the object to zero;
monitoring the active and/or idle time of the object; and
removing the object from the cache if one or more criteria are met.
2 Assignments
0 Petitions
Accused Products
Abstract
The present invention provides users and processes with various features to control the memory usage by a cache and pool dynamically at runtime. The cache and pool can be initialized on demand to remove idle objects of classes from them without the server being restarted. When the cache and pool reach their maximum sizes, idle objects in them may be removed to make room for newly active objects using various strategies in batches, where the schedule (periodicity), size and processing time of each batch can be dynamically adjusted. When a newly created object is being added to a full cache where each object is enrolled in a transaction, one or more active objects may be passivated from the cache based on various criteria to make room for the new instance to be added. Various features of the cache and pool can be defined in a configuration file. This description is not intended to be a complete description of, or limit the scope of, the invention. Other features, aspects, and objects of the invention can be obtained from a review of the specification, the figures, and the claims.
37 Citations
41 Claims
-
1. A system to support dynamic control of cache size, comprising:
-
a cache capable of storing in memory one or more objects of each of one or more classes defined by an object-oriented programming language;
one or more properties associated with a class of the one or more classes;
a configuration file capable of defining the one or more properties associated with the class; and
a cache control component capable of performing on an object in the one or more objects at least one of;
instantiating and/or adding the object into the cache and setting the idle time of the object to zero;
monitoring the active and/or idle time of the object; and
removing the object from the cache if one or more criteria are met. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8)
-
-
9. A system to support dynamic control of cache size, comprising:
-
a cache capable of storing in memory one or more instances of each of one or more EJB types;
one or more properties associated with an EJB type of the one or more EJB types;
a deployment descriptor capable of defining the one or more properties associated with the EJB type; and
a cache control component capable of performing on an instance in the one or more instances at least one of;
instantiating and/or adding the instance into the cache and setting the idle time of the instance to zero;
monitoring the active and/or idle time of the instance; and
removing the instance from the cache if one or more criteria are met. - View Dependent Claims (10)
-
-
11. A system to support dynamic control of pool size, comprising:
-
a pool capable of storing in memory one or more objects of each of one or more classes;
one or more properties associated with a class of the one or more classes;
a configuration file capable of defining the one or more properties associated with the class; and
a pool control component capable of performing on an object in the one or more objects at least one of;
adding the object into the pool and setting the idle time of the object to zero;
monitoring the idle time of the object; and
removing the object from the pool if one or more criteria are met. - View Dependent Claims (12, 13)
-
-
14. A system to support dynamic control of pool size, comprising:
-
a pool capable of storing in memory one or more instances of each of one or more EJB types;
one or more properties associated with an EJB type of the one or more EJB types in the pool;
a deployment descriptor capable of defining the one or more properties associated with the EJB type; and
a pool control component capable of performing on an instance in the one or more instances at least one of;
adding the instance into the pool and setting the idle time of the instance to zero;
monitoring the idle time of the instance; and
removing the instance from the pool if one or more criteria are met. - View Dependent Claims (15)
-
-
16. A method to support dynamic control of cache size, comprising:
-
storing in memory one or more objects of each of one or more classes defined by an object-oriented programming language via a cache;
defining one or more properties associated with a class of the one or more classes via a configuration file; and
performing on an object in the one or more objects at least one of;
instantiating and/or adding the object into the cache and setting the idle time of the object to zero;
monitoring the active and/or idle time of the object; and
removing the object from the cache if one or more criteria are met. - View Dependent Claims (17, 18, 19)
-
-
20. A method to support dynamic control of cache size, comprising:
-
storing in memory one or more instances of each of one or more EJB types via a cache;
defining one or more properties associated with an EJB type of the one or more EJB types via a deployment descriptor; and
performing on an instance in the one or more instances at least one of;
instantiating and/or adding the instance into the cache and setting the idle time of the instance to zero;
monitoring the active and/or idle time of the instance; and
removing the instance from the cache if one or more criteria are met. - View Dependent Claims (21)
-
-
22. A method to support dynamic control of pool size, comprising:
-
storing in memory one or more objects of each of one or more classes via a pool;
defining one or more properties associated with a class of the one or more classes via a configuration file; and
performing on an object in the one or more objects at least one of;
adding the object into the pool and setting the idle time of the object to zero;
monitoring the idle time of the object; and
removing the object from the pool if one or more criteria are met.
-
-
23. A method to support dynamic control of pool size, comprising:
-
storing in memory one or more instances of each of one or more EJB types via a pool;
defining one or more properties associated with an EJB type of the one or more EJB types in the pool via a deployment descriptor; and
performing on an instance in the one or more instances at least one of;
adding the instance into the pool and setting the idle time of the instance to zero;
monitoring the idle time of the instance; and
removing the instance from the pool if one or more criteria are met. - View Dependent Claims (24)
-
-
25. A machine readable medium having instructions stored thereon that when executed cause a system to:
-
store in memory one or more objects of each of one or more classes defined by an object-oriented programming language via a cache;
define one or more properties associated with a class of the one or more classes via a configuration file; and
perform on an object in the one or more objects at least one of;
instantiating and/or adding the object into the cache and setting the idle time of the object to zero;
monitoring the active and/or idle time of the object; and
removing the object from the cache if one or more criteria are met. - View Dependent Claims (26, 27, 28)
-
-
29. A machine readable medium having instructions stored thereon that when executed cause a system to:
-
store in memory one or more instances of each of one or more EJB types via a cache;
define one or more properties associated with an EJB type of the one or more EJB types via a deployment descriptor; and
perform on an instance in the one or more instances at least one of;
instantiating and/or adding the instance into the cache and setting the idle time of the instance to zero;
monitoring the active and/or idle time of the instance; and
removing the instance from the cache if one or more criteria are met. - View Dependent Claims (30)
-
-
31. A machine readable medium having instructions stored thereon that when executed cause a system to:
-
store in memory one or more objects of each of one or more classes via a pool;
define one or more properties associated with a class of the one or more classes via a configuration file; and
perform on an object in the one or more objects at least one of;
adding the object into the pool and setting the idle time of the object to zero;
monitoring the idle time of the object; and
removing the object from the pool if one or more criteria are met.
-
-
32. A machine readable medium having instructions stored thereon that when executed cause a system to:
-
store in memory one or more instances of each of one or more EJB types via a pool;
define one or more properties associated with an EJB type of the one or more EJB types in the pool via a deployment descriptor; and
perform on an instance in the one or more instances at least one of;
adding the instance into the pool and setting the idle time of the instance to zero;
monitoring the idle time of the instance; and
removing the instance from the pool if one or more criteria are met. - View Dependent Claims (33)
-
-
34. A system to support dynamic control of cache size, comprising:
-
means for storing in memory one or more objects of each of one or more classes defined by an object-oriented programming language via a cache;
means for defining one or more properties associated with a class of the one or more classes via a configuration file; and
means for performing on an object in the one or more objects at least one of;
instantiating and/or adding the object into the cache and setting the idle time of the object to zero;
monitoring the active and/or idle time of the object; and
removing the object from the cache if one or more criteria are met.
-
-
35. A system to support dynamic control of cache size, comprising:
-
means for storing in memory one or more instances of each of one or more EJB types via a cache;
means for defining one or more properties associated with an EJB type of the one or more EJB types via a deployment descriptor; and
means for performing on an instance in the one or more instances at least one of;
instantiating and/or adding the instance into the cache and setting the idle time of the instance to zero;
monitoring the active and/or idle time of the instance; and
removing the instance from the cache if one or more criteria are met.
-
-
36. A system to support dynamic control of pool size, comprising:
-
means for storing in memory one or more objects of each of one or more classes via a pool;
means for defining one or more properties associated with a class of the one or more classes via a configuration file; and
means for performing on an object in the one or more objects at least one of;
adding the object into the pool and setting the idle time of the object to zero;
monitoring the idle time of the object; and
removing the object from the pool if one or more criteria are met.
-
-
37. A system to support dynamic control of pool size, comprising:
-
means for storing in memory one or more instances of each of one or more EJB types via a pool;
means for defining one or more properties associated with an EJB type of the one or more EJB types in the pool via a deployment descriptor; and
means for performing on an instance in the one or more instances at least one of;
adding the instance into the pool and setting the idle time of the instance to zero;
monitoring the idle time of the instance; and
removing the instance from the pool if one or more criteria are met.
-
-
38. A computer data signal embodied in a transmission medium, comprising:
-
a code segment including instructions to store in memory one or more objects of each of one or more classes defined by an object-oriented programming language via a cache;
a code segment including instructions to define one or more properties associated with a class of the one or more classes via a configuration file; and
a code segment including instructions to perform on an object in the one or more objects at least one of;
instantiating and/or adding the object into the cache and setting the idle time of the object to zero;
monitoring the active and/or idle time of the object; and
removing the object from the cache if one or more criteria are met.
-
-
39. A computer data signal embodied in a transmission medium, comprising:
-
a code segment including instructions to store in memory one or more instances of each of one or more EJB types via a cache;
a code segment including instructions to define one or more properties associated with an EJB type of the one or more EJB types via a deployment descriptor; and
a code segment including instructions to perform on an instance in the one or more instances at least one of;
instantiating and/or adding the instance into the cache and setting the idle time of the instance to zero;
monitoring the active and/or idle time of the instance; and
removing the instance from the cache if one or more criteria are met.
-
-
40. A computer data signal embodied in a transmission medium, comprising:
-
a code segment including instructions to store in memory one or more objects of each of one or more classes via a pool;
a code segment including instructions to define one or more properties associated with a class of the one or more classes via a configuration file; and
a code segment including instructions to perform on an object in the one or more objects at least one of;
adding the object into the pool and setting the idle time of the object to zero;
monitoring the idle time of the object; and
removing the object from the pool if one or more criteria are met.
-
-
41. A computer data signal embodied in a transmission medium, comprising:
-
a code segment including instructions to store in memory one or more instances of each of one or more EJB types via a pool;
a code segment including instructions to define one or more properties associated with an EJB type of the one or more EJB types in the pool via a deployment descriptor; and
a code segment including instructions to perform on an instance in the one or more instances at least one of;
adding the instance into the pool and setting the idle time of the instance to zero;
monitoring the idle time of the instance; and
removing the instance from the pool if one or more criteria are met.
-
Specification