Commit Graph

5 Commits (4e8d07c672252b5cb6e2b8202ce30007cef5e409)

Author SHA1 Message Date
Jason Petersen a578506718
Add multi-row isolation tests 2017-08-10 01:10:09 -07:00
Murat Tuncer 5cb9466255 Rebase node metadata isolation tests 2017-08-09 14:22:09 +02:00
Marco Slot ad0fdf57ca Add add/remove node rollback isolation tests 2017-08-09 14:09:54 +02:00
Marco Slot 5923334114 Add transaction recovery regression tests 2017-07-24 20:44:38 +02:00
Onder Kalaci 3369f3486f Introduce distributed transaction ids
This commit adds distributed transaction id infrastructure in
the scope of distributed deadlock detection.

In general, the distributed transaction id consists of a tuple
in the form of: `(databaseId, initiatorNodeIdentifier, transactionId,
timestamp)`.

Briefly, we add a shared memory block on each node, which holds some
information per backend (i.e., an array `BackendData backends[MaxBackends]`).
Later, on each coordinated transaction, Citus sends
`SELECT assign_distributed_transaction_id()` right after `BEGIN`.
For that backend on the worker, the distributed transaction id is set to
the values assigned via the function call.

The aim of the above is to correlate the transactions on the coordinator
to the transactions on the worker nodes.
2017-07-18 15:01:42 +03:00