Save points Allow transaction to rewind to previous state Example: Multihop airline reservation Don't flush entire trip if one seat/flight unavailable Programming interface SAVE directive creates save point N UNDO N returns to save point N Implementation: Record state of all locks and cursors in log Release any locks acquired since save No locks to reacquire--locks held until end of transaction