[Ocfs2-devel] Question: recovery map vs replay map

Sunil Mushran sunil.mushran at oracle.com
Fri Oct 8 12:50:03 PDT 2010


On 10/08/2010 12:03 PM, Goldwyn Rodrigues wrote:
> I was reading through the recovery code and got confused with recovery
> and replay maps.
>
> What is the function of recovery maps and replay maps? Is a replay map
> generated for each entry in the recovery map? Is there a situation
> where a replay map is created without a recovery map entry?
>    

During recovery, we need to recover the slot used by the dead node
(including journal replay) and clean up the unused orphaned inodes.

The recovery map refers to the nodes whose slot needs recovery.

The replay map (confusing name, in hindsight) refers to unused slots
whose orphaned inodes need to be cleaned up.

Consider the case of a 4 node cluster having nodes 0, 1, 2, 3.
Say node 0 removes a file that is in-use on node 1. Node 0 will
move the inode to its orphan directory. Then say it umounts.
At this stage, say node 1 dies.

One of the surviving nodes will recover the node 1's slot. That
includes replaying its journal and cleaning up its orphan directory.

But what about the orphan directory that node 0 used that has that
inode that was in use on node 1. That needs to be cleaned up too.

The replay map, populated with unused slots, will contain the slot
used by node 0.

Yes, this code is now superfluous since we now have a orphan
scan timer that fires periodically to clean up the inodes for all slots.

Sunil



More information about the Ocfs2-devel mailing list