to this is used by several very busy
web sites...
--
Brian Akins
Chief Operations Engineer
Turner Digital Media Technologies
Jim Jagielski wrote:
+1. For example, a memcached based scoreboard would be
pretty cool ;)
maybe in mod_scoreboard it may use a provider mechanism to actually
implement the scoreboard. Maybe have an ap_scoreboard_create_ex where
you could explicitly name a provider.
--
Brian Akins
Jim Jagielski wrote:
Yeah, that's what I was thinking as well!
default could just use apr_shm.
--
Brian Akins
Chief Operations Engineer
Turner Digital Media Technologies
seems reasonable.
--
Brian Akins
Chief Operations Engineer
Turner Digital Media Technologies
by
the external health check. This is not scoreboard info, just some
health info. The 2 are separate things.
--
Brian Akins
Chief Operations Engineer
Turner Digital Media Technologies
would be in something like
mod_scoreboard that other modules (like mod_proxy) would use.
apr_shm provider is rather trivial. Left as exercise to the reader ;)
--
Brian Akins
Chief Operations Engineer
Turner Digital Media Technologies
confusion with the real
scoreboard. But, there is no reason the real scoreboard couldn't use
mod_scoreboard itself. It would just have to be core. probably best
to have mod_scoreboard now, and merge the two later.
--
Brian Akins
Chief Operations Engineer
Turner Digital Media Technologies
into
something completely different? I can see uses for this type as well.
Would be nice to have a function somewhere to get the current
connections scoreboard slot perhaps...
--
Brian Akins
Chief Operations Engineer
Turner Digital Media Technologies
could use r-connection-id).
--
Brian Akins
Chief Operations Engineer
Turner Digital Media Technologies
of a generic scoreboard, that, in the
future, the real scoreboard might use.
--
Brian Akins
Chief Operations Engineer
Turner Digital Media Technologies
for
application servers generally, but they need to be highly available. We
are not trying to replace Cisco CSM's. But a hardware HTTP-only aware
$20k device is not needed when I just need to load balance an app across
4 tomcat instances, for example.
--
Brian Akins
Chief Operations Engineer
I've seen all the traffic on the scoreboard and this is very useful
context ...
Also, I am using a similar scoreboard mechanism to collect lots of per
worker stats without the extendedstatus overhead.
--
Brian Akins
Chief Operations Engineer
Turner Digital Media Technologies
--
Brian Akins
Chief Operations Engineer
Turner Digital Media Technologies
balancing.
Sometimes it is necessary to have very application specific routing.
Also, in general, most hardware load balancers base their algorithms on
things such as response time. Sometimes, it is necessary to know the
general health of the backend servers.
--
Brian Akins
Chief Operations Engineer
If I am reading the code correctly, we only do not set Server header
when r-proxyreq != PROXYREQ_NONE. So on a cached response, even if
original was reverse proxy, we set our (Apache) server header??
--
Brian Akins
Chief Operations Engineer
Turner Digital Media Technologies
Apache memory that's your problem. Apache can be slimmed down to 8-32
MB (depending on modules and config) fairly easily just by removing
unwanted cruft. Most mod_xxx programming stuff tend to cache alot of
stuff in RAM.
--
Brian Akins
Chief Operations Engineer
Turner Digital Media Technologies
We tested a Sun t2000 with httpd 2.2. It did okay. Now, Sun says
there is an issue with 2.2 and portfs on Solaris 10 on the t2000. Not
real sure what this means. Anyone else heard this?
--
Brian Akins
Chief Operations Engineer
Turner Digital Media Technologies
I was thinking about doing.
--
Brian Akins
Chief Operations Engineer
Turner Digital Media Technologies
#ifndef __MOD_slotmem__
#define __MOD_slotmem__
typedef struct ap_slotmem_t ap_slotmem_t;
typedef apr_status_t ap_slotmem_callback_fn_t(void* mem, void *data, apr_pool_t
*pool);
AP_DECLARE
is only
every written to by a single writer (it's tied to a connection id).
--
Brian Akins
Chief Operations Engineer
Turner Digital Media Technologies
in state: Doing foo
The catch is we expect there to be a one character state.
This would allow a module to have multiple states (like a handler and a
filter). This would also make the state registration/setting voluntary.
Thoughts?
--
Brian Akins
Lead Systems Engineer
CNN Internet Technologies
);
if(register_state ) {
foo_state = register_state(Doing foo);
}
then in my handler or filter:
if(set_state) {
set_state(foo_state);
}
Or something similar?
--
Brian Akins
Lead Systems Engineer
CNN Internet Technologies
,. -c 1024?
We are interesting in the event mpm mainly for dealing with keep alives.
--
Brian Akins
Lead Systems Engineer
CNN Internet Technologies
instant and none are in keepalive timeouts.
Can you still have multiple processes? We use 10k plus threads per box
with worker.
--
Brian Akins
Lead Systems Engineer
CNN Internet Technologies
, not to mention lots
of live traffic :)
--
Brian Akins
Lead Systems Engineer
CNN Internet Technologies
hook. (?) Someone
was complaining earlier that virtual hosts where to complicated to
configure and offered a solution which would cause our set up tons of
problems. Having a hook would allow the behavior to be changed. Could
stick it just before post_read request?
--
Brian Akins
Lead Systems
to continue to maintain our own proxy? This functionality is very
important for us.
--
Brian Akins
Lead Systems Engineer
CNN Internet Technologies
of prefork starts to get painful.
We have run 10,000 + threads on our webservers routinely. Can't do that
with 1.x
--
Brian Akins
Lead Systems Engineer
CNN Internet Technologies
act slightly different for some of them.
Type and TypeMatch
Only apply when r-content_type matches. This can be done, sort of, now
but it is very awkward.
Any thoughts? I can do a patch if anyone thinks it will be worth the
time. Otherwise, I'll keep my my own hacks in my modules.
--
Brian
have to hack up my modules to do this.
--
Brian Akins
Lead Systems Engineer
CNN Internet Technologies
When/where is ApacheCon 2005 US? I wanted to give a presentation about
our CNN conversion and caching if anyone would be interested.
--
Brian Akins
Lead Systems Engineer
CNN Internet Technologies
of tmpfs for some stuff. This only works on later 2.6
Linux kernels (and works very well), but the file is not local.
+1 and let smart people enable it.
--
Brian Akins
Lead Systems Engineer
CNN Internet Technologies
for us with linux and ipv6. I tested and
turned off some offloading features of our cards. If someone doesn't
want to take the time to test, then they probably don't care what APR
does. As for me, if I say on I mean on.
--
Brian Akins
Lead Systems Engineer
CNN Internet Technologies
in stead, or mmap, or whatever.
Don't make the decision for me. I have no problem defaulting to off,
but if I say on, do it or fail and tell me why.
--
Brian Akins
Lead Systems Engineer
CNN Internet Technologies
Is there a list of supported compilers? I am having to compile using
gcc 2.96 and having some wierdness, but works fine on 3.3. It may be
something else with the box, but just wanted to know if there was an
official list.
--
Brian Akins
Lead Systems Engineer
CNN Internet Technologies
Linux boxes (2.6).
--
Brian Akins
Lead Systems Engineer
CNN Internet Technologies
Paul Querna wrote:
SO_ACCEPTFILTER is in 2.0.xx.
TCP_DEFER_ACCEPT is in 2.1.xx.
Any thought given to backport this? We would be very interested. If
someone could point me in the right direction in the source, I can help.
--
Brian Akins
Lead Systems Engineer
CNN Internet Technologies
branch.
I'll see what I can come up with. Thanks.
--
Brian Akins
Lead Systems Engineer
CNN Internet Technologies
-module_config,
my_module);
return util_parse_options(parms-pool, option, options, conf);
--
Brian Akins
Lead Systems Engineer
CNN Internet Technologies
Compiles and works in initial testing on Linux 2.6 (debian sarge).
--
Brian Akins
Lead Systems Engineer
CNN Internet Technologies
diff -ur httpd-2.0.54/server/listen.c httpd-2.0.54-bakins/server/listen.c
--- httpd-2.0.54/server/listen.c 2005-02-04 15:21:18.0 -0500
+++ httpd-2.0.54-bakins
Torsten Foertsch wrote:
Maybe it is worth to make this option settable via httpd.conf?
If there is interest, I could do that.
This functionality is in 2.1, so some may object to adding this feature
to 2.0. I am investigating its usefulness here, however.
--
Brian Akins
Lead Systems Engineer
it will try in quick and normal
handlers.
--
Brian Akins
Lead Systems Engineer
CNN Internet Technologies
Nick Kew wrote:
Would people be interested to have mod_dbd relicensed and
within Apache 2.1?
+1
--
Brian Akins
Lead Systems Engineer
CNN Internet Technologies
james wrote:
Can anyone tell me which hook i can use ?
child_init
--
Brian Akins
Lead Systems Engineer
CNN Internet Technologies
not be explaining
our problem well.
--
Brian Akins
Lead Systems Engineer
CNN Internet Technologies
have no
direct control of them).
I was hoping for a more generic solution that would maybe help others.
I'm sure there are others with similar situations.
--
Brian Akins
Lead Systems Engineer
CNN Internet Technologies
to be able to limit total number of keepalives.
--
Brian Akins
Lead Systems Engineer
CNN Internet Technologies
. Of course, when changing from on state to another you
would always have to decrement the previous state and increment the new
one. The way the core seems to be now, that would require some careful
examination of the code to ensure all the state changes were covered.
--
Brian Akins
Lead
would update ap_idle_thread_count.
I can submit a patch if anyone thinks this has a chance of being committed.
--
Brian Akins
Lead Systems Engineer
CNN Internet Technologies
I get a chance.
--
Brian Akins
Lead Systems Engineer
CNN Internet Technologies
Phillip Susi wrote:
My understanding is that the current code will memory map the data file,
optionally encrypt it with SSL, and then call a conventional send().
Using send() on a memory mapped file view instead of read() eliminates
It does not change the file in place.
--
Brian Akins
.
--
Brian Akins
Lead Systems Engineer
CNN Internet Technologies
Should this honor usecanonicalname? If so, could just use
ap_get_servername(r) in stead of r-hostname. This may further compact
the number of entries.
--
Brian Akins
Lead Systems Engineer
CNN Internet Technologies
regen_key was called, it was called with
r-headers_in.
--
Brian Akins
Lead Systems Engineer
CNN Internet Technologies
)
}
}
}
This would also allow only one request through to refresh the object
and protect against a hung worker (bad backend server, database, whatever)
--
Brian Akins
Lead Systems Engineer
CNN Internet Technologies
.
But, this would be per process, unless you did it in dbm or something.
Just thinking out load...
--
Brian Akins
Lead Systems Engineer
CNN Internet Technologies
think my idea of serving recently expired
objects would also avoid the thundering herd. As long as recent and the
timeout were reasonable, it should be very efficient.
--
Brian Akins
Lead Systems Engineer
CNN Internet Technologies
Colm MacCarthaigh wrote:
On Wed, Aug 17, 2005 at 04:33:24PM -0400, Brian Akins wrote:
True.
But like Graham said, ultimately, I don't think it's worth it.
I got the opposite from what Graham said, but may have mis-read.
Or i did...
Depends on the environment. For a proxy, being able
Colm MacCarthaigh wrote:
ie revalidate the cache content after N-seconds before it is due to be
expired would have the same effect, but avoid serving stale content.
Does that make sense?
Yes. cool. +1.
Thanks!
--
Brian Akins
Lead Systems Engineer
CNN Internet Technologies
Jim Jagielski wrote:
Would be interesting to profile that to determine how expensive those
stats could be...
Should be much less expensive than the case now -- the thundering herd
when an object expires. Of course, the behavior would be configurable.
--
Brian Akins
Lead Systems
the
content, then its trivial. If not, don't override anything.
It's like CacheIgnoreHeaders. It breaks RFC's, but there are cases
where this is A Good Thing. In the general case, as you pointed out, it
is not.
--
Brian Akins
Lead Systems Engineer
CNN Internet Technologies
Here's a new patch that changes the option name to CacheVaryOverride and
does some of the stuff Justin recommened.
--
Brian Akins
Lead Systems Engineer
CNN Internet Technologies
diff -ru httpd-trunk.orig/modules/cache/cache_storage.c
httpd-trunk.new/modules/cache/cache_storage.c
--- httpd
on this one.
Anyway, I got a nice 5-8% increase in all my benchmarks by using this
change.
--
Brian Akins
Lead Systems Engineer
CNN Internet Technologies
Some more low hanging fruit.
This moves varray into disk_cache_object_t and only writes out/reads in
the request headers if the response actually varied.
An easy 4-7% performance boost in my tests for responses with no vary.
--
Brian Akins
Lead Systems Engineer
CNN Internet Technologies
can tell.
Basically would have to rearrange store_headers completely...
-#if APR_CHARSET_EBCDIC
Well that won't fly ;-)
I know, I know :) I just wanted to get the idea out there without
having to muck with that. Obviously the final patch should consider
EBDCID as well.
--
Brian
with our caching module and it was not very efficient, but it is
structure differently. Should be fairly easy to try: replace the alloc
and read with a mmap.
--
Brian Akins
Lead Systems Engineer
CNN Internet Technologies
. your comment about regular mmap are also true -- it would be
interesting to test.
--
Brian Akins
Lead Systems Engineer
CNN Internet Technologies
everywhere else. -- justin
The optimizations that Colm is talking about should be helpful
everywhere. Also, that's why we test to make sure it does kill us.
Also, I don't think we know it will kill us.
--
Brian Akins
Lead Systems Engineer
CNN Internet Technologies
Justin Erenkrantz wrote:
I'd be fine with it matching store_body's prototype. (Which is what you
have.) -- justin
Here's a patch that does this.
--
Brian Akins
Lead Systems Engineer
CNN Internet Technologies
diff -ru httpd-trunk.orig/modules/cache/mod_cache.c
httpd-trunk.new2/modules
actually hurt performance as it
would have lots of extra memcpy's.
--
Brian Akins
Lead Systems Engineer
CNN Internet Technologies
is actually
faster:
-normal buffered apr read
-alloc entire buffer, read_full into it.
-mmap file.
Colm, are you already writing code? If not, I may give it a swing...
--
Brian Akins
Lead Systems Engineer
CNN Internet Technologies
Colm MacCarthaigh wrote:
So mtime not being recent is no-indication of death, it could easily be
a trickling download.
True. But, if the files mtime has not changed in 120 seconds (for
example) the download is probably hung?
--
Brian Akins
Lead Systems Engineer
CNN Internet Technologies
just missing or do we need to bring back Port?
--
Brian Akins
Lead Systems Engineer
CNN Internet Technologies
to be the best place
* UseCanonicalName MUST be off, or this is ignored*/
r-parsed_uri.port = conf-port;
r-parsed_uri.port_str = conf-port_str;
}
}
This is a fixed version which appears to have fixed my original breakage.
--
Brian Akins
Lead Systems
Hmm, it seems if useCanonicalName is off and you use Servername like this:
ServerName www.domain.com:80
That ap_get_servername will use that port unless the client used a port
in the Host: header.
My testing seems to confirm this. Is this correct?
--
Brian Akins
Lead Systems Engineer
.
--
Brian Akins
Lead Systems Engineer
CNN Internet Technologies
but it works. I can post it if anyone
cares to see it.
--
Brian Akins
Lead Systems Engineer
CNN Internet Technologies
Brian Akins wrote:
Some more low hanging fruit.
This moves varray into disk_cache_object_t and only writes out/reads in
the request headers if the response actually varied.
An improvement upon the earlier patch that only stores the request
headers that are involved in vary.
--
Brian
if no one
cares. I don't want to maintain a fork, as I already do that...
--
Brian Akins
Lead Systems Engineer
CNN Internet Technologies
Paul A Houle wrote:
I don't see end users clamoring for mod_ftp, or mod_snmpd. What's
the point of writing a squid replacement unless you can actually make
something better?
That's why I have been posting so many cache patches.
--
Brian Akins
Lead Systems Engineer
CNN Internet
://marc.theaimsgroup.com/?l=apache-httpd-devm=112447694826332w=2
speed up read_table:
http://marc.theaimsgroup.com/?l=apache-httpd-devm=112437134119057w=2
--
Brian Akins
Lead Systems Engineer
CNN Internet Technologies
.
This of course, by use of hooks, would be a per module implementation.
mod_cache_managher_mysql, mod_cache_manager_yaml, mod_cache_manager_whatever
--
Brian Akins
Lead Systems Engineer
CNN Internet Technologies
subrequest stuff
rather than curl. One less dependency you know. I've also had issues
with libcurl and ssl randomly coreing.
--
Brian Akins
Lead Systems Engineer
CNN Internet Technologies
the keepalive stuff and you would avoid the
overhead of constantly creating deleting curls. Just call
curl_easy_reset before giving it back to reslist.
--
Brian Akins
Lead Systems Engineer
CNN Internet Technologies
of a manager and so on, I'd definitely use.
If the interface was in hooks/option functions, it would be very flexible.
--
Brian Akins
Lead Systems Engineer
CNN Internet Technologies
uses the
functions 'cache_hash', a 'de-poolized' apr_hash, for this exact reason.
Or, you could use lots of sub-pools...
--
Brian Akins
Lead Systems Engineer
CNN Internet Technologies
, regex_func);
--
Brian Akins
Lead Systems Engineer
CNN Internet Technologies
, it would be cool if it
were easy to add more %{VARIABLES} to mod_rewrite...
Who is currently working on the per-dir mod_cache stuff? I am willing
to help.
--
Brian Akins
Lead Systems Engineer
CNN Internet Technologies
.
--
Brian Akins
Lead Systems Engineer
CNN Internet Technologies
diff -ru httpd-trunk.orig/modules/cache/cache_util.c
httpd-trunk.new2/modules/cache/cache_util.c
--- httpd-trunk.orig/modules/cache/cache_util.c 2005-07-13 15:23:03.869381000
-0400
+++ httpd-trunk.new2/modules/cache/cache_util.c 2005-08-23
bug stuff.
- POST'ing is somewhat of a mystery. It works, but you have to tinker
with it alot.
--
Brian Akins
Lead Systems Engineer
CNN Internet Technologies
that.
--
Brian Akins
Lead Systems Engineer
CNN Internet Technologies
ap_prefix_matches in http_core
perhaps? the bndm probably belongs in an apr_bndm
thoughts?
--
Brian Akins
Lead Systems Engineer
CNN Internet Technologies
.
--
Brian Akins
Lead Systems Engineer
CNN Internet Technologies
It seems no matter what the setting of ServerTokens, mod_proxy uses
something like this when ProxyVia is set to Full:
Via: 1.1 i.cnn.net (Apache/2.1.8)
Should this honor ServerTokens?
--
Brian Akins
Lead Systems Engineer
CNN Internet Technologies
Paul Querna wrote:
Brian Akins wrote:
It seems no matter what the setting of ServerTokens, mod_proxy uses
something like this when ProxyVia is set to Full:
Via: 1.1 i.cnn.net (Apache/2.1.8)
Should this honor ServerTokens?
Yes.
--- mod_proxy_http.c.orig 2005-09-26 11:43
)
-return access_status;
+goto cleanup;
if (balancer balancer-max_attempts_set !max_attempts)
max_attempts = balancer-max_attempts;
/* firstly, try a proxy, unless a NoProxy directive is active */
--
Brian Akins
Lead Systems Engineer
CNN Internet
a BAD GATEWAY.
--
Brian Akins
Lead Systems Engineer
CNN Internet Technologies
Jim Jagielski wrote:
This means if access_status is DECLINED, we would return. Would
that work for you??
Yes. Just need to run request_status in case of error.
--
Brian Akins
Lead Systems Engineer
CNN Internet Technologies
*/
}
static void register_hooks(apr_pool_t * p)
{
set_writer_init = APR_RETRIEVE_OPTIONAL_FN(ap_log_set_writer_init);
set_writer = APR_RETRIEVE_OPTIONAL_FN(ap_log_set_writer);
set_writer_init(my_logger_init);
set_writer(my_logger_writer);
}
--
Brian Akins
Lead Systems Engineer
CNN
? or as an argument to CustomLog?
Hmmm... Maybe custom loggers could be providers that have an init and a
writer function.
--
Brian Akins
Lead Systems Engineer
CNN Internet Technologies
(apr_pool_t * p)
{
ap_register_provider(p, LOG_PROVIDER_GROUP, mysql,
LOG_PROVIDER_VERSION,
my_provider);
}
Thoughts?
--
Brian Akins
Lead Systems Engineer
CNN Internet Technologies
301 - 400 of 456 matches
Mail list logo