title: Which technology is best suited to store and query a huge readonly graph?
body: <p>I have a huge directed graph: It consists of 1.6 million nodes and 30 million edges. I want the users to be able to find all the shortest connections (including incoming and outgoing edges) between two nodes of the graph (via a web interface). At the moment I have stored the graph in a PostgreSQL database. But that solution is not very efficient and elegant, I basically need to store all the edges of the graph twice (see my question <a href="https://stackoverflow.com/questions/1822802/postgresql-how-to-optimize-my-database-for-storing-and-querying-a-huge-graph">PostgreSQL: How to optimize my database for storing and querying a huge graph</a>).</p>
  
  <p>It was suggested to me to use a GraphDB like <a href="http://neo4j.org/" rel="nofollow noreferrer">neo4j</a> or <a href="http://www.franz.com/agraph/allegrograph/" rel="nofollow noreferrer">AllegroGraph</a>. However the free version of AllegroGraph is limited to 50 million nodes and also has a very high-level API (RDF), which   seems too powerful and complex for my problem. Neo4j on the other hand has only a very low level API (and the python interface is not mature yet). Both of them seem to be more suited for problems, where nodes and edges are frequently added or removed to a graph. For a simple search on a graph, these GraphDBs seem to be too complex.</p>
  
  <p>One idea I had would be to "misuse" a search engine like <a href="http://lucene.apache.org/" rel="nofollow noreferrer">Lucene</a> for the job, since I'm basically only searching connections in a graph.</p>
  
  <p>Another idea would be, to have a server process, storing the whole graph (500MB to 1GB) in memory. The clients could then query the server process and could transverse the graph very quickly, since the graph is stored in memory. Is there an easy possibility to write such a server (preferably in Python) using some existing framework?</p>
  
  <p>Which technology would you use to store and query such a huge readonly graph?</p>