I'm using the module in combination with the graphviz_noderef module to create network maps of relationships between one node and a series of other nodes on the site. The site has roughly 80,000 nodes, which creates some fairly substantial .dot files (in some cases, around 100-200K, but in a couple of exceptional cases, up to 3MB).

The module eventually works through these .dot files to produce visualizations, but it leaves the site open to load issues when multiple processes are spawned.

The generation of the .dot files is relatively quick; it is the exec() of the graphviz binaries that causes the high server load, even if running them through nice.

I'd like to see code within the module that either:

  • allows for a maximum number of processes to be run, returning a "this visualization is not currently available" error when that limit has been met, or,
  • makes use of job queuing for graphviz rendering, with a placeholder ("this visualization is being generated") until the job has been complete