httpd-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Ruediger Pluem <rpl...@apache.org>
Subject Re: svn commit: r791617 - in /httpd/httpd/trunk/modules: cluster/mod_heartmonitor.c proxy/balancers/mod_lbmethod_heartbeat.c
Date Tue, 07 Jul 2009 19:05:33 GMT


On 07/06/2009 11:14 PM, jfclere@apache.org wrote:
> Author: jfclere
> Date: Mon Jul  6 21:14:21 2009
> New Revision: 791617
> 
> URL: http://svn.apache.org/viewvc?rev=791617&view=rev
> Log:
> Add use slotmem. Directive HeartbeatMaxServers > 10 to activate the logic.
> Otherwise it uses the file logic to store the heartbeats.
> 
> Modified:
>     httpd/httpd/trunk/modules/cluster/mod_heartmonitor.c
>     httpd/httpd/trunk/modules/proxy/balancers/mod_lbmethod_heartbeat.c
> 
> Modified: httpd/httpd/trunk/modules/cluster/mod_heartmonitor.c
> URL: http://svn.apache.org/viewvc/httpd/httpd/trunk/modules/cluster/mod_heartmonitor.c?rev=791617&r1=791616&r2=791617&view=diff
> ==============================================================================
> --- httpd/httpd/trunk/modules/cluster/mod_heartmonitor.c (original)
> +++ httpd/httpd/trunk/modules/cluster/mod_heartmonitor.c Mon Jul  6 21:14:21 2009

>  
> @@ -440,7 +530,17 @@
>          return HTTP_INTERNAL_SERVER_ERROR;
>      }
>      apr_brigade_flatten(input_brigade, buf, &len);
> -    hm_processmsg(ctx, r->pool, r->connection->remote_addr, buf, len);
> +
> +    /* we can't use hm_processmsg because it uses hm_get_server() */
> +    buf[len] = '\0';
> +    tbl = apr_table_make(r->pool, 10);
> +    qs_to_table(buf, tbl, r->pool);
> +    apr_sockaddr_ip_get(&ip, r->connection->remote_addr);
> +    hmserver.ip = ip;
> +    hmserver.busy = atoi(apr_table_get(tbl, "busy"));
> +    hmserver.ready = atoi(apr_table_get(tbl, "ready"));
> +    hmserver.seen = apr_time_now();
> +    hm_slotmem_update_stat(&hmserver, r);

Sorry for being confused, but this means that we are storing the data in different
locations dependent on whether we use the handler or the UDP listener and more so
we provide them in different locations for other modules to use (sharedmem / file).
Does this make sense?
IMHO we should either provide them in both locations (sharedmem / file) no matter
which source contributed it or we should make it configurable where this information
is offered.


> Modified: httpd/httpd/trunk/modules/proxy/balancers/mod_lbmethod_heartbeat.c
> URL: http://svn.apache.org/viewvc/httpd/httpd/trunk/modules/proxy/balancers/mod_lbmethod_heartbeat.c?rev=791617&r1=791616&r2=791617&view=diff
> ==============================================================================
> --- httpd/httpd/trunk/modules/proxy/balancers/mod_lbmethod_heartbeat.c (original)
> +++ httpd/httpd/trunk/modules/proxy/balancers/mod_lbmethod_heartbeat.c Mon Jul  6 21:14:21
2009

> @@ -39,9 +47,20 @@
>      int busy;
>      int ready;
>      int seen;
> +    int id;
>      proxy_worker *worker;
>  } hb_server_t;
>  
> +#define MAXIPSIZE  64
> +typedef struct hm_slot_server_t
> +{
> +    char ip[MAXIPSIZE];
> +    int busy;
> +    int ready;
> +    apr_time_t seen;
> +    int id;
> +} hm_slot_server_t;
> +

Shouldn't these things go to a common include file?
I guess defining them in each file is waiting for a missed-to-update
error to happen.


Regards

RĂ¼diger

Mime
View raw message