Method and system for providing highly available services based on a load balancing policy and a reusable connection context object
First Claim
1. A method for providing highly available services, said method comprising:
- providing a connection pool, said connection pool including a connection for each of a plurality of servers, wherein the connection pool comprises a pool of reusable connection context objects, each reusable connection context object containing information about an associated server in the plurality of servers;
applying a load-balancing policy to said connection pool;
assigning a reusable connection context object from said connection pool to a client, according to said load-balancing policy, in response to a request from the client; and
managing a content of the connection pool, wherein managing the content of the connection pool comprises periodically waking a connection pool management thread that, for each connection in the connection pool;
determines if the connection in the connection pool was accessed during a previous sleep period of the connection pool management thread;
checks availability of a server associated with the connection if the connection was not accessed during a previous sleep period of the connection pool management thread;
maintains a reusable connection context object associated with the connection in the connection pool if the connection was accessed during the previous sleep period of the connection pool management thread or the check of the availability of the server results in an indication that the server is available; and
removes the reusable connection context object associated with the connection from the connection pool if the check of the availability results in an indication that the server is not available.
1 Assignment
0 Petitions
Accused Products
Abstract
An example of a solution provided here comprises: providing a connection pool, said connection pool including a connection for each of a plurality of servers; applying a load-balancing policy to said connection pool; and assigning a connection from said connection pool to a client, according to said load-balancing policy. Another example of a solution comprises: providing a plurality of directory servers; providing a connection pool, said connection pool including a connection for each of said plurality of directory servers; applying a load-balancing policy to said connection pool; and assigning a connection from said connection pool to a client, according to said load-balancing policy. Methods for providing highly available services, systems for executing such methods, and instructions on a computer-usable medium, for executing such methods, are provided.
111 Citations
26 Claims
-
1. A method for providing highly available services, said method comprising:
-
providing a connection pool, said connection pool including a connection for each of a plurality of servers, wherein the connection pool comprises a pool of reusable connection context objects, each reusable connection context object containing information about an associated server in the plurality of servers; applying a load-balancing policy to said connection pool; assigning a reusable connection context object from said connection pool to a client, according to said load-balancing policy, in response to a request from the client; and managing a content of the connection pool, wherein managing the content of the connection pool comprises periodically waking a connection pool management thread that, for each connection in the connection pool; determines if the connection in the connection pool was accessed during a previous sleep period of the connection pool management thread; checks availability of a server associated with the connection if the connection was not accessed during a previous sleep period of the connection pool management thread; maintains a reusable connection context object associated with the connection in the connection pool if the connection was accessed during the previous sleep period of the connection pool management thread or the check of the availability of the server results in an indication that the server is available; and removes the reusable connection context object associated with the connection from the connection pool if the check of the availability results in an indication that the server is not available. - View Dependent Claims (2, 3, 4, 5, 6)
-
-
7. A method for providing highly available services, said method comprising:
-
providing a plurality of directory servers; providing a connection pool, said connection pool including a connection for each of said plurality of directory servers, wherein the connection pool comprises a pool of reusable connection context objects, each reusable connection context object containing information about an associated directory server in the plurality of directory servers; applying a load-balancing policy to said connection pool; assigning a reusable connection context object from said connection pool to a client, according to said load-balancing policy, in response to a request from the client; and managing a content of the connection pool, wherein managing the content of the connection pool comprises periodically waking a connection pool management thread that, for each connection in the connection pool; determines if the connection in the connection pool was accessed during a previous sleep period of the connection pool management thread; checks availability of a server associated with the connection if the connection was not accessed during a previous sleep period of the connection pool management thread; maintains a reusable connection context object associated with the connection in the connection pool if the connection was accessed during the previous sleep period of the connection pool management thread or the check of the availability of the server results in an indication that the server is available; and removes the reusable connection context object associated with the connection from the connection pool if the check of the availability results in an indication that the server is not available. - View Dependent Claims (8, 9, 10, 11, 12, 13, 14)
-
-
15. A system for providing highly available services, said system comprising:
-
means for providing a connection pool, said connection pool including a connection for each of a plurality of servers, wherein the connection pool comprises a pool of reusable connection context objects, each reusable connection context object containing information about an associated directory server in the plurality of directory servers; means for applying a load-balancing policy to said connection pool; means for assigning a reusable connection context object from said connection pool to a client, according to said load-balancing policy, in response to a request from the client; and means for managing a content of the connection pool, wherein the means for managing the content of the connection pool comprises means for periodically waking a connection pool management thread that, for each connection in the connection pool; determines if the connection in the connection pool was accessed during a previous sleep period of the connection pool management thread; checks availability of a server associated with the connection if the connection was not accessed during a previous sleep period of the connection pool management thread; maintains a reusable connection context object associated with the connection in the connection pool if the connection was accessed during the previous sleep period of the connection pool management thread or the check of the availability of the server results in an indication that the server is available; and removes the reusable connection context object associated with the connection from the connection pool if the check of the availability results in an indication that the server is not available. - View Dependent Claims (16, 17, 18, 19, 20)
-
-
21. A computer-usable medium having computer-executable instructions for providing highly available services, said computer-executable instructions comprising:
-
means for providing a connection pool, said connection pool including a connection for each of a plurality of servers, wherein the connection pool comprises a pool of reusable connection context objects, each reusable connection context object containing information about an associated directory server in the plurality of directory servers; means for applying a load-balancing policy to said connection pool; and means for assigning a reusable connection context object from said connection pool to a client, according to said load-balancing policy, in response to a request from the client; and means for managing a content of the connection pool, wherein the means for managing the content of the connection pool comprises means for periodically waking a connection pool management thread that, for each connection in the connection pool; determines if the connection in the connection pool was accessed during a previous sleep period of the connection pool management thread; checks availability of a server associated with the connection if the connection was not accessed during a previous sleep period of the connection pool management thread; maintains a reusable connection context object associated with the connection in the connection pool if the connection was accessed during the previous sleep period of the connection pool management thread or the check of the availability of the server results in an indication that the server is available; and removes the reusable connection context object associated with the connection from the connection pool if the check of the availability results in an indication that the server is not available. - View Dependent Claims (22, 23, 24, 25, 26)
-
Specification