Author: rjung Date: Sun Nov 19 05:49:08 2006 New Revision: 476819 URL: http://svn.apache.org/viewvc?view=rev&rev=476819 Log: Added another lb strategy: session based. Contributed by Takayuki Kaneko. This strategy does only make sense, if the sessions are a much stronger indicator of load than requests. One example is, if sessions are huge in memory and load balancing should care about memory load and not cpu load.
Modified: tomcat/connectors/trunk/jk/native/common/jk_lb_worker.c tomcat/connectors/trunk/jk/native/common/jk_lb_worker.h tomcat/connectors/trunk/jk/native/common/jk_util.c Modified: tomcat/connectors/trunk/jk/native/common/jk_lb_worker.c URL: http://svn.apache.org/viewvc/tomcat/connectors/trunk/jk/native/common/jk_lb_worker.c?view=diff&rev=476819&r1=476818&r2=476819 ============================================================================== --- tomcat/connectors/trunk/jk/native/common/jk_lb_worker.c (original) +++ tomcat/connectors/trunk/jk/native/common/jk_lb_worker.c Sun Nov 19 05:49:08 2006 @@ -55,6 +55,7 @@ JK_LB_METHOD_TEXT_REQUESTS, JK_LB_METHOD_TEXT_TRAFFIC, JK_LB_METHOD_TEXT_BUSYNESS, + JK_LB_METHOD_TEXT_SESSIONS, NULL }; @@ -798,6 +799,9 @@ p->worker->s->max_busy = p->worker->s->busy; rec->s->busy++; if (p->worker->lbmethod == JK_LB_METHOD_REQUESTS) + rec->s->lb_value += rec->s->lb_mult; + else if (p->worker->lbmethod == JK_LB_METHOD_SESSIONS && + !sessionid) rec->s->lb_value += rec->s->lb_mult; else if (p->worker->lbmethod == JK_LB_METHOD_BUSYNESS) rec->s->lb_value += rec->s->lb_mult; Modified: tomcat/connectors/trunk/jk/native/common/jk_lb_worker.h URL: http://svn.apache.org/viewvc/tomcat/connectors/trunk/jk/native/common/jk_lb_worker.h?view=diff&rev=476819&r1=476818&r2=476819 ============================================================================== --- tomcat/connectors/trunk/jk/native/common/jk_lb_worker.h (original) +++ tomcat/connectors/trunk/jk/native/common/jk_lb_worker.h Sun Nov 19 05:49:08 2006 @@ -42,10 +42,12 @@ #define JK_LB_METHOD_REQUESTS (1) #define JK_LB_METHOD_TRAFFIC (2) #define JK_LB_METHOD_BUSYNESS (3) +#define JK_LB_METHOD_SESSIONS (4) #define JK_LB_METHOD_DEF (JK_LB_METHOD_REQUESTS) #define JK_LB_METHOD_TEXT_REQUESTS ("Request") #define JK_LB_METHOD_TEXT_TRAFFIC ("Traffic") #define JK_LB_METHOD_TEXT_BUSYNESS ("Busyness") +#define JK_LB_METHOD_TEXT_SESSIONS ("Sessions") #define JK_LB_METHOD_TEXT_DEF (JK_LB_METHOD_TEXT_REQUESTS) #define JK_LB_LOCK_OPTIMISTIC (1) #define JK_LB_LOCK_PESSIMISTIC (2) Modified: tomcat/connectors/trunk/jk/native/common/jk_util.c URL: http://svn.apache.org/viewvc/tomcat/connectors/trunk/jk/native/common/jk_util.c?view=diff&rev=476819&r1=476818&r2=476819 ============================================================================== --- tomcat/connectors/trunk/jk/native/common/jk_util.c (original) +++ tomcat/connectors/trunk/jk/native/common/jk_util.c Sun Nov 19 05:49:08 2006 @@ -926,12 +926,14 @@ v = jk_map_get_string(m, buf, NULL); if (!v) return JK_LB_METHOD_DEF; - else if (*v == 't' || *v == 'T' || *v == '1') - return JK_LB_METHOD_TRAFFIC; else if (*v == 'r' || *v == 'R' || *v == '0') return JK_LB_METHOD_REQUESTS; + else if (*v == 't' || *v == 'T' || *v == '1') + return JK_LB_METHOD_TRAFFIC; else if (*v == 'b' || *v == 'B' || *v == '2') return JK_LB_METHOD_BUSYNESS; + else if (*v == 's' || *v == 'S' || *v == '3') + return JK_LB_METHOD_SESSIONS; else return JK_LB_METHOD_DEF; } --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]