I have a question about Hardware and Software Transactional Memory.
Given the types of versioning (eager and lazy) and conflict detection (optimistic and pessimistic) and let's say that 2 or more threads are performing a transaction that write/read the same memory location.
The scheduling of the threads could affect the ability of detect a conflict? Which combination of versioning and conflict detection would be better to always catch the conflicts?
Hope my question is clear.
A Pessimistic control and Eager versioning would do good. As on a successful committ, the Eager versioning transaction would be updated directly into the address would perform a undo operation which avoids the concurrency conflict as the locations are locked down.
and the Pessimistic control on transactions would provide a lock down on every place of location being involved in transaction closing a way for other users to change the logs.
Hope you found it useful.