Skip to content
pwehrle edited this page Jul 8, 2014 · 1 revision

What is DTX?

DTX is the distributed transaction layer used to manage a cluster of vold storage nodes.

What does DTX stand for?

DTX stands for Distributed Transaction eXecution.

What does DTX do?

It keeps track of nodes' online and update status and manages synchronization of volume and snapshot lifecycle events. Each vold node has a unique identifier that identifies it within the cluster and cluster nodes exchange transactions submitted to any one of them, executing them in order while maintaining a consistent state throughout all nodes. Any temporary disconnection triggers an automatic synchronization mechanism between nodes to keep all nodes up-to-date.

How does it work?

DTX is based on a Hazelcast cluster providing the communication and distributed atomic counters necessary to synchronize transaction execution. On top of that cluster DTX adds the following features:

  • registration and management of resource managers, i.e. generic uniquely identified resources implementing a Open XA-compliant transaction process
  • transaction initiators on every node that drive and monitor distributed transaction execution
  • monitoring of the cluster state with automatic discovery and synchronization of nodes
  • task-based status and error reporting exported via JMX and RESTful interfaces

Overview of the internal architecture:

Clone this wiki locally