Triangle counting: set-intersection, in place, live
You are looking at Bitcoin value-flow graph1.78M nodes · 7.37B edges in one Semurg substrate. Ask it to count triangles, the neighbor-set intersection over the live graph and it runs the
real query live on this box, on data you can
download and re-run yourself ▸.
Click an example in the agent rail, or vary the seed node, e.g. clustering coefficient from 1000. Every run is measured end to end, on
this box, on the real dataset. Nothing is pre-computed.
The classic graph-analytics stress op. Counting triangles (and the local clustering coefficient) is neighbor-set intersection over adjacency lists. The substrate stores adjacency as contiguous co-located, so each intersection is a SIMD merge over two cache-resident runs, fanned across every core. No copy into a separate analytics cluster. the live Bitcoin value-flow graph, transactions and addresses linked by value-flows (prev-tx to tx to address), parsed straight off the P2P network · Bitcoin mainnet P2P (our own block-parser node, no bitcoind, no REST).
the graph-analytics leader
Copy out, then grind. A dedicated analytics engine first copies the whole graph out of your operational store into a separate cluster, then grinds the triangle count for minutes before it returns a number.
semurg, one engine
In place, on the live graph. Each neighbor-set intersection is a SIMD merge over two contiguous cache-co-located image runs, no pointer chasing, no copy out, fanned across every core.
The ETL hop and the separate cluster both vanish, the count runs where the graph already lives.
Bitcoin value-flow graph: 1.78M nodes, 7.37B edges. Measured live on this box. Download it and re-run it yourself.
ask the agent to count triangles, the live intersection rate renders here
Honest framing: this is the RAW set-intersection rate over the contiguous adjacency, measured live, total time. The deeper win is COLLAPSE: a graph-analytics engine first copies the whole graph out of your operational store into a separate cluster, then grinds the count for minutes. Here it runs in place on the live graph, on the same engine that also serves traversals, full-text and vectors, on a public dataset you can download and re-run.