Opened 7 years ago

Closed 7 years ago

Last modified 7 years ago

#4159 closed defect (wontfix)

Relation does not show at web front end

Reported by: Kozuch Owned by: rails-dev@…
Priority: minor Milestone:
Component: website Version:
Keywords: Cc:

Description

Getting following errors:

http://www.openstreetmap.org/browse/relation/1756854: Sorry, the data for the relation with the id 1756854, took too long to retrieve.

http://www.openstreetmap.org/?relation=1756854: Error in loading GML file /api/0.6/relation/1756854/full

Am not sure about the component.

Change History (5)

comment:1 Changed 7 years ago by Tom Hughes

Resolution: wontfix
Status: newclosed

This is a feature, not an error.

To protect the system we impose timeouts on certain operations, and some complex relations are simply too large to load in a reasonable time.

comment:2 Changed 7 years ago by Kozuch

For me, this is a bug. And you Mr. Wontfix, who "OWNS" the project.

comment:3 Changed 7 years ago by Kozuch

Resolution: wontfix
Status: closedreopened

comment:4 Changed 7 years ago by Tom Hughes

Resolution: wontfix
Status: reopenedclosed

Short of buying you a personal supercomputer what exactly do you propose I do to "fix" this?

comment:5 Changed 7 years ago by amm

The first thing one could do is figure out where the main slow down comes from. Is it that a) simply the database queries are so complex that the retrieval from postgres takes too long. b) processing the results in rails takes a too long time

If it is mainly the former, then there is indeed likely not much one can do short of improving the database hardware.

In the case of the latter, moving the relation full call over from rails to cgimap might help significantly. For data that was cached in the db, moving from rails to cgimap for the map call gave nearly a ten times speed up. If I remember correctly, preliminary testing for the other API calls showed similar speed ups with moving to cgimap, conditioned on the data being in the db cache.

Should this indeed be the case, then hopefully many more relations could be retrieved within the timeout period. It wouldn't fix it completely, as the timeout would still be needed to protect the server resources.

Note: See TracTickets for help on using tickets.