Next: , Previous: Controller, Up: Reference

3.2 Transactions

— Macro: elephant:with-transaction &key &body body

Execute a body with a transaction in place. On success, the transaction is committed. Otherwise, the transaction is aborted. If the body deadlocks, the body is re-executed in a new transaction, retrying a fixed number of iterations. *auto-commit* is false for the body of the transaction.

— Variable: elephant:*auto-commit*

Commit things not in transactions?

— Variable: elephant:*current-transaction*

The transaction which is currently in effect.

— Function: elephant:start-ele-transaction &key store-controller parent degree-2 dirty-read txn-nosync txn-nowait txn-sync

Start a transaction. May be nested but not interleaved.

— Function: elephant:commit-transaction &key store-controller txn-nosync txn-sync &allow-other-keys

Commit the current transaction.

— Function: elephant:abort-transaction &key store-controller &allow-other-keys

Abort the current transaction.