On Mar 30, 2009, at 7:37 PM, Paul Querna wrote:
mod_watchdog is the latest offender in a series of modules that expose
additional functions to the API. (mod_proxy and mod_cache do too!)
What happened to all functions that are not inside server/* must be
either dynamic optional functions or
On Mar 28, 2009, at 11:09 AM, Paul Querna wrote:
- Much simpler configuration than mod_proxy, using location blocks
(or locationMatch), rather than ProxyPass' hacking of URI stuff way
earlier.
It'd be nice to be able to configure and do stuff at run time using Lua.
Someone had to ask...
On Mar 6, 2009, at 1:25 AM, Kevac Marko wrote:
And after that you have to restart apache? It's not enough dynamic
for us.
graceful restart.
On 3/5/09 9:57 AM, Kevac Marko ma...@kevac.org wrote:
The question I want to ask is should I base my module on apr_memcache
or not? Is apr_memcache mature enough? Whether is is used by someone?
Yes. Yes. Yes.
Is this based on the existing mod_memcache?
--Brian
On Mar 5, 2009, at 4:35 PM, Kevac Marko wrote:
ise.
mod_memcache, if we are talking about
http://code.google.com/p/modmemcache/, is too simple.
Works fine for me :)
I need multiple name pools to multiple servers. Something like
Will you implement a default pool like mod_dbd does?
On Mar 5, 2009, at 4:52 PM, Kevac Marko wrote:
80 columns is a little bit ancient requirement in the world of 22
LCDs, but ok, i'll fix that too.
Not when you have 4 code branches side by side...
Also, netbooks are pretty popular as well. Most of my coding is done
on a 15 laptop screen.
On 2/28/09 8:37 PM, Brian McCallister bri...@skife.org wrote:
It could be just:
apr_hash_set(dispatch, document_root, APR_HASH_KEY_STRING,
makefun(req_content_encoding_field, APL_REQ_FUNTYPE_STRING,
p));
Also, couldn't we build the dispatch has
On 2/27/09 2:56 PM, Brian McCallister bri...@skife.org wrote:
Maybe virtually joining :-)
It maybe interesting to have a virtual extension to the hackathon. IRC is
good, but misses a lot of discussion I think. Some actual voice
interaction would be nice. I've see you all before, so I don't
of or internal modules all with lua support now.
Usually the lua glue code is less than 100 lines of C.
I wish we could have a hackathon. We could knock out a bunch of this things
in one sitting, I think.
--
Brian Akins
On 2/16/09 5:06 AM, Niklas Edmundsson ni...@acc.umu.se wrote:
+core_dir_config *coreconf = ap_get_module_config(r-per_dir_config,
+ core_module);
This is a perfect example of why we need a call to hide core_module stuff
from modules. We
On 2/11/09 4:29 PM, Kevac Marko ma...@kevac.org wrote:
What so you think?
Patch is ready, but it needs some testing before posting.
+1
I was looking to do the same thing to mod_memcache (which should be imported
into trunk, IMO...)
On Feb 11, 2009, at 6:22 PM, Graham Leggett wrote:
Would it make sense for mod_memcache to become a provider beneath
mod_socache, or am I missing something?
mod_memcache really just provides the config glue for apr_memcache
so that every module that wants to use apr_memcache doesn't have
On 2/6/09 8:09 AM, Bertrand Mansion bmans...@mamasam.net wrote:
What do you call slow ? Do you have benchmarks ?
Some round numbers:
No Lua at all: 40k/sec
Our hack version (based on older mod_wombat): 34k/sec
New mod_lua: 20k
Most of this it seems is from the lua states being created for
On 2/6/09 12:17 AM, Brian McCallister bri...@skife.org wrote:
* One entry point to obtain VMs
This is the apl_get_lua_state(..) function. It is passed the
information required to either find, or create the needed
lua_State. This is:
- the lifecycle pool to which it is bound
-
On 2/6/09 9:40 AM, Bertrand Mansion bmans...@mamasam.net wrote:
I remember having met a lot
of problems with the old mod_wombat due to persistent states, even
with cache set to never. In the end, I had to restart the server
each time I modified a lua source file. It seems that you suggest to
On Feb 6, 2009, at 12:17 AM, Brian McCallister wrote:
* VMs are attached to apr pools.
+1
* Concurrency is up to the client
What are you defining as the client?
We should not expose configuration options which will create
concurrency issues, such as attaching a VM to the server_rec
I'm hacking on getting the former work I did for mod_wombat to have
per-thread lua states/scopes into mod_lua. I like the new pool approach.
My main reason for this is we have some code that runs on almost every
request that we are careful about variable scope, etc that the overhead of
creating a
Here's a patch just to give you an idea of what I'm thinking. It compiled.
This is more to get some ideas going to see how/iff this fits into mod_lua.
The biggest issue is that the package_paths are per_dir and in post_config,
you can't really get at those in a useful way. I precompile all of
Is this in trunk? I don't see it, but I've been known to overlook stuff.
On 1/26/09 1:45 PM, Brian McCallister bri...@skife.org wrote:
For anyone following, it has been applied :-)
-- NEW
function handle(r)
local host = r.headers_in['host']
r:puts(host)
-- and can now modify them
On 2/5/09 1:51 PM, Brian McCallister bri...@skife.org wrote:
Yep, Paul changed the internal impl to be less gross, but in doing so
changed the API, i changed the impl to be not gross and restored old
API.
Okay I see it now.
I may take a crack at a little performance tuning. Setting up the
VFS??
--
Brian Akins
Chief Operations Engineer
Turner Digital Media Technologies
stack just to pass things back and forth between Apache and
back-end processes.
--
Brian Akins
Chief Operations Engineer
Turner Digital Media Technologies
=5
or whatever. This would end the config duplication between various modules.
This module could also add memcache stats to /server-status
Comments?
--
Brian Akins
Chief Operations Engineer
Turner Digital Media Technologies
Niklas Edmundsson wrote:
Since mod_cache runs as a quick handler, matching based on URL would
probably be the easiest since you don't have the mime type info then.
Maybe something like
CacheEnable disk /special/path ignore_query
Could add other options if future as well.
--
Brian Akins
Chief
that. Needs some work, but is at least a startr.
--
Brian Akins
Chief Operations Engineer
Turner Digital Media Technologies
, in a normal forward-proxy-cache, where one does not
control both cache and origin, one must be more careful.
--
Brian Akins
Chief Operations Engineer
Turner Digital Media Technologies
Henrik Nordstrom wrote:
mån 2006-12-11 klockan 14:25 -0500 skrev Brian Akins:
So, multiple variants of the same object can have the same Etag, but still be
different cached objects.
Your implementation ignores RFC 2616 13.6 Caching Negotiated Responses,
but is otherwise fine. It's
, multiple variants of the same object can have the same Etag, but still be
different cached objects.
This probably has no bearing on the current conversation, but perhaps I am not
fully appreciating the core of the debate??
--
Brian Akins
Chief Operations Engineer
Turner Digital Media Technologies
server config
structures.
Patch is against 2.2.3, since that's what we run mostly around here.
--
Brian Akins
Chief Operations Engineer
Turner Digital Media Technologies
diff -ur httpd-2.2.3/include/http_core.h
httpd-2.2.3-keepalive/include/http_core.h
--- httpd-2.2.3/include/http_core.h
someone confirm if something changed in trunk that allows file
buckets to be handled differently...
--
Brian Akins
Chief Operations Engineer
Turner Digital Media Technologies
Brian Akins wrote:
This was a
somewhat artificial test I did, but can someone confirm if something
changed in trunk that allows file buckets to be handled differently...
Actually got of my rear and looked at it myself :) From the looks of it,
core_output_filter in 2.2.3 does not have any
.
Without having looked very much at the code, this approach sounds feasible.
I'm still confused as to why we need the temporary brigade??? Why not swap
the buckets?
--
Brian Akins
Chief Operations Engineer
Turner Digital Media Technologies
the sun
into one cache provider. The current mod_disk_cache (before the mass patches)
works for a large percentage of cases. I see no reason to mutilate it. Just do
a new provider...
--
Brian Akins
Chief Operations Engineer
Turner Digital Media Technologies
tries that one first.
--
Brian Akins
Chief Operations Engineer
Turner Digital Media Technologies
Brian Akins wrote:
Allows you to limit number of keepalive connections per child. Patched
against 2.2.3 as trunk just seems broken right now. Did some light
testing, seems to work.
After some looking, this really belongs in the http module. However, it is so
intertwined with core server
Can someone please summarize the various patches for mod_disk_cache that have
been floating around in last couple weeks? I have looked at the patches but
wasn't real sure of the general philosophy/methodology to them.
Others may find it useful as well
--
Brian Akins
Chief Operations
sense?
--
Brian Akins
Chief Operations Engineer
Turner Digital Media Technologies
to the cache server, I fI
read this correctly.
--
Brian Akins
Chief Operations Engineer
Turner Digital Media Technologies
.
--
Brian Akins
Chief Operations Engineer
Turner Digital Media Technologies
it to normal handler, you lose a bit of performance.
We cache alot of stuff to avoid the mangled mess of rewrite rules that would
run if mod_cache was not a quick handler on every single request.
--
Brian Akins
Chief Operations Engineer
Turner Digital Media Technologies
of the children.
Seriously, not a fan of that style. Doesn't matter that much to me,
however.
-0
--
Brian Akins
Chief Operations Engineer
Turner Digital Media Technologies
@httpd.apache.org
References: [EMAIL PROTECTED]
[EMAIL PROTECTED] [EMAIL PROTECTED]
These patches may fix the r-content_type behaviour. Are you OK with it ?
--
*Francois Pesce*
2006/5/31, Brian Akins [EMAIL PROTECTED]:
Francois PESCE wrote:
I've discussed about a patch for mod_setenvif 2 years ago
+1 on the patch
--
Brian Akins
Chief Operations Engineer
Turner Digital Media Technologies
Davi Arnaut wrote:
Simplify the array and table serialization code, separating it from
the underlying I/O operations.
Probably faster to just put every thing in an iovec (think writev).
--
Brian Akins
Chief Operations Engineer
Turner Digital Media Technologies
because we have a really quick way to find the
size and remove the oldest expired objects first. Every cache store
gets recorded in SQLite with info about the object (size, mtime, expire
time, url, key, etc.). Makes it trivial tow write cron jobs to do cache
management.
--
Brian Akins
Chief
Davi Arnaut wrote:
On 20/09/2006, at 10:16, Brian Akins wrote:
Davi Arnaut wrote:
Simplify the array and table serialization code, separating it from
the underlying I/O operations.
Probably faster to just put every thing in an iovec (think writev).
Probably no, apr_brigade_writev
structures.
--
Brian Akins
Chief Operations Engineer
Turner Digital Media Technologies
Oden Eriksson wrote:
onsdag 30 augusti 2006 10:37 skrev Brian Akins:
With all the talk of a generic scoreboard, here's something I whipped
up that allows any other module to have some amount of memory per
worker slot. We have a different module in-house at CNN which does
something similar
rsyncing the
mirrored content. I don't know your environment, but was just what I
cam up with off the top of my head.
--
Brian Akins
Chief Operations Engineer
Turner Digital Media Technologies
. Very good ideas that just need a
little refinement.
--
Brian Akins
Chief Operations Engineer
Turner Digital Media Technologies
Issac Goldstand wrote:
I can see how other tracking information (like how often the
cached entity is accessed, last access time, etc) would be useful,
Also, those statistics could be updated asynchronously by using a queue
so that statistics doesn't slow down a busy web server.
--
Brian
.
--
Brian Akins
Chief Operations Engineer
Turner Digital Media Technologies
Niklas Edmundsson wrote:
If I remember correctly the code in 2.2.3 only does whole-file
revalidation,
No, it can have a stale handle that it makes fresh if it gets a 304.
--
Brian Akins
Chief Operations Engineer
Turner Digital Media Technologies
, it gets a symbol rather than disappearing after compile.
--
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
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
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
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
could use r-connection-id).
--
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
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
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
type module with a relatively
simple API to add and access per worker memory. I have some ideas if
anyone wants to hear them...
--
Brian Akins
Chief Operations Engineer
Turner Digital Media Technologies
Anyone else care to vote on this so it can get, possibly, committed?
Francois Pesce wrote:
These patches may fix the r-content_type behaviour. Are you OK with it ?
--
*Francois Pesce*
2006/5/31, Brian Akins [EMAIL PROTECTED]:
Francois PESCE wrote:
I've discussed about a patch
in handy. It is
however very ugly.
--
Brian Akins
Lead Systems Engineer
CNN Internet Technologies
Francois Pesce wrote:
These patches may fix the r-content_type behaviour. Are you OK with it ?
+1
--
Brian Akins
Lead Systems Engineer
CNN Internet Technologies
)) { /* notfound */
+cfg-flags |= (RULEFLAG_STATUS | RULEFLAG_NOSUB);
+cfg-forced_responsecode = HTTP_NOT_FOUND;
+}
else {
++error;
}
--
Brian Akins
Lead Systems Engineer
CNN Internet Technologies
the
URL and return it to the client - to translate ``/~'' into ``/u/'', or
to always append a slash to /u/user, etc.
So do the docs need to be updated to say: return arbitrary http code?
BTW, this does work. patch withdrawn. somebody needs to fix docs...
--
Brian Akins
Lead Systems Engineer
CNN
-headers_out,
Content-type) would be null, but content_type would be set.
See the patch I posted a few days ago.
+1 in concept
--
Brian Akins
Lead Systems Engineer
CNN Internet Technologies
or
something...
CacheEnable disk2 /
--
Brian Akins
Lead Systems Engineer
CNN Internet Technologies
Niklas Edmundsson wrote:
This patch takes advantage of the possibility to do the size-check of
the file to be cached early.
obj-vobj = dobj = apr_pcalloc(r-pool, sizeof(*dobj));
Shouldn't this be in mod_cache so that all providers do not have to
duplicate this logic?
--
Brian Akins
response Content-Type text/html user-agent-vary=1
Header append Vary User-Agent env=user-agent-vary
With this patch, the correct vary headers are added in a reverse proxy
situation.
most of the code was adapted from mod_headers.
Thoughts?
--
Brian Akins
Lead Systems Engineer
CNN Internet Technologies
Here's a newer version with some special handling for content-type. In
response headers, we need to match r-content_type rather than the header.
--
Brian Akins
Lead Systems Engineer
CNN Internet Technologies
--- mod_setenvif.c.bak 2006-05-23 10:08:56.0 -0400
+++ mod_setenvif.c
:
ap_set_content_type(r, text/plain);
and in ap_set_content_type we call ap_add_output_filters_by_type(r);
so, even though we change the content type, we still have added DEFLATE
for this.
--
Brian Akins
Lead Systems Engineer
CNN Internet Technologies
Any reason why we do this check alot in mod_mime.c:
r-proxyreq == PROXYREQ_NONE
why can't we add by type to proxy requests? This is at top:
/* X - fix me - See note with NOT_PROXY
*/
but I don't see a note.
--
Brian Akins
Lead Systems Engineer
CNN Internet Technologies
APR_OPTIONAL_FN_TYPE(ap_proxy_lb_workers)
*proxy_lb_workers;
-struct ap_sb_handle_t {
-int child_num;
-int thread_num;
-};
-
static int server_limit, thread_limit, lb_limit;
static apr_size_t scoreboard_size;
--
Brian Akins
Lead Systems Engineer
CNN
the manager
using this interface. The manager may or may not be tied to the storage
provider. We may have enough generic interfaces already to allow
completely stand alone cache managers.
At least, that's how I would do it...
--
Brian Akins
Lead Systems Engineer
CNN Internet Technologies
Graham Leggett wrote:
Moving towards and keeping with the above goals is a far higher priority
than simplifying the generic backend cache interface.
This response was a perfect summation of why we do *not* run the stock
mod_cache here...
--
Brian Akins
Lead Systems Engineer
CNN Internet
it
as it is currently?
--
Brian Akins
Lead Systems Engineer
CNN Internet Technologies
still mulling it over - that a generic cache
architecture would get in the way of making a fully functional http cache.
--
Brian Akins
Lead Systems Engineer
CNN Internet Technologies
it to a more suitable name.
--
Brian Akins
Lead Systems Engineer
CNN Internet Technologies
of the issues in the current mod_cache.
--
Brian Akins
Lead Systems Engineer
CNN Internet Technologies
Is anyone else interested in having a generic cache architecture? (not
http). I have plenty of cases were I re-invent the wheel for caching
various things (IP's, sessions, whatever, etc.). It would be nice to
have a provider based architecture for such things.
--
Brian Akins
Lead Systems
Gonzalo Arana wrote:
I am. How about adding it to apr?
How about someone figuring out how to get providers into apr? Doesn't
look horribly hard. Perhaps I should ask on apr-devel?
--
Brian Akins
Lead Systems Engineer
CNN Internet Technologies
with current mod_cache. I just think it
should be either: renamed or made generic. We may or may not need a
generic mod_backend_cache. I have posted a psuedo-implementation that
got lost in the latest thread bloat. I can repost if anyone is interested.
--
Brian Akins
Lead Systems Engineer
CNN
be a memcache frontend,
or something completely different.
Trust me, I am extremely concerned about performance.
--
Brian Akins
Lead Systems Engineer
CNN Internet Technologies
Graham Leggett wrote:
- the cache says cool, will send my copy upstream. Oops, where has my
data gone?.
So, the cache says, okay must get content the old fashioned way (proxy,
filesystem, magic fairies, etc.).
Where's the issue?
--
Brian Akins
Lead Systems Engineer
CNN Internet
a
revalidate for the generic cache it should address all your concerns. ???
--
Brian Akins
Lead Systems Engineer
CNN Internet Technologies
trying to read from it will eventually get an error).
agreed. new mod_cache should handle this.
Certainly separate the protocol from the physical cache, just make sure
the physical cache delivers the shopping list above :)
Most seem like protocol specific stuff.
--
Brian Akins
Lead Systems
1 - 100 of 456 matches
Mail list logo