Review Board 1.7.22

HDFS-1580: Add interface for generic Write Ahead Logging mechanisms

Review Request #2672 - Created Nov. 2, 2011 and updated

Ivan Kelly
This is the final piece to allow the loading of custom implementations of JournalManager. There is another change HDFS-2334 which adds closeable to JournalManager, but that may not be absolutely necessary for all journal types. (it is for bookkeeper)

There's 2 changes:
1) I've changes the interfaces(JournalManager, EditLogInputStream & EditLogOutputStream) so that they can be implemented outside of the org.apache.hadoop.hdfs.server.namenode.

2) Pluggable creation of journal managers.
When FSEditLog is creating JournalManagers from dfs.namenode.edits.dir, and it encounters a URI with a schema different to "file" it loads the name of the implementing class from "dfs.namenode.edits.journal-plugin.<schema>". This class must implement JournalManager and have a constructor which takes (Configuration, URI).

Review request changed
Updated (Nov. 3, 2011, 11:25 a.m.)