A graph is a set of vertices having local states (for example, a vertex can hold information describing the vertex and a list of directed edges leading to other vertices). A vertex may have multiple outgoing (and incoming) edges. In some cases, a pair of vertices may have more than one edge (in the same direction) between them, representing more than one relationship. For example, a person's wife might also be one of his colleagues, a friend, a former schoolmate, and his doctor.
SQL-GR distributes vertex states and computation among processors.
A vertex contain both SQL-compatible and non-SQL-compatible data types:
- In a table, vertices may contain only SQL data types, of course; however, vertices stored in memory as Java objects may contain data that is not SQL-compatible, as well as data that is SQL-compatible.
- In a table, edges may contain only SQL data types, of course; however, edges stored in memory as Java objects may contain data that is not SQL-compatible, as well as data that is SQL-compatible.
- Messages must contain only SQL-compatible data types.