Re: [PATCH 0/6] Gitweb caching changes v2

Previous message: [thread] [date] [author]
Next message: [thread] [date] [author]
From: J.H.
Date: Friday, December 11, 2009 - 11:26 am

Jakub Narebski wrote:

Well for starters this isn't exactly a reinvention of the wheel, and 
this isn't something "new" per-se.  This code has been actively running 
on git.kernel.org for something like 3 - 4 years so there's something to 
be said for the devil we know and understand.  As well using the other 
caching strategies involves adding dramatically more complex 
interactions with caching layer.  The caching layer is actually quite 
specific to how git + gitweb works and solves more than just "caching" 
on the surface.  Specifically it solves the stampeding herd problem 
which would have to be solved either way even if I didn't implement my 
own caching, and since I had to do that caching was barely a step beyond 
that to implement.


True but these are *VERY* different caching strategies than the one I've 
got here, yes it's using files as a backend but it's doing so with 
specific goals in mind.  As I've said I plan to integrate Lea's 
memcached based caching into this in the future and that has different 
advantages and disadvantages.

At the end of the day the "normal" caching engines aren't as efficient 
as mine and there is the case the very high performance sites are going 
to have to investigate a number of different solutions to see what works 
best for them.  Mine is also *dramatically* simpler to setup as well, 
turn it on, point it at a directory and your done.


There's pitfalls if I do it myself, or I use one of the other "common" 
perl modules.  I did it this way years ago, I've maintained it and it 
works pretty well.  I won't admit that it's the smartest caching engine 
on the planet, far from it, but it has evolved specifically for gitweb 
and that itself saves me a lot of pitfalls from cache engine + gitweb 
integration.


Yes, but as can be seen from how you enable various other caching 
engines the setup of those is non-trivial, this is and either way 
caching *HAS* to be explicitly turned on by the admin/user since they 
are going to have to do *some* configuration, or at least be aware that 
their webapp is going to chew up some sort of resource.


I thought about that 3 years ago, and decided it wasn't a good option 
for gitweb.  Why?  There's too many assumptions throughout the code that 
when you do a print it will go immediately out.  Things like error 
messages and such.  Breaking out the prints into prints (which will do 
what is expected) and passing around the output in the $output variables 
makes it a lot simpler easier to differentiate about how / what your 
looking at and a *LOT* easier to debug.


That's fine.  The issues your raising aren't new though, and stem back 
to before I created gitweb-caching, got rehashed with Lea's patches and 
not surprisingly are back on the table now.  Like I said above, there is 
no one caching strategy that's perfect in all cases here and that's 
again why I eventually plan to merge Lea's changes (which uses 
memcached) in as well, I'm just trying to get code that I'm getting 
considerable demand for, that's proven, upstream.

- John 'Warthog9' Hawley
--
To unsubscribe from this list: send the line "unsubscribe git" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Previous message: [thread] [date] [author]
Next message: [thread] [date] [author]

Messages in current thread:
[PATCH 0/6] Gitweb caching changes v2, John 'Warthog9' Hawley, (Thu Dec 10, 4:45 pm)
[PATCH 1/6] GITWEB - Load Checking, John 'Warthog9' Hawley, (Thu Dec 10, 4:45 pm)
[PATCH 2/6] GITWEB - Missmatching git w/ gitweb, John 'Warthog9' Hawley, (Thu Dec 10, 4:45 pm)
[PATCH 3/6] GITWEB - Add git:// link to summary pages, John 'Warthog9' Hawley, (Thu Dec 10, 4:45 pm)
[PATCH 4/6] GITWEB - Makefile changes, John 'Warthog9' Hawley, (Thu Dec 10, 4:45 pm)
[PATCH 6/6] GITWEB - Separate defaults from main file, John 'Warthog9' Hawley, (Thu Dec 10, 4:45 pm)
Re: [PATCH 0/6] Gitweb caching changes v2, Sverre Rabbelier, (Thu Dec 10, 4:53 pm)
Re: [PATCH 1/6] GITWEB - Load Checking, Sverre Rabbelier, (Thu Dec 10, 4:54 pm)
Re: [PATCH 1/6] GITWEB - Load Checking, Jakub Narebski, (Thu Dec 10, 5:52 pm)
Re: [PATCH 1/6] GITWEB - Load Checking, Junio C Hamano, (Thu Dec 10, 6:10 pm)
Re: [PATCH 1/6] GITWEB - Load Checking, J.H., (Thu Dec 10, 7:19 pm)
Re: [PATCH 1/6] GITWEB - Load Checking, Junio C Hamano, (Thu Dec 10, 7:50 pm)
Re: [PATCH 1/6] GITWEB - Load Checking, J.H., (Thu Dec 10, 7:58 pm)
Re: [PATCH 1/6] GITWEB - Load Checking, J.H., (Thu Dec 10, 8:07 pm)
Re: [PATCH 1/6] GITWEB - Load Checking, Junio C Hamano, (Thu Dec 10, 8:09 pm)
Re: [PATCH 1/6] GITWEB - Load Checking, Jakub Narebski, (Fri Dec 11, 3:09 am)
Re: [PATCH 2/6] GITWEB - Missmatching git w/ gitweb, Jakub Narebski, (Fri Dec 11, 3:52 am)
Re: [PATCH 2/6] GITWEB - Missmatching git w/ gitweb, Johannes Schindelin, (Fri Dec 11, 5:49 am)
Re: [PATCH 3/6] GITWEB - Add git:// link to summary pages, Johannes Schindelin, (Fri Dec 11, 5:52 am)
Re: [PATCH 3/6] GITWEB - Add git:// link to summary pages, Jakub Narebski, (Fri Dec 11, 6:44 am)
Re: [PATCH 1/6] GITWEB - Load Checking, Mihamina Rakotomandimby, (Fri Dec 11, 6:53 am)
Re: [PATCH 4/6] GITWEB - Makefile changes, Jakub Narebski, (Fri Dec 11, 7:28 am)
Re: [PATCH 6/6] GITWEB - Separate defaults from main file, Jakub Narebski, (Fri Dec 11, 8:46 am)
Re: [PATCH 0/6] Gitweb caching changes v2, Jakub Narebski, (Fri Dec 11, 8:51 am)
Re: [PATCH 4/6] GITWEB - Makefile changes, J.H., (Fri Dec 11, 9:22 am)
Re: [PATCH 4/6] GITWEB - Makefile changes, Jakub Narebski, (Fri Dec 11, 9:41 am)
Re: [PATCH 0/6] Gitweb caching changes v2, Jakub Narebski, (Fri Dec 11, 11:01 am)
Re: [PATCH 0/6] Gitweb caching changes v2, J.H., (Fri Dec 11, 11:26 am)
Re: [PATCH 6/6] GITWEB - Separate defaults from main file, Jakub Narebski, (Fri Dec 11, 3:53 pm)
Re: [PATCH 0/6] Gitweb caching changes v2, Jakub Narebski, (Fri Dec 11, 6:37 pm)
Re: [PATCH 6/6] GITWEB - Separate defaults from main file, Junio C Hamano, (Tue Dec 15, 6:22 pm)
Re: [PATCH 6/6] GITWEB - Separate defaults from main file, Jakub Narebski, (Tue Dec 15, 7:22 pm)
Re: [PATCH 6/6] GITWEB - Separate defaults from main file, Jakub Narebski, (Wed Dec 16, 12:52 pm)
[PATCHv2 1/6] gitweb: Load checking, Jakub Narebski, (Fri Dec 18, 9:36 am)
[RFC/PATCHv2 2/6] gitweb: Add option to force version match, Jakub Narebski, (Fri Dec 18, 12:18 pm)
[PATCH/RFCv2 4/6] gitweb: Makefile improvements, Jakub Narebski, (Sat Dec 19, 6:32 am)