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?
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.