-
Notifications
You must be signed in to change notification settings - Fork 4
DTX
DTX is the distributed transaction layer used to manage a cluster of vold storage nodes.
DTX stands for Distributed Transaction eXecution.
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.
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: