[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
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 :)
More information about the dev