What is Software Transactional Memory (STM)?
A transaction is a sequence of operations that are either completed atomically or that don’t complete and have no effect on the state of the program. Database transactions are heavyweight and carry a load of properties relating to durability (persistence of data once a transaction has been completed) too. STM, on the other hand, is a very lightweight transaction mechanism and, in a good implementation, cache-sensitive so as to achieve high performance and scalability. STM tracks what variables you read from and write to. Changes are not made to the real variables, but instead are stored in a transaction log. Outside of the current transaction, no other parts of the program can see the changes. At the end of the transaction, a commit is attempted. If no other transaction has committed a change to a variable you read or wrote to, your changes are made and the transaction is successful. Otherwise, it fails and has to be repeated again. This has the nice property that at least some thread
Related Questions
- What are the rules for deleting files from the memory/memory card? Do we need to use some software tool to release the memory or does EYE-02 remove the older files by itself?
- What is activation and why do I have to activate the Memory Manager software?
- How does software transactional memory (STM) work?