TigerGraph is a distributed, parallel graph DBMS with high availability designed for real-time analytical workloads.
The company was founded in 2012 by Yu Xu.
TigerGraph uses fuzzy checkpoints. TigerGraph can be backed up while it continues to serve user traffic (called “online” backup).
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.
Multi-version Concurrency Control (MVCC) Two-Phase Locking (Deadlock Prevention)
TigerGraph uses both MVCC and 2PC (Deadlock prevention).
TigerGraph uses property graph, where where data is organized as nodes (vertices), relationships (edges), and properties (their attributes).
In graph model, vertex serves as the primary key as in RDBMS, while edge serves as the foreign key.
All transactions execute with the serializable isolation level by default.
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.
TigerGraph uses MVCC snapshots and WAL (Write-Ahead Logging).
TigerGraph supports code generation and the query runs as native application.
TigerGraph’s MPP architecture supports multiple partitions and multiple processors, allowing IO-parallelism, intra-partitions parallelism and inter-partition parallelism.
TigerGraph has its own query language GSQL, a SQL-like graph query language. TigerGraph also supports RESTful API to query and update the graph.
In-memory DBMS. TigerGraph also supports larger-than-memory databases under certain circumstances (e.g., when partial or most topology data are on disk).
N-ary Storage Model (Row/Record)
NSM and delta-store.
TigerGraph uses customized log-structured files (WAL + LSM). Its storage system consists of authorization manager, transaction manager, memory manager and file manager.
TigerGraph's GSQL is a procedure-like language. It allows query with updates, and query calling query.
TigerGraph is a shared-nothing DBMS.
No view support for now.