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.
Un encargado de la sesión tiene un mecanismo del descanso de la sesión selectivamente a las sesiones del servidor de cliente del descanso. El mecanismo del descanso de la sesión tiene cubos múltiples del descanso para llevar a cabo grupos correspondientes de sesiones según los períodos del descanso de las sesiones. Las sesiones situadas en las diversas de los cubos del descanso se fijan al descanso en diversas horas. El encargado de la sesión también tiene un reloj del descanso de la sesión que se incremente cada unidad predeterminada del tiempo (e.g., cada minuto). El reloj del descanso de la sesión mantiene un indicador a uno de los cubos y de los avances del descanso ese indicador con cada incremento del reloj. El reloj del descanso de la sesión avanza el indicador con todos los cubos del descanso, un cubo a la vez. El reloj del descanso de la sesión avanza el indicador en varias ocasiones a través de todos los cubos. La duración de ciclo para el reloj del descanso de la sesión de referirse a cada cubo del descanso es igual a la unidad incremental del tiempo multiplicada por el número de cubos. Una nueva sesión (o una que recibió una petición y está recomenzando recientemente su período del descanso) se inserta en un cubo del descanso que sea unos o más cubos delante del indicador del reloj, dependiendo del período del descanso de la sesión. Cuando el reloj del descanso se refiere a un cubo particular, las sesiones en que el cubo está analizado para el descanso posible. Las sesiones que período del descanso ha funcionado sin la recepción de ningunas nuevas peticiones se miden el tiempo hacia fuera y se quitan del cubo.