4 Using the In-Memory Graph Server (PGX)
The in-memory Graph server of Oracle Graph supports a set of analytical functions.
This chapter provides examples using the in-memory Graph Server (also referred to as Property Graph In-Memory Analytics, and often abbreviated as PGX in the Javadoc, command line, path descriptions, error messages, and examples). It contains the following major topics.
- Overview of the In-Memory Graph Server (PGX)
The In-Memory Graph Server (PGX) is an in-memory graph server for fast, parallel graph query and analytics. The server uses light-weight in-memory data structures to enable fast execution of graph algorithms. - User Authentication and Authorization
The Oracle Graph server (PGX) uses an Oracle Database as identity manager. Both username and password based as well as Kerberos based authentication is supported. - About Vertex and Edge IDs
- Reading Graphs from Oracle Database into the Graph Server (PGX)
Once logged in to the graph server (PGX), you can now read graphs from the database into the graph server without specifying any connection information in the graph configuration. - Keeping the Graph in Oracle Database Synchronized with the Graph Server
You can use theFlashbackSynchronizer
API to automatically apply changes made to graph in the database to the correspondingPgxGraph
object in memory, thus keeping both synchronized. - Optimizing Graphs for Read Versus Updates in the In-Memory Graph Server (PGX)
- Storing a Graph Snapshot on Disk
After reading a graph into memory using either Java or the Shell, if you make some changes to the graph such as running the PageRank algorithm and storing the values as vertex properties, you can store this snapshot of the graph on disk. - Executing Built-in Algorithms
The in-memory graph server (PGX) contains a set of built-in algorithms that are available as Java APIs. - Using Custom PGX Graph Algorithms
A custom PGX graph algorithm allows you to write a graph algorithm in Java and have it automatically compiled to an efficient parallel implementation. - Creating Subgraphs
You can create subgraphs based on a graph that has been loaded into memory. You can use filter expressions or create bipartite subgraphs based on a vertex (node) collection that specifies the left set of the bipartite graph. - Using Automatic Delta Refresh to Handle Database Changes
You can automatically refresh (auto-refresh) graphs periodically to keep the in-memory graph synchronized with changes to the property graph stored in the property graph tables in Oracle Database (VT$ and GE$ tables). - Starting the In-Memory Graph Server (PGX)
This section describes the commands to start and stop the in-memory graph server(PGX). - Connecting to the In-Memory Graph Server (PGX)
This section explains how to connect to the in-memory graph server (PGX) running in remote mode or when deployed as a web application on Apache Tomcat or Oracle WebLogic Server. - Using Graph Server (PGX) as a Library
- User-Defined Functions (UDFs) in PGX
User-defined functions (UDFs) allow users of PGX to add custom logic to their PGQL queries or custom graph algorithms, to complement built-in functions with custom requirements. - Using HAProxy for PGX Load Balancing and High Availability
HAProxy is a high-performance TCP/HTTP load balancer and proxy server that allows multiplexing incoming requests across multiple web servers.
Parent topic: Getting Started with Oracle Property Graphs