Server system with scalable session timeout mechanism
First Claim
1. A network server system for a computer network system to handle requests from one or more clients, the network server system comprising:
- a processing unit;
a memory subsystem;
a session manager stored in the memory subsystem and executable on the processing unit to manage client-server sessions, the session manager grouping the sessions into timeout buckets according to timeout periods associated with the sessions; and
wherein the sessions have a default session timeout period expressed as whole units, and the session manager establishes a predetermined number of timeout buckets that is at least one greater than the default session timeout period.
2 Assignments
0 Petitions
Accused Products
Abstract
A session manager has a session timeout mechanism to selectively timeout client-server sessions. The session timeout mechanism has multiple timeout buckets to hold corresponding groups of sessions according to the sessions'"'"' timeout periods. Sessions located in different ones of the timeout buckets are set to timeout at different times. The session manager also has a session timeout clock that is incremented every predetermined time unit (e.g., every minute). The session timeout clock maintains a pointer to one of the timeout buckets and advances that pointer with each clock increment. The session timeout clock advances the pointer through all of the timeout buckets, one bucket at a time. The session timeout clock advances the pointer repeatedly through all the buckets. The cycle time for the session timeout clock to reference every timeout bucket is equal to the incremental time unit multiplied by the number of buckets. A new session (or one that recently received a request and is restarting its timeout period) is inserted into a timeout bucket that is one or more buckets ahead of the clock pointer, depending upon the session'"'"'s timeout period. When the timeout clock references a particular bucket, the sessions in that bucket are analyzed for possible timeout. Sessions whose timeout period has run without receiving any new requests are timed out and removed from the bucket.
-
Citations
40 Claims
-
1. A network server system for a computer network system to handle requests from one or more clients, the network server system comprising:
-
a processing unit;
a memory subsystem;
a session manager stored in the memory subsystem and executable on the processing unit to manage client-server sessions, the session manager grouping the sessions into timeout buckets according to timeout periods associated with the sessions; and
wherein the sessions have a default session timeout period expressed as whole units, and the session manager establishes a predetermined number of timeout buckets that is at least one greater than the default session timeout period. - View Dependent Claims (2, 3, 4, 5, 6)
-
-
7. A network server system for a computer network system to handle requests from one or more clients, the network server system comprising:
-
a processing unit;
a memory subsystem;
a session manager stored in the memory subsystem and executable on the processing unit to manage client-server sessions, the session manager grouping the sessions into timeout buckets according to timeout periods associated with the sessions; and
wherein the session manager cycles through the timeout buckets one bucket at a time, pausing for a predetermined time interval between each of the timeout buckets, to analyze the sessions contained in a currently referenced timeout bucket for possible time out.
-
-
8. A session timeout system for use in a network server connected to serve one or more clients over a network, the network server establishing sessions for the clients to facilitate communication between the network server and the clients, the session timeout system comprising:
-
multiple timeout buckets to hold corresponding groups of sessions according to timeout periods of the sessions so that the sessions located in different ones of the timeout buckets are set to timeout at different times, the sessions having a default session timeout period expressed as whole units and a total number of the timeout buckets number is at least one greater than the default session timeout period; and
a session timeout clock to cycle consecutively through the timeout buckets at predefined time intervals, the session timeout clock maintaining a reference to a current bucket so that the sessions held by the current bucket are analyzed for possible timeout. - View Dependent Claims (9, 10, 11, 12, 13, 14)
-
-
15. A server application for execution on a server that is configured to serve one or more clients, the server application having a session manager to manage sessions established to facilitate client-server connections, the session manager grouping the sessions into multiple buckets according to timeout periods associated with the sessions so that the sessions located in different ones of the timeout buckets are set to timeout at different times, the session manager maintaining a session timeout clock that increments every predetermined time unit to advance a reference among the timeout buckets so that one timeout bucket is referenced at a time, the session manager analyzing the sessions contained in a currently referenced timeout bucket for possible time out.
-
16. A method for managing sessions established to facilitate client-server connections, comprising the following steps:
-
establishing a predetermined number of timeout buckets; and
inserting the sessions into ones of the timeout buckets according to respective timeout periods associated with the sessions, the sessions having a default session timeout period expressed as whole units and the predetermined number of timeout buckets being at least one greater than the default session timeout period. - View Dependent Claims (17, 18, 19, 20, 21, 22)
referencing through the timeout buckets; and
analyzing the sessions associated with the timeout bucket being currently referenced for possible timeout.
-
-
18. A method as recited in claim 16, further comprising the following steps:
-
upon receiving a new request associated with a particular session, removing the particular session from its timeout bucket;
processing the new request; and
inserting the particular session into another one of the timeout buckets.
-
-
19. An application embodied on a computer-readable medium configured to perform the steps of the method as recited in claim 16.
-
20. A method as recited in claim 17, wherein the referencing step comprises the following steps:
-
maintaining a reference to a current timeout bucket; and
moving the reference from the current timeout bucket to a next timeout bucket after a predetermined time interval elapses.
-
-
21. A method as recited in claim 17, wherein the analyzing step comprises the step of timing out all sessions associated with the currently referenced timeout bucket.
-
22. A method as recited in claim 17, further comprising the step of removing any sessions to be timed out from the currently referenced timeout bucket.
-
23. A method for managing sessions established to facilitate client-server connections, comprising the following steps:
-
grouping the sessions into a predetermined number of multiple timeout buckets according to respective timeout periods associated with the sessions;
maintaining a reference to a timeout bucket from among the multiple timeout buckets;
moving the reference among the timeout buckets at clocked intervals, one bucket at a time;
assessing particular sessions associated with the currently referenced timeout bucket to determine whether the particular sessions should be timed out; and
in an event the particular sessions associated with the currently referenced timeout bucket should be timed out, timing out the particular sessions. - View Dependent Claims (24, 25, 26, 27, 28, 29, 30, 31, 32, 33)
upon receiving a new request associated with a specific session, removing the specific session from its timeout bucket;
processing the new request; and
inserting the specific session into another one of the timeout buckets.
-
-
31. A method as recited in claim 23, further comprising the step of tracking an absolute time.
-
32. An application embodied on a computer-readable medium configured to perform the steps of the method as recited in claim 23.
-
33. A method as recited in claim 31, further comprising the following steps
expressing a timeout period of at least one session according to an absolute time value; -
the assessing step comprises the step of comparing, when the timeout bucket holding said one session is being referenced, the absolute time value of the timeout period of said one session to the absolute time; and
timing out said one session if the absolute time value of the timeout period matches the absolute time.
-
-
34. A method for managing sessions established to facilitate client-server connections, individual sessions having an associated timeout period that can be expressed in whole units of time, the method comprising the following steps:
-
establishing a predetermined number of timeout buckets;
incrementing a timeout clock at every predetermined time interval;
maintaining a reference to one of the timeout buckets;
sequentially advancing the reference among the timeout buckets, one at a time, with each increment of the timeout clock so that said each timeout bucket is referenced for the predetermined time interval;
inserting a new session into one of the timeout buckets in advance of the currently referenced timeout bucket; and
determining whether any sessions in the currently referenced timeout bucket should be timed out. - View Dependent Claims (35, 36, 37, 38, 39, 40)
upon receiving a new request associated with a specific session, removing the specific session from its timeout bucket;
processing the new request; and
inserting the specific session into another one of the timeout buckets.
-
-
40. A method as recited in claim 37, further comprising the following steps
expressing a timeout period of at least one session according to an absolute time value; -
the determining step comprises the step of comparing, when the timeout bucket holding said one session is being referenced, the absolute time value of the timeout period of said one session to the absolute time; and
timing out said one session if the absolute time value of the timeout period matches the absolute time.
-
Specification