Search code examples
transactionsorientdb

Does OrientDB support multi-cluster transactions?


I'm trying to understand what sort of distributed transactions OrientDB supports. The documentation on distributed transactions here:

http://orientdb.com/docs/last/Distributed-Architecture.html#distributed-transactions

Seems to be describing transactionally updating replicas of a cluster using a consensus protocol, but does not describe anything about updating multiple clusters on multiple servers.

Are distributed transactions in OrientDB limited to executing on a single cluster, or can ACID transactions be executed on multiple clusters on multiple servers? If so, what is the mechanism that OrientDB uses to accomplish this?


Solution

  • Distributed transaction can include records of multiple class/clusters. The protocol used is an optimistic 2-phase commit, very similar to the one used in Google BigTable (https://arxiv.org/html/1106.3325). The consensus is based on a writeQuorum that is majority by default, but can be relaxed (eventual consistency) or increased (=all) to have no dirty reads between servers.