Write ahead Log protocol and Recovery Protocols

Write ahead Log protocol:

The recovery system assumes that memory comes in two flavours: volatile and non-volatile storage. Volatile storage doesn’t survive a system restart. Non-volatile storage usually survives a system restart.

Presume an object is recorded in non-volatile storage prior to the log records for the object are recorded in the non-volatile log. If the system crashes at such a point then one can’t undo the update. Likewise if the new object is one of a set that is committed together as well as if a media error occurs on the object then a mutually consistent version of the set of objects can’t be constructed from their non-volatile versions.

Analysis of these two illustrations indicates that the log must be written to non-volatile storage before the object is written.

Actions are requiring writing log records whenever modifying recoverable objects. The leg (once recorded in non-volatile storage) is considered to be very reliable. Generally the log is dual recorded on physical media with independent failure modes (example dual tapes or else spindles) although single logging is a system option.

The WAL (Write Ahead Log Protocol) is:

a) Prior to over-writing a recoverable object to non-volatile storage with uncommitted updates a transaction (process) must first force its undo log for relevant updates to non-volatile log space.

b) Prior to committing an update to a recoverable object, the transaction coordinator (see below) must force the redo as well as undo log to non-volatile storage thus that it can go either way on the transaction commit. (This is guaranteed via recovery management that will synchronize the commit process with the writing of the phase-2 log transition record at the end of phase-1 of commit processing. This point can’t be understood before the section on two phase commit processing is read.)

This protocol requirements to be interpreted mainly in the case of messages: One shouldn’t send a recoverable message before it is logged (consequently that the message can be cancelled or retransmitted.) In this circumstance the wires of the network are the ‘non-volatile storage’.

The write-ahead-log protocol is executed as follows. All log record has a unique sequence number. All recoverable objects have a ‘high water mark’ which is the largest log sequence number that applies to it. When an object is updated, its high water mark is set to the log sequence number of the new log record. The object can’t be written to non-volatile storage before the log has been written past the object's high water mark. Log administrator provides a synchronous call to force out all log records up to a certain sequence number.

At system restart a transaction perhaps undone or redone. If an error takes place the restart may be repeated. This signifies that an operation may be undone or redone more than once. As well since the log is ‘ahead of’ non-volatile storage the first undo may perhaps apply to an already undone (not-yet-done) change. Likewise the first redo may redo an already done change. This requires that the redo and undo operators be repeatable (idempotent) in the sense that doing them once produces the same result as doing them several times. Undo or redo may perhaps be invoked repeatedly if restart is retried several times or if the failure occurs during phase 2 of commit processing.

Here once more the high water mark is handy. If the elevated water mark is recorded with the object and if the movement of the object to non-volatile storage is atomic (this is true for pages and for messages) then one can read to high water mark to see if undo or else redo is necessary. This is an easy way to make the undo and redo operator idempotent.

Message series numbers on a session perform the function of high water marks. That is the recipient is able to discard messages below the last sequence number received. As a historical note the requirement for WAL only became apparent with the widespread use of LSI memories. Before that time the log buffers resided in core storage that survived software errors hardware errors and power failure. This allowed the system to care for the log buffers in core as non-volatile storage at power shutdown an exception handler in the data management dumps the log buffers. If this is unsuccessful a scavenger is run which reads them out of core to storage. Generally the content of LSI storage doesn’t survive power failures. To guard beside power failure memory failure and wild stores by the software, most systems have opted for the WAL protocol.

Latest technology based Operating System Online Tutoring Assistance

Tutors, at the www.tutorsglobe.com, take pledge to provide full satisfaction and assurance in Operating System help via online tutoring. Students are getting 100% satisfaction by online tutors across the globe. Here you can get homework help for Operating System, project ideas and tutorials. We provide email based Operating System help. You can join us to ask queries 24x7 with live, experienced and qualified online tutors specialized in Operating System. Through Online Tutoring, you would be able to complete your homework or assignments at your home. Tutors at the TutorsGlobe are committed to provide the best quality online tutoring assistance for Operating System Homework help and assignment help services. They use their experience, as they have solved thousands of the Operating System assignments, which may help you to solve your complex issues of Operating System. TutorsGlobe assure for the best quality compliance to your homework. Compromise with quality is not in our dictionary. If we feel that we are not able to provide the homework help as per the deadline or given instruction by the student, we refund the money of the student without any delay.