-
Notifications
You must be signed in to change notification settings - Fork 3.4k
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
Fix generation of inefficient MLD partitions #6085
Conversation
Performance AnalysisPreparationUsing the same set up as the analysis for 5953. Test coordinate sets 1-4 are used to run the following requests via libosrm:
Tests are performed using libosrm versions of Project-OSRM:master at commit f7478ba and mjjbell:mbell/fix_partition Results - RouteAll weights returned by route requests were identical between the two versions, confirming that this is an efficiency issue and not one of correctness. The results below show the difference in request time for the coordinate sets. Coordinate set 1Request Duration
Coordinate set 2Request Duration
Coordinate set 3Request Duration
Coordinate set 4Request Duration
Results - TableWe are not able to compare route weights, as the table response does not contain them. Instead we compare route durations. Coordinate set 1Request Duration
Coordinate set 2Request Duration
Coordinate set 3Request Duration
Coordinate set 4Request Duration
Results - File Size
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Great find. 👍
565aa70
to
3d694b3
Compare
Duplicate restriction nodes in the edge-based-graph are currently not in included in a mapping (.osrm.cnbg_to_ebg) from node-based-graph edges to edge-based-graph nodes. This mapping is used by the MLD partitioner to assign EBG nodes to partitions. The omission from the mapping means all restriction nodes are included in a special 'invalid' partition. This special partition will break the geolocation properties of the multi-level hierarchy. The partition and its super levels will have a large number of border nodes and very few internal paths between them. Given the partitioner is the only consumer of the mapping, we fix the issue by including the duplicate restriction nodes in the mapping, so that they are correctly assigned to a partition. This has measurable improvement on MLD routing. For a country-sized routing network, the fix reduces routing and table request computation time by ~2% and ~6% respectively.
3d694b3
to
b4cc11b
Compare
Issue
See #6084 for details
Performance
This has measurable improvement on MLD routing.
Will include test results in comments below.
TL;DR
/table
is ~6% faster/route
is ~3% fasterosrm-routed
uses 0.2% less memoryTasklist
Requirements / Relations
Closes #6084