allows multiple participants to read and update the same log file and ensures that only the first log append for a transaction can update this transaction’s state
eliminates decision logging by the coordinator
LogOnce(txn, type)
It atomically checks if a log record already exists for txn, and if not assigns the value in type to the record, namely VOTE-YES, COMMIT, or ABORT. It returns the state of txn after performing the atomic operation, which is either type or the existing state, depending on whether the operation updated the state