1.1.2.2 Options for Property Graph Architecture
You have two architecture options when using the property graph feature of Oracle Database:
- Run Graph Query and Analytics in the Graph Server (PGX) (3-Tier)
- Load the Graph into Oracle Database (2-Tier)
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 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 |
|
|
15 GB |
100M |
1B |
|
|
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 Two-Tier Property Graph Architecture"
Parent topic: About the Property Graph Feature of Oracle Database