1.1.2.2 Options for Property Graph Architecture

You have two architecture options when using the property graph feature of Oracle Database:

Both options let you use the Property Graph Query Language (PGQL).

Run Graph Query and Analytics in the Graph Server (PGX) (3-Tier)

You can load your property graph into the graph server (PGX), which has a specialized architecture for graph computations. All query and analytics operations on this graph can be executed in memory in the graph server. This graph can be created directly from relational tables or loaded from the property graph schema that stores the graph in the database. You can modify the graph in memory (insert, update, and delete vertices and edges, and create new properties for results of executing an algorithm). The graph server does not write the modifications back to the relational tables.

The graph server (PGX) typically in a server separate from the database, and can run standalone, or in a container like Oracle WebLogic Server or Apache Tomcat. This approach (load your property graph into the graph server) uses a three-tier architecture, as shown in the following figure.

Figure 1-2 Three-Tier Property Graph Architecture

Description of Figure 1-2 follows
Description of "Figure 1-2 Three-Tier Property Graph Architecture"

Property Graph Sizing Recommendations

You can compute the memory required by the graph server (PGX) by using this calculator, Graph Size Estimator.

For example, the following table shows the memory estimated by the calculator for the given input:

Table 1-1 Graph Size Estimator

Number of vertices Number of Edges Properties per Vertex Properties per Edge Estimated graph size
10M 100M
  • 4 - Integer Type
  • 1 - String Type(15 characters)
  • 4 - Integer Type
  • 1 - String Type(15 characters)
15 GB
100M 1B
  • 4 - Integer Type
  • 1 - String Type(15 characters)
  • 4 - Integer Type
  • 1 - String Type(15 characters)
140 GB

Note:

  • Reading a graph into memory can take upto twice the amount of memory needed to represent it in memory. So when you calculate the memory required for running PGX it is recommended that you double the amount of memory of the estimated graph size.
  • CPU Processors: The recommended number of CPU processors for a graph with 10M vertices and 100M edges is 2-4 processors, and up to 16 processors for more compute-intensive workloads. Increasing CPU processors will improve performance.

Load the Graph into Oracle Database (2-Tier)

If you do not need to load the graph into the graph server, you can use another approach: create a property graph from data in relational tables, and store it in the property graph schema (VT$ and GE$ tables). You can then run PGQL queries on this graph.

You can load this graph into memory for running analytics algorithms and PGQL queries not supported in the database. You can configure the graph server to periodically fetch updates from the data automatically in the graph to keep the data synchronized.

This approach uses a two-tier architecture, as shown in the following figure.

Figure 1-3 Two-Tier Property Graph Architecture

Description of Figure 1-3 follows
Description of "Figure 1-3 Two-Tier Property Graph Architecture"