7. 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, type check code that, when executed, checks whether an object property stored in the graph database system is the same as an object property indicated in the second graph analytic program; while executing the second executable, executing the type check code to determine whether the object property stored in the graph database system is the same as the object property indicated in the second graph analytic program; if the object property stored in the graph database system is not the same as the object property indicated in the second graph analytic program, 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.