[Tile-serving] [osm2pgsql] Reprocessing relations multiple times (#423)

Paul Norman notifications at github.com
Fri Jul 31 22:50:27 UTC 2015


https://github.com/openstreetmap/osm2pgsql/issues/419#issuecomment-126644507 showed that with diff updates, relations can be processed twice, once in parsing and once in pending relations. The output is correct, but doing so twice is wasteful.

Two possible solutions come to mind

* Whenever a relation is processed in parsing, delete it from the trackers. If you have a relation that is then modified later in the diff, it will be re-added to the tracker and processed in pending.

* Don't have the output tables process relations that are already flagged as pending. This would never process the same relation twice, but would defer more work to the pending stage, which is believed to be slower.

Bit of a brain-dump from IRC:

> my understanding was that in processing when a relation is touched it has each backend table process that relation. depending on tag transforms, some may do nothing with it. then in pending, it does the same. now, if you have a relation modified then later on a way in that relation modified, it will have to do it in pending so maybe its better to instead skip processing anything in processing that is already marked as pending


---
Reply to this email directly or view it on GitHub:
https://github.com/openstreetmap/osm2pgsql/issues/423
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.openstreetmap.org/pipermail/tile-serving/attachments/20150731/d32e8bbe/attachment.html>


More information about the Tile-serving mailing list