Intent log

An intent log is a mechanism used to make computer operations more resilient in the event of failures. They are used in database software, transaction managers, and some file systems. In database area, transaction log is widely used. In file system area, intent log is used more often.

Before performing an operation, a record of the intent to perform it is written, usually to some relatively permanent medium such as a hard disk drive. After the operation is performed, another record is written. Usually, an operation will change some data in a system. In some cases, the intent record will contain a copy of the data before and after the operation.

This adds overhead, sometimes a significant amount. Enough data is written to the log to either redo or to undo the operation later.

If a failure occurs, then when the system is recovering, it can use the intent log to detect what operations were still in process during the failure, and use the intent log to help recover from the failure, usually by either undoing a partially completed operation, or by redoing one that might need to be completed.