Transaction Processing and ACID Support

Updated Sept 1, 2023

This document describes the transactional support provided by the TigerGraph platform.

A TigerGraph transaction is a sequence of operations which acts as a single logical unit of work.

A read-only operation in TigerGraph does not add or remove vertices or edges or change any vertex/edge attribute values. An update operation in TigerGraph is an operation which either changes some vertex/edge attribute value or inserts some new or delete some existing vertex/edge.

The TigerGraph system provides full ACID transactions with Strong Consistency. Transactions are defined as follows:

  • Each GSQL query is a transaction. Each query may have multiple read or write operations.

  • Each REST++ GET, POST, or DELETE operation (which may have multiple update operations within it) is a transaction.

Atomicity

A transaction with update operations may insert/delete multiple vertices/edges or update the attribute values of multiple vertices/edges. Such update requests are "all or nothing": either all changes are successful, or none are.

Consistency

The TigerGraph system provides distributed system Strong Consistency: An update transaction is considered complete when every replica of the data finishes its update. All replicas perform updates in the same order.

Isolation Level

TigerGraph supports the read-committed isolation level, the default standard for many major databases. Internally, TigerGraph uses MVCC to implement the isolation.

Durability

Committed transactions are written to disk (SSD or HDD). The TigerGraph platform implements write-ahead logging (WAL) to provide durability.