[OSM-dev] Renderd problems.

Jon Burgess jburgess777 at gmail.com
Wed Sep 29 21:44:55 BST 2010


On Wed, 2010-09-29 at 07:31 -0700, Kai Krueger wrote:
> 
> Samir Faci (Dev) wrote:
> > 
> > render_list does seem to have a bug where it ignores the -l,
> > --max-load=LOAD value.  Though I need to look at it a bit more to see
> > why its not using the value, I'm passing.
> > 
> My guess would be the check_load() call needs to happen in the dequeueing
> path rather than the enqueueing, as otherwise the rendering continues out of
> the queue above load, which is rapidly filled up again the instance the load
> dips below the allowed. I haven't verified this though, so I might be wrong.

I think you are right, the check_load() call should really be inside the
while() loop of the thread_main() otherwise the render threads carry on
and empty the queue when the system is overloaded. This became an issue
when I added the extra queueing to allow the multi-threaded requests. I
just committed this change into SVN.

> Depending on how you see it (bug or feature?), a similar issue I think
> occurs with mod_tile / renderd. The load checks again are on the enqueueing
> side (mod_tile) rather than dequeueing side of renderd, meaning it continues
> to render under heavy load, just stops queuing new requests, although that
> has its benefits as well.

We want checking in mod_tile so it can know whether it is even worth
trying to enqueue the request or not. When the code was first written
the maximum queue size was small and just doing the checking during
enqueue was good enough. Now that some servers queue up so many requests
that the queue might need several hours to empty it probably makes sense
to check in renderd as well. 

   Jon





More information about the dev mailing list