Log in

No account? Create an account

Previous Entry | Next Entry

One can execute I/O operations within a lock-based critical section, and, at least in principle, from within an RCU read-side critical section.  What happens when you attempt to execute an I/O operation from within a transaction?

The underlying problem is that transactions may be rolled back, for example, due to conflicts.  Roughly speaking, this requires that all operations within any given transaction be idempotent, so that executing the operation twice has the same effect as executing it once.  Unfortunately, I/O is in general the prototypical non-idempotent operation, making it difficult to include general I/O operations in transactions.

I/O options available to TM.