itinero / routing2

The next version of the Itinero route planner.
Apache License 2.0
7 stars 1 forks source link

Store profile precalculated data #2

Closed xivk closed 4 years ago

xivk commented 4 years ago

For performance reasons we need to precalculate profile metrics. A profile is a function:

We need to store this inline to remove the need to load attributes sets for each edge and translate them to factors and speeds again and again. We should also consider storing aspects to enable highly flexible profiles based on a set of precalculated fixed edge properties or 'aspects'.

A solution could be:

The aspect key value pairs are stored where appropriate.

xivk commented 4 years ago

When storing values on edges we need a way to retrieve them very fast. We probably need to distinguish between a few weight types:

xivk commented 4 years ago

This is done now, what is left is to cache the length of an edge:

This need for this was confirmed by performance testing:

image