Database specialized in storing directed graphs?

Chris Rebert clp at
Tue Oct 28 10:02:02 CET 2008

On Mon, Oct 27, 2008 at 5:32 PM, Carl Banks <pavlovevidence at> wrote:
> I was wondering if anyone had any advice on this.
> This is not to study graph theory; I'm using the graph to represent a
> problem domain.  The graphs could be arbitrarily large, and could
> easily have millions of nodes, and most nodes have a substantial
> amount of data associated with them.  Obviously I don't want a whole
> such graph in memory at once, so libraries the just deal with in-
> memory graphs are out.
> I know I could implement this with a relational DB, and I'd be fine
> with a library that was built on top of one.  But I'm hoping for
> specialzed behavior useful for graphs.
> For example, suppose I have a set of nodes called A.  It would be
> useful to know if any of these nodes are connected by paths that
> include no nodes in A.  I could, of course, do that by reading from
> the database and following the paths, but I clearly don't want to do
> that.  I would want instead to somehow cache the outside connectedness
> relationship between different nodes of A.  But then what happens if
> something changes elsewhere.  How is the cache for A notified, and can
> it be updated efficiently using graph theorems, rather than
> regenerated?
> It's very tricky; that's why I hope someone else has done it.
> I'm guessing no.

By sacrificing a goat at the altar of the Almighty Google, I was able
to locate a project I came upon a long while ago but couldn't remember
the name of that's vaguely like what you want, in that it's a "graph
database": Neo4j - (and yes, it's in Java; sigh)
Not sure it's exactly what you're looking for, but anyway....

Follow the path of the Iguana...

> Carl Banks
> --

More information about the Python-list mailing list