1. A computer system, comprising: one or more processors, one or more computer-readable memories and one or more computer-readable, tangible storage devices; and program instructions, stored on at least one of the one or more computer-readable, tangible storage devices for execution by at least one of the one or more processors via at least one of the one or more memories, to perform: setting a permission on a block of data in an in-memory database to prevent updates to that block of data using a memory protection function; in response to an update operation attempting to update the block of data, receiving an interrupt with a location of the block of data; copying the block of data to an undo log entry in an undo log; and setting the permission on the block of data to allow the update to that block of data using the memory protection function; in response to determining that a transaction that included the update operation for the block of data has committed, removing the undo log entry from the undo log; in response to determining that the transaction that included the update operation has failed, using the undo log entry to restore the block of data by copying the block of data from the undo log entry back to the in-memory database; and in response to one of removing the undo log entry and using the undo log entry to restore the block of data, setting the permission on the block of data to block updates to that block of data.