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.
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.
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.
TigerGraph supports the read-committed isolation level, the default standard for many major databases. Internally, TigerGraph uses MVCC to implement the isolation.