-
Notifications
You must be signed in to change notification settings - Fork 7
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
Multi-metric prototype #391
Comments
New metric(energy consumption) calculation related changesPer How OSRM Calculate Weight and Duration, there's a few places related on calculation of Lua/C++ binding changes
Lua changes
C++ changes
osrm-backend/src/extractor/extractor_callbacks.cpp Lines 126 to 127 in a1e5061
osrm-backend/src/extractor/extractor_callbacks.cpp Lines 432 to 433 in a1e5061
osrm-backend/src/extractor/extraction_containers.cpp Lines 396 to 399 in a1e5061
osrm-backend/src/extractor/graph_compressor.cpp Lines 290 to 292 in e86d937
osrm-backend/src/extractor/graph_compressor.cpp Lines 298 to 306 in e86d937
osrm-backend/src/extractor/edge_based_graph_factory.cpp Lines 650 to 672 in e86d937
|
Toolchain files changes & affectionAfter go through most of
In order to change these files, all Refer to https://github.com/Telenav/open-source-spec/blob/master/osrm/doc/osrm-profile.md#na-mld, above affected files size is about 28.6 GB in 43 GB. Consider that the new metric increases 1/3 of total metric size, the increased file size might be 28.6 * 1/3 = 8.58 GB, and the final sizes is about 43 + 8.58 = 51.15 GB. |
A known issue is that OSRM uses |
Customization changes
osrm-backend/src/updater/updater.cpp Lines 258 to 260 in c9e9cc9
osrm-backend/src/updater/updater.cpp Lines 301 to 303 in c9e9cc9
osrm-backend/src/updater/updater.cpp Lines 470 to 484 in c9e9cc9
osrm-backend/src/updater/updater.cpp Lines 607 to 614 in c9e9cc9
osrm-backend/src/updater/updater.cpp Lines 703 to 707 in c9e9cc9
osrm-backend/src/updater/updater.cpp Lines 771 to 777 in c9e9cc9
osrm-backend/src/updater/updater.cpp Lines 788 to 790 in c9e9cc9
osrm-backend/include/customizer/cell_customizer.hpp Lines 71 to 84 in c9e9cc9
osrm-backend/include/customizer/cell_customizer.hpp Lines 89 to 109 in c9e9cc9
osrm-backend/include/customizer/cell_customizer.hpp Lines 173 to 175 in c9e9cc9
osrm-backend/include/customizer/cell_customizer.hpp Lines 224 to 226 in c9e9cc9
|
Query(table) changes
osrm-backend/src/engine/routing_algorithms/many_to_many_mld.cpp Lines 211 to 213 in c9e9cc9
osrm-backend/src/engine/routing_algorithms/many_to_many_mld.cpp Lines 217 to 219 in c9e9cc9
osrm-backend/src/engine/routing_algorithms/many_to_many_mld.cpp Lines 280 to 300 in c9e9cc9
osrm-backend/src/engine/routing_algorithms/many_to_many_mld.cpp Lines 118 to 152 in c9e9cc9
osrm-backend/src/engine/routing_algorithms/many_to_many_mld.cpp Lines 412 to 414 in c9e9cc9
osrm-backend/include/engine/api/table_api.hpp Lines 211 to 215 in c9e9cc9
|
Things have not been considered yet
|
Great information, I feel we have a solid start @wangyoucao577 Here are some points from me before the discussion:
|
I think it's possible if the EV formula is selective(not full dynamic). But we need to do a little more rather than modify lua only:
Yes, we should consider it. Despite we may not use it in real case(one more metric will result 10GB more file/memory and slower re-customize) in short-term, we should keep the possibility. |
Some notes after discussed with @CodeBear801 offline:
For workload estimation of this prototype:
@CodeBear801 Please feel free to append if anything missed, and propose your idea of the workload estimation, as well as risk points if any. :) |
Background
Based on discussion in #372, we might possible to add one more
metric
in OSRM, which might be used to store EV consumption in the future. Project-OSRM#3116 (comment) describes more idea that it can be used for.Originally multi-metric means multiple
metrics
per profile(see Project-OSRM#4007), e.g., support bothfastest
andshortest
queries in a single OSRM instance. But what we want to dicscuss here is more like another dimension ofweight
, something likeduration
. When we query aroute
or atable
, it can be outputed along withweight
andduration
.Goal
metric
in OSRM(name itenergy_consumption
maybe), which can be queried viatable
service interface at the first step.table
response may looks like thisImplementation ideas
duration
can be considered as the secondmetric
compare withweight
. What we want to add is the third one.duration
so that we're able to verify correctness.MLD
on this idea, don't want to touchCH
for now.evalution
) and extra data(e.g.,speed table
). However, this prototype is dedicated to estimate viability and effort in OSRM to have this idea, so we won't touch these extra parts.Acceptance critiria/measurement
duration
that results same value withduration
osrm-extract
,osrm-partition
,osrm-customize
) performance should not be significantly affected(might be affected a little? )osrm-routed
?Let's mainly discuss this topic here to prepare the prototype implementation.
The text was updated successfully, but these errors were encountered: