osmcha-frontend icon indicating copy to clipboard operation
osmcha-frontend copied to clipboard

Evaluate alternatives to current Overpass instance

Open nrenner opened this issue 2 years ago • 0 comments

I'm submitting a feature request

I suggest to replace the current Overpass instance with something more suited and specifically optimized for retrieving full changeset data. A first step would be to do some more research on potential alternatives and a theoretical evaluation/classification.

What is the motivation / use case for this feature?

OSMCha has many long-standing issues¹ about changesets that can't be loaded, have missing changes or changes from other changesets.

The main reasons are limitations of the Overpass API²:

  • adiff query only returns a delta, without intermediate changes (used in both minutely augmented diffs and client-side fallback query)
  • no direct way to query a changeset by id. The workaround is to use an adiff query with the bbox and time range of the changeset and filter out the relevant changes. But this takes too long for large bboxes and long time spans (> 3 min).

Some OSMCha issues could be solved with a workaround, e.g. by querying missing versions using timeline/retro (blog). But this again does not work for the edge case of object versions edited in the same second (Overpass-API#686). Also solvable, but yet another workaround.

But what you really want is augmented diffs with full history (all versions) and/or a service where you can request complete changeset diffs by id in a reasonable time.

Other Information / context:

I collected some loose links and ideas for potential alternatives³ over time, those would need to be amended with a current research and evaluated if they would actually meet our requirements.

A drop-in replacement would be the mmd-osm fork, which has amazing performance improvements for large bboxes.

An obvious alternative would be a read-only clone of the OSM API DB. It would probably need additional work for importing full history, minutely updates, resolving historic refs and query optimizations. Other specialized databases might be more efficient.

nrenner avatar Apr 06 '23 12:04 nrenner