摘要:
The present invention provides a distributed log system where the logs are distributed on a per client basis. That is, the clients are partitioned into subsets. Each subset of clients is assigned a log, and the the redo records of those clients are maintained in that log. This reduces contention bottlenecks, because the number of clients writing to any one log is limited. Also, all of a client's changes are stored in a single log. During a recovery process, the changes for a block of data may be stored in different logs. For proper recovery, the changes must be applied to the database in the order in which they were originally made. The present invention provides a system for ordering the log entries in the correct order by using a "sequence number". Each page of data in the database has an associated sequence number. When a change is made to that page, the sequence number is incremented. The new sequence number is written to the log along with the change information. To minimize overhead, the sequence number is structured as a two part value. The first part of the value is an "incarnation number" that is increased whenever the associated change assigns a new value to the entire data block that is independent of its prior value, such as the change that initiates a block.