Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Enable updating #6

Open
simonpoole opened this issue May 5, 2019 · 3 comments
Open

Enable updating #6

simonpoole opened this issue May 5, 2019 · 3 comments

Comments

@simonpoole
Copy link
Owner

The current updating mechanism doesn't really work. It should be replaced by at least one of the following:

  • update via conventional osc diffs. This requires adding an index with the element to tiles mapping.
  • update via augmented diffs
@mmd-osm
Copy link

mmd-osm commented Apr 9, 2022

Augmented diffs (as described here https://wiki.openstreetmap.org/wiki/Overpass_API/Augmented_Diffs ) are somewhat computationally expensive (at least when using an official Overpass release), in particular as they're only cached for a few hours on the server. Afterwards, they need to be re-calculated every time someone tries to update their local dataset, which doesn't seem feasible given limited server capacity.

Maybe it would be good to list a few assumptions, like how large the area to be updated would be, what the maximum timeframe for updates is, and also expected number of users, etc.

@simonpoole
Copy link
Owner Author

Given the target audience updates from "OSM" would typically not be more frequent than once per day, but even that doesn't mean that they would have to be consumed directly.

But as I mentioned in the GSOC discussion, Overpass augmented diffs are really massive overkill (and provide guarantees that are not needed), I've suggested in the past that we should really be producing a simpler version of them directly from the OSM DB which would remove most of the current issues.

@mmd-osm
Copy link

mmd-osm commented Apr 9, 2022

Given that augmented_diffs just boil down to a simple QL query covering a one minute interval (eg. https://overpass-api.de/api/augmented_diff?id=4983215&debug=true ), updating once per day would indeed be a massive overkill.

A quick test showed that it would take more than 2.5 hours to download a day worth of data, with > 5GB uncompressed data volume to be processed. I'd try to switch to larger time intervals by using a custom QL query, thereby cutting down the number of queries, and maybe also the data volume. Still it's barely a good fit for this use case.

On my Overpass fork, you can generate 24 hourly augmented diffs in about 22 minutes, upstream/official would be 1.5 hours. Data volume is about 8.3 GB uncompressed.

osmdbt's create-diff would be a good playground to evaluate alternative options: https://github.com/openstreetmap/osmdbt/blob/master/src/osmdbt-create-diff.cpp

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

2 participants