GraphHopper is an Open Source road routing engine which imports OpenStreetMap data to find the best path from A to B e.g. for a car from Moscow to Madrid (http://graphhopper.com).
In this talk I'll explain how we made GraphHopper fast even for long distance paths on commodity servers with world wide data from OpenStreetMap. In contrast GraphHopper still handles indoor graphs efficiently and works on mobile devices such as Android or Raspberry Pi. For this it was necessary to tune the system and do research for fast road routing on graphs.
I'll give a brief overview of the system and talk about the problems we faced with Java when using lots of data while trying to offer a usable API. Then I'll describe our simple but flexible storage solution, which can be used to store graphs, lists and more. In the second part of the talk I'll talk about reducing execution time via memory tuning and will show some possible optimizations we use in our Java code. At the end a short demo is planned.