I am using Titan 1.0.0 and Cassandra as a backend.
I have location data (latitude, longitude) as a nodes and edges between these nodes. I want to find shortest path from node A to node B. The graph size is very large. Currently I am using this query to find path between two nodes.
g.V(fromNode).repeat(both().simplePath()).until(is(toNode)).limit(1).path().fill(list);
This query is very inefficient and gives memory error for path size more than 10. After reading about shortest path algorithms, I got to know that implementing A* will be more feasible than implementing Dijkstra's as in A* less graph will be explored.
Now I can use JUNG and load TitanGraph into the memory and implement my own A* to get shortest path. But I don't want whole graph to be inside memory.
Kindly suggest me on how should I implement A* on TitanGraph. Should I query graph using API or should I load graph into memory first then run the A* on in-memory graph.
I will be thankful for any other suggestions as well.