6. The method of claim 1 , further comprising: receiving, at the graph database system, a second graph analytic program that is written in the graph-specific programming language and that targets a first graph; in response to receiving the second graph analytic program, compiling, at the graph database system, the second graph analytic program to generate a second executable; wherein compiling the second graph analytic program comprises inserting, into the second executable, cancel code that, when executed, checks a flag variable; while executing the second executable, executing the cancel code to determine whether the flag variable is set; if the flag variable is set, then ceasing to execute the second executable.
1. A method comprising: receiving, from a client device, at a graph database system, a graph analytic program that is written in a graph-specific programming language; in response to receiving the graph analytic program, compiling, at the graph database system, the graph analytic program to generate executable code; prior to or in response to receiving the graph analytic program, loading, from a graph database into volatile memory of the graph database system, graph data; executing the executable code to directly access the graph data, wherein the graph data in volatile memory is in a first format and the corresponding version of graph data in the graph database is in a second format; generating, at the graph database system, results of executing the executable code; sending the results from the graph database system to the client device; wherein the method is performed by one or more computing devices.