Claims
- 1. A method for dynamically sizing one or more session pools, each of the one or more session pools comprising one or more sessions, the method comprising:
requesting a free session from a first session pool; determining that the free session is not immediately available in the first session pool; in response to determining that the free session is not available from the first session pool, determining whether an identified session from a second session pool can be de-allocated; and if the identified session from the second session pool can be de-allocated, dynamically sizing the first and second session pools by de-allocating the identified session from the second session pool and creating a new session in the first session pool.
- 2. The method of claim 1 in which the one or more session pools are homogeneous.
- 3. The method of claim 2 in which each session in the first session pool is associated with the same user and password combination.
- 4. The method of claim 1 further comprising:
determining that the identified session is eligible to be de-allocated.
- 5. The method of claim 4 in which the identified session from the second session pool is eligible to be de-allocated because it is an idle session.
- 6. The method of claim 4 in which the identified session is performing work that has been designated as having a lower relative priority than work intended to be performed by the free session.
- 7. The method of claim 4 in which the second session pool has been designated as having lower relative priority than the first session pool.
- 8. The method of claim 4 in which the identified session is part of an distribution imbalance of sessions between the first and second session pools.
- 9. The method of claim 8 in which the first session pool comprises less sessions than is adequate for first session workload and the second session pool has more sessions than is needed for second session workload.
- 10. The method of claim 1 in which one or more sessions are tagged to indicate specific combinations of session attributes, wherein the identified session is selected based upon its tag.
- 11. The method of claim 1 in which the first session pool is a first sub-session pool and the second session pool is a second sub-session pool.
- 12. The method of claim 11 in which the first and second sub-session pools are within the same single session pool.
- 13. The method of claim 1 in which the act of de-allocating the identified session and creating the new session is performed by reassigning the identified session from the first session pool to the second session pool.
- 14. The method of claim 13 in which the act of reassigning the identified session is performed by modifying the configuration of the identified session.
- 15. The method of claim 13 in which a tag associated with the identified session is modified to correspond to the configuration of the new session.
- 16. A method for preemptively sizing one or more session pools, each of the one or more session pools comprising one or more sessions, the method comprising:
determining whether a first and second session pools should be preemptively resized, in which the decision to resize is not in response to an immediate request for a free session; and resizing the first and second session pools by de-allocating a first session from the first session pool and creating a new session in the second session pool.
- 17. The method of claim 16 in which the act of determining whether to preemptively resize the first and second session pools is based upon relative distribution of sessions between the first and second session pools.
- 18. The method of claim 17 in which a distribution imbalance exists between the first and second session pools.
- 19. The method of claim 18 in which the second session pool comprises less sessions than is adequate for second session workload and the first session pool has more sessions than is needed for first session workload.
- 20. The method of claim 18 in which one or more sessions are tagged to indicate specific combinations of session attributes, wherein the distribution imbalance is based upon an imbalance between different tagged sessions.
- 21. The method of claim 16 in which the first and second session pools are homogeneous.
- 22. The method of claim 16 in which the first session from the first session pool is eligible to be de-allocated because it is an idle session.
- 23. The method of claim 16 in which the act of determining whether to preemptively resize the first and second session pools is based upon relative priorities between the first and second session pools.
- 24. The method of claim 16 in which the first session pool is a first sub-session pool and the second session pool is a second sub-session pool.
- 25. The method of claim 24 in which the first and second sub-session pools are within the same single session pool.
- 26. The method of claim 16 in which the act of de-allocating the first session and creating the new session is performed by reassigning the first session from the first session pool to the second session pool.
- 27. The method of claim 26 in which the act of reassigning the first session is performed by modifying the configuration of the first session.
- 28. The method of claim 26 in which a tag associated with the identified session is modified to correspond to the configuration of the new session.
- 29. The method of claim 16 in which heuristics are employed to determine whether the first and second session pools should be preemptively resized.
- 30. The method of claim 16 in which distribution of tagged sessions is considered to determine whether the first and second session pools should be preemptively resized.
- 31. The method of claim 30 in which the first session is associated with a first tag and the new session is associated with a second tag.
- 32. A computer program product comprising a computer usable medium having executable code to execute a process for dynamically sizing one or more session pools, each of the one or more session pools comprising one or more sessions, the process comprising:
requesting a free session from a first session pool; determining that the free session is not immediately available in the first session pool; in response to determining that the free session is not available from the first session pool, determining whether an identified session from a second session pool can be de-allocated; and if the identified session from the second session pool can be de-allocated, dynamically sizing the first and second session pools by de-allocating the identified session from the second session pool and creating a new session in the first session pool.
- 33. A system for dynamically sizing one or more session pools, each of the one or more session pools comprising one or more sessions, the session pools residing on a server in an n-tier computing architecture, comprising:
means for requesting a free session from a first session pool of the server in the n-tier computing architecture; means for determining that the free session is not immediately available in the first session pool; means for determining whether an identified session from a second session pool can be de-allocated in response to determining that the free session is not available from the first session pool; and means for dynamically sizing the first and second session pools by de-allocating the identified session from the second session pool and creating a new session in the first session pool if the identified session from the second session pool can be de-allocated.
- 34. A system for preemptively sizing one or more session pools, each of the one or more session pools comprising one or more sessions, comprising:
means for determining whether a first and second session pools should be preemptively resized, in which the decision to resize is not in response to an immediate request for a free session; and means for resizing the first and second session pools by de-allocating a first session from the first session pool and creating a new session in the second session pool.
- 35. A computer program product comprising a computer usable medium having executable code to execute a process for preemptively sizing one or more session pools, each of the one or more session pools comprising one or more sessions, the process comprising:
determining whether a first and second session pools should be preemptively resized, in which the decision to resize is not in response to an immediate request for a free session; and resizing the first and second session pools by de-allocating a first session from the first session pool and creating a new session in the second session pool.
CROSS-REFERENCE TO RELATED APPLICATIONS
[0001] The present application claims the benefit of U.S. Provisional Application Serial No. 60/379,663, entitled “Session Pooling and Statement Sharing”, filed on May 10, 2002, the contents of which are explicitly incorporated herein by reference in its entirety.
Provisional Applications (1)
|
Number |
Date |
Country |
|
60379663 |
May 2002 |
US |