In InfoGrid, all modifying access to MeshObjects in a MeshBase must be performed within Transaction boundaries. Read-only access, or access for the purpose of receiving Events does not require a Transaction.
Because distributed InfoGrid applications can be composed of many distributed Nodes that are not necessarily even under control by the same entity, InfoGrid Transactions are necessarily less strict than traditional ACID transactions. They are used primary for the following reasons:
- data modified during a Transaction only gets written to persistent storage when the Transaction completes. This is an efficiency measure.
- data modified during a Transaction only gets conveyed to another NetMeshBase via XPRISO once the Transaction completes. This simplifies processing on the receiving end, and improves efficiency.
- two threads performing updates cannot get into each other's way.