Native Graph Support in Oracle Autonomous Database

Graphs constitute a powerful tool to efficiently leverage latent information stored inside data connections. As the number of connections grows exponentially with today’s big data, being able to process graphs at scale is becoming very valuable.

Oracle is heading towards a single converged multi-model database, bringing together a broad set of algorithms that can operate on data with various data types and data models. Oracle Labs Graph-in-DB project aligns with this direction and aims at bringing state-of-the-art scalable graph analytical technologies into Oracle Autonomous Database. The goal is to enable users to define property graphs over arbitrary existing database tables/views and to offer seamless integration of graph processing operations such as graph pattern matching and graph algorithms (pagerank, weakly connected components, etc.) with SQL queries. 

This solution frees users from the need to export data to specialized external graph engine to perform graph analytics, bringing the following benefits:

-> simplified infrastructure

-> increased security

-> transactional consistency on data manipulated via property graph

-> ease of composition with all data models supported by the database (e.g., JSON, XML, etc.) and operations on them

The project seeks to deeply integrate graph processing to Oracle Autonomous database. To this end, it balances extending the database with high-performance main-memory graph data processing techniques while leveraging the existing query execution engine to perform
graph analytical operations when main-memory resources are too scarce. 

This an ambitious project which leverages knowledge from various domains of computer science, such as databases, graphs, algorithms and data structures,
tuning and performance, multi-core and distributed computing, machine learning, and compilation. It involves a significant research and design effort, as well as challenging engineering tasks.


Hardware and Software, Engineered to Work Together