Media failures usually leave database systems unavailable for several hours until recovery is complete, especially in applications with large devices and high transaction volume. Previous work introduced a technique called single-pass restore, which increases restore bandwidth and thus substantially decreases time to repair. Instant restore goes further as it permits read write access to any data on a device undergoing restore--even data not yet restored--by restoring individual data segments on demand. Thus, the restore process is guided primarily by the needs of applications, and the observed mean time to repair is effectively reduced from several hours to a few seconds. This paper presents an implementation and evaluation of instant restore. The technique is incrementally implemented on a system starting with the traditional ARIES design for logging and recovery. Experiments show that the transaction latency perceived after a media failure can be cut down to less than a second and that the overhead imposed by the technique on normal processing is minimal. The net effect is that a few "nines" of availability are added to the system using simple and low-overhead software techniques.
Finally, industrial database systems that implement ARIES recovery suffer from the same problems. IBM’s DB2 speeds up log replay by sorting log records after restoring the backup and before applying the log records to the replacement database @cite_9 . While a sorted log enables a more efficient access pattern, incremental and on-demand restoration is not provided. Furthermore, the delay imposed by the offline sort may be as high as the total downtime incurred by the traditional method.
@cite_9
1812818645
The present invention discloses a technique for restoring a database in a computer. In accordance with the present invention, the database contains objects and is stored on a data storage device connected to the computer. After a system failure, a log file is read. The log file contains one or more modifications to the database objects. Each modification has an associated data page and time stamp or sequence number. The modifications are sorted by at least one predefined sorting key value. The sorted modifications are then grouped by database object. The sorted modifications are applied to each database object in parallel.