TigerGraph

TigerGraph is a distributed, parallel graph DBMS with high availability designed for real-time analytical workloads. TigerGraph’s proven technology is used by customers including Uber, VISA, Alipay, Wish, China Mobile, State Grid Corporation of China, and Zillow.

History

Founded by Yu Xu, Ph.D. in 2012, TigerGraph is funded by Qiming VC, Baidu, Ant Financial, AME Cloud, Morado Ventures, Zod Nazem and DCVC.

Isolation Levels

Serializable

Serializable by default.

Concurrency Control

Multi-version Concurrency Control (MVCC)

TigerGraph uses both MVCC and 2PC.

Storage Architecture

In-Memory

In-memory DBMS. TigerGraph also supports larger-than-memory databases under certain circumstances, e.g. when partial or most topology data are on disk.

Checkpoints

Fuzzy

TigerGraph uses fuzzy checkpoints. TigerGraph can be backed up while it continues to serve user traffic (called “online” backup).

Stored Procedures

Supported

TigerGraph GSQL is a procedure like language. It allows query with updates, and query calling query.

Query Execution

Materialized Model

TigerGraph’s MPP architecture supports multiple partitions and multiple processors, allowing IO-parallelism, intra-partitions parallelism and inter-partition parallelism.

Views

Not Supported

No view support for now.

System Architecture

Shared-Nothing

MPP, shared-nothing DBMS.

Query Interface

Custom API

TigerGraph has its own query language GSQL, a SQL-like graph query language. Documentation can be found here: https://docs.tigergraph.com/dev/gsql-ref TigerGraph also supports RESTful API to query and update the graph.

Data Model

Graph

TigerGraph uses property graph, where where data is organized as nodes (vertices), relationships (edges), and properties (their attributes).

Joins

Not Supported

As a graph database, TigerGraph has materialized the relationships between data as edges so there is no joining required. Graph analytics focus mainly on how to traverse along the edges.

Query Compilation

Code Generation

TigerGraph supports code generation and the query runs as native application.

Foreign Keys

Supported

In graph model, vertex serves as the primary key as in RDBMS, while edge serves as the foreign key.

Storage Model

N-ary Storage Model (Row/Record)

NSM and delta-store.

Compression

Dictionary Encoding

TigerGraph compresses data in different ways, including dictionary based, snappy, variable byte compression etc. TigerGraph also supports attribute compression. Depending the operation, TigerGraph may not need data decompression before processing.

Hardware Acceleration

Custom

No. TigerGraph uses MPP (Massively parallel programming) architecture, and runs on commodity servers. The query execution speed is determined by the process power, available memory, network speed and cluster size.

Logging

Physiological Logging

TigerGraph uses MVCC snapshots and WAL (Write-Ahead Logging).

TigerGraph Logo
Website

https://www.tigergraph.com

Source Code

https://www.tigergraph.com/documentation/

Developer

TigerGraph

Country of Origin

US

Start Year

2012

Project Type

Commercial

Written in

C++

Operating Systems

Linux

Licenses

Proprietary