MATRIXX Transaction Server
The Transaction Server coordinates and commits the transactions it receives from the Enrichment module. In addition, the Transaction Server participates in committing any transactions that are initiated by another server in the Parallel-MATRIXX™ cluster. This dual role allows the Transaction Servers across a cluster to keep transactional consistency of all their in-memory database copies.
The Transaction Server ensures the atomicity, consistency, isolation, durability (ACID) compliance of all transactions it coordinates or in which it participates. This happens in MATRIXX Engine without the use of database locks and without ever blocking the processing of an event to serialize multiple accesses to the same data. Instead, the Transaction Server employs a patented algorithm that detects and prevents data collisions just before they occur. The results of a given transaction are identical to what would have resulted had database locks been used, but these results are achieved with much higher efficiency and lower latency. This consistency-guarantee algorithm applies to the transactions that a Transaction Server is coordinating and all transactions running across the cluster. Every Transaction Server validates the consistency of every transaction in the cluster, and the Transaction Servers in the cluster agree on the consistency of all data before a transaction is committed. This creates a constant auditing of the consistency between all in-memory database copies, allowing any data corruption issues to be detected and addressed.
To ensure a durable copy of each transaction is available, each processing pod logs its transactions to the local Solid State Drive (SSD), and each processing pod performs redundant logging for another processing pod. To prepare for long-term auditing of every transaction and publication of Event Detail Records (EDRs) to downstream systems, the publishing pod replays all transactions and logs them to the shared storage.