GRAPHITE — An Extensible Graph Traversal Framework for RDBMS

Embed Size (px)

Text of GRAPHITE — An Extensible Graph Traversal Framework for RDBMS

  • Marcus Paradies (TU Dresden), March 18, 2015, 3rd Graph-TA Workshop

  • Graph Processing on Enterprise Data


    Relational + Application Logic Relational + Graph + Application Logic

    Data already in RDBMS SQL as the only interface/no graph abstraction Data transfer to application

    Efficient processing in GDBMS Processing on replicated data Data transfer to application No combination with other data models possible

  • Many graph use cases require support for graph, text, spatial, and temporal processing in a single database engine




    Patient Record

    Type: getsDiagn Date: March 16, 2015

    Type: getsDiagn Date: May 6, 2012

    Type: belongsTo

    Type: belongsTo ID: 1 Content: The patient...

    ID: 2 Content: For patient

    Type: gets Date: May 8, 2012

    Type: belongsTo

    ID: 3 Content: The patient...

    PID: 1 Name: Jake Maier

    PID: 2 Name: Andreas Cook



    Type: hasKeyword

    Type: hasKeyword

    Description: Flu..

    Type: stayedIn From: May 6, 2012 To: May 8, 2012

    Type: stayedIn From: May 8, 2012 To: May 10, 2012

    HID: 2 Long:49.398752 Lat: 8.672434

    HID: 33 Long:49.006890 Lat: 8.403653

    Health Care Graph An Example

  • Integration of Graph Processing into an RDBMS

    How could a deep integration of graph functionality into a RDBMS look like?

    GRAPHITE is a native graph engine with graph operators that are freely combinable with other plan operators


  • Architecture of GRAPHITE

    Graph Storage

    Graph Index

    Structures Physical Graph Operators

    Logical Graph Operators

    Graph Statistics

    Graph Optimizer


    TraveL Compiler

    Graph API


  • Columnar Graph Storage

    All data types available in the RDBMS can be used as vertex/edge attributes


  • Graph Traversal Operators


    Fragmented-Incremental Traversal (FI-Traversal)

  • TraveL A DSL for Graph Traversals


    Code Generation Example Query

  • Initial Experimental Results


    Experimental Results for BFS Traversals Experimental Results for LDBC Query 1

  • Marcus Paradies, TU Dresden