[OSM-dev] [OSM-talk] donating read-only api-mirrors

Stefan de Konink stefan at konink.de
Fri Feb 6 18:08:15 GMT 2009


Marcus Wolschon wrote:
> The most expensive call would probably be /map with a bounding-box.
> You query all the node, stream them out and keep the nodeIDs
> (but not the whole resultset with lat, lon, version, ...) in memory.
> Query the ways that use these nodes, keeping their IDs in memory.
> Then Query the relations, stream them out and forget about the nodes
> and ways while doing that.

This is *not* true. This is what I expected too. But there is a tipping 
point when the search for a set of node ids is more expensive than the 
join on the table. Which probably has to do with the search strategy 
chosen to do execute it.

> So...why is it that you hold the result-set of the nodes-query in memory
> again?

I think it is done because it is implemented as IN (...) thus you need 
to generated all nodes in there. And probably want to generate all XML 
in one go, instead of in 3 go's, keeping the XML output in memory, which 
is significantly more expensive it is not send on the fly to the client.

> Anyway,  the question was on how much of the  current load is done by
> non-writing queries (not just /map). Do we have an answer for that?

We don't have it :)


Stefan




More information about the dev mailing list