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

Incremental Updates #152

Closed
HarelM opened this issue Feb 8, 2018 · 11 comments
Closed

Incremental Updates #152

HarelM opened this issue Feb 8, 2018 · 11 comments
Labels

Comments

@HarelM
Copy link

HarelM commented Feb 8, 2018

Hi,

I'm currently using GraphHopper as my routing engine and I got here from reading OsmSharp issues and found this cool project.
I have a few issues with GraphHopper right now and I'm at a decision making point whether to continue contributing to it or switch to a different routing library.
My server is written in .Net core and it would be easy to use .Net instead of Java.
Having said that, I'm using an HTTP client for routing so it's not a huge benefit.
The current problems with have with GH are:

  1. No profile customization without writing Java code - which means I need to compile a version every time I need to improve a profile - it doesn't happen a lot, but we are now at a point where we have issues with 2/3 of our profiles... I saw that this library support Lua, where can I find a few examples?
  2. Updates are painful - GH doesn't have a good update mechanism.
    I have added a section to GH to allow updating it through file upload using HTTP but the guys at GH didn't fancy it and so I have a branch that can't be merged to their version and is drifting apart from their main version, is there an HTTP way to rebuild/replace the routing db file (this question is probably related to the API project)?
    I'm asking this from the perspective of someone that doesn't write .Net code and would like to tell the routing API to refresh itself without knowing where the file are stored and how they are built.
  3. My site is constantly updating data using OSM change files, can this library support incremental updates?
    Thanks and keep up the good work!
    P.S. I more than willing to help out writing some code if need be.
@xivk
Copy link
Contributor

xivk commented Feb 9, 2018

I'll try and reply to each point:

  1. Lua is the default, the examples are in the code: https://github.com/itinero/routing/tree/develop/src/Itinero/Osm/Vehicles
    And in the samples (this one for use with shapefile-data): https://github.com/itinero/geo/tree/master/samples/Sample.Shape
    And in the docs: http://docs.itinero.tech/docs/itinero/basic-concepts/profiles/lua.html
  2. & 3. Itinero also doesn't have an incremental update mechanism, but the default implementation of the routing-api just reloads the routerdb when it detects it's new. Upload can be via any channel, all the data is in one file, routing network, contraction hierarchy and the routing profiles are all in there, meaning you can update them without rebuilding the code or redeploying the api.

A lot of work went into the lua-profiles and the embedded routing profiles in the routerdb. This was inspired by use in mobile apps, you don't want to redeploy your app if you want to add/update a profile.

I'm working on a incremental update system using a tiled version of the routerdb but it's still early for me to give any release date. I don't know how Itinero compares to GH because I don't know GH well.

Itinero's focus is also a little bit different, it's main goal is to be used as a library in routing projects but there is a pre-built API that can be deployed too.

@xivk xivk added the question label Feb 9, 2018
@xivk
Copy link
Contributor

xivk commented Feb 9, 2018

Oh and you are more than welcome to contribute, just get in touch if you want to make bigger changes, read about this here.

We can also offer paid support and help with routing projects, this is the way Itinero is kept alive.

@alecava58
Copy link

Hi,
could be possible to add one or more tags to nodes or ways to router db already built?

@xivk
Copy link
Contributor

xivk commented Feb 9, 2018

Not at the moment but something that's very possible and on the roadmap. Should be doable to implement in a relatively short time.

@xivk
Copy link
Contributor

xivk commented Feb 9, 2018

It's on the roadmap to support decoding for example traffic events:

https://github.com/itinero/io.openlr

@xivk
Copy link
Contributor

xivk commented Apr 19, 2018

Closing this issue, everything has been fixed or is planned to be fixed in other issues or in Itinero 2.0.

Feel free to reopen if there are any more questions on deployment or something similar.

@xivk xivk closed this as completed Apr 19, 2018
@HarelM
Copy link
Author

HarelM commented Apr 19, 2018

Unfortunately I haven't got to testing this library yet or replacing GH yet.
Can you reference the relevant issue that will support incremental updating?

@xivk
Copy link
Contributor

xivk commented Apr 20, 2018

Incremental updating is on the roadmap but it's going to be a while until this is supported.

What you can do is build a routerdb while the routing server is running. Once the routerdb is built you can update the routing server without any downtime.

@HarelM
Copy link
Author

HarelM commented Apr 20, 2018

Thanks for the info, but building a routerdb is more of a rebuild rather than incremental build - correct me if I'm wrong but I can't use an osm changefile and update an existing routerdb file, right?
If my above assumption is correct, than I can't do it on a minutely basis since I'm guessing building the routerdb file can take some time (probably more than 1-5 minutes for a whole country).

Wouldn't it be better to keep this issue open util this is implemented? this way I can keep track of its status...

@airbreather
Copy link
Contributor

Wouldn't it be better to keep this issue open util this is implemented? this way I can keep track of its status...

#92, #103, and #119 all discuss a proposal for some dynamic updating, so I presume that it would be one or more of those that would stay open instead of this one.

@HarelM
Copy link
Author

HarelM commented Apr 20, 2018

All of the above are closed as well... :-/
I'm guessing that this is tracked somewhere I just don't understand where....

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

No branches or pull requests

4 participants