So our overall goal for dealing with system failures is that when we want to do something on the database that needs to be done in an all or nothing fashion, we'd like to tell the system that we want to guarantee all or nothing execution for that particular set of operations on the database regardless of failures that might occur during the execution. 