What

While running, transactions use data resources without acquiring locks on those resources. Before committing, each transaction verifies that no other transaction has modified the data it has read. If the check reveals conflicting modifications, the committing transaction rolls back and can be restarted

  • Read
  • Validate
  • Write

Why

high concurrency, fast performance, and no locking of records, which requires additional server resources

Issues

  • High overhead for copying data locally.
  • Validation/Write phase bottlenecks.
  • Aborts are more wasteful than in 2PL because they only occur after a txn has already executed.