[OSM-dev] renderd multithreading question
Kai Krueger
kakrueger at gmail.com
Mon Nov 16 13:05:49 GMT 2009
Frederik Ramm wrote:
> <div class="moz-text-flowed" style="font-family: -moz-fixed">Jon,
>
...
>
> render_list now makes "bulk" requests, and I assume that mod_tile makes
> "priority" requests - but there seems to be a third category in between
> these (those that are neither bulk nor priority) - what's this used for?
Mod_tile distinguishes between tiles that would cause a 404 response if
not rendered in time and those that would only return an outdated but
still valid tile. The former gets submitted to the priority queue where
as the latter to the "normal" rendering queue. The order of the queues
are cmdRenderPrio, cmdRender, cmdDirty, cmdRenderBulk, with each one
being able to starve the queues lower down. The idea behind RenderPrio
was mainly to minimise the number of 404 tiles returned when the server
is overloaded with rerendering expired tiles, e.g. after a new planet
import.
cmdRenderBulk has the peculiarity that it is lower priority than
cmdDirty, but will still overflow into it, boosting priority of
overflown requests. However the idea behind RenderBulk was that it is
only used for background render jobs that will always block on the
rendering jobs arbitrarily long and thus the submission rate self
throttles to point that the queue should never overflow in the first place.
The dirty queue is for all asynchronous requests that don't block and
can grow large (thousands of requests). Mod_tile uses this, if it
expects that it is unlikely that the request will get rendered in a
reasonable time period and rather than timing out, immediately returns
the old tile. E.g. when the server is under heavy load.
Kai
>
> Bye
> Frederik
>
>
>
> </div>
More information about the dev
mailing list