Database specialized in storing directed graphs?

Carl Banks pavlovevidence at gmail.com
Mon Oct 27 20:32:18 EDT 2008


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.


Carl Banks



More information about the Python-list mailing list