I’ve been reading a bit about graph processing lately, and the tech that supports it.
I’ve thought that relational dbs were useless for graph problems since maybe 1985, when I started trying to keep my financial records in a database and found that it was nearly impossible to track the basis of a stock using the relational paradigm because it had to iterate over all the historic transactions for a given ticker and essentially compute what I read was called a “transitive closure”.
I wasn’t any database god in those days, but it seemed to me that there were an awful lot more problems in the world that required transitive closures than those requiring select and project, or even select, project, and some reasonable number of joins.
Well, of course graph problems don’t do very well in the relational formalism, but graph formalisms don’t do very well in the bounded computation formalism. It’s easy to get swamped with nodes tweedling to one another.
I read the paper on Pregel with interest (and, of course, Google is probably on to Pregel 3.0 by now, or they wouldn’t have published the paper :-)). But I’m curious to hear more about other approaches.