gis-ops / docker-valhalla

This is our flexible Docker repository for the Valhalla routing engine
MIT License
240 stars 70 forks source link

incorporate changes to tiles #35

Closed JackCaster closed 2 years ago

JackCaster commented 2 years ago

Does Valhalla allow to integrate changes without the need of rebuilding the tiles? I am working with the planet map that has a considerable building cost. Would you be able to suggest a way to optimize this process?

nilsnolde commented 2 years ago

nope, hot reloading of tiles is not supported unfortunately. that's a HUGE effort to enable, maybe in 2030s somewhere;) only way of "optimizing" is distributing tile building over more instances which you know are unconnected (except ferries maybe), e.g. darien gap etc. tile building also somewhat scales with threads available (notable exception is pbf parsing, always takes roughly 12 hours depending tiny bit on your machine's cpu). with > 24 threads you can get tile builds within 24 h for the planet.

JackCaster commented 2 years ago

Thanks. That's what I thought. Then, I think the most reasonable approach is to have a dedicated machine to download, apply changes, and rebuild maps to serve to the valhalla service.

nilsnolde commented 2 years ago

yeah, definitely I'd recommend using a dedicated builder machine for graphs (beefy machine if you want it to be quick, 32 GB RAM min, 16 GB doesn't work anymore IIRC). it can simply build all the time and push the tiles to a shared volume. you can watch this PR: https://github.com/valhalla/valhalla/pull/3281. after that's merged we could implement a HTTP endpoint to reload graphs on the serving machine automatically without weird deployment strategies; then your builder would curl that endpoint for the service after another tile batch built and the service would reload the new tiles.

JackCaster commented 2 years ago

Interesting! Looking forward to seeing that PR merged. Thanks for your help