[ https://issues.apache.org/jira/browse/HDFS-1580?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13012817#comment-13012817 ]
Jitendra Nath Pandey commented on HDFS-1580: -------------------------------------------- Ivan, I am thinking of something like following code. I am using name TxnLogOutputStream instead of EditLogOutputStream because the later confuses with existing EditLogOutputStream in Hdfs. This undoes some of my previous suggestions e.g. regarding putting transaction id in the URI. It seems better that the Journal is viewed as a single input or output stream and URI just identifies the namespace. I think we should use TxnRecord object which encapsulate a transaction as a byte-array instead of using Writables, its better to keep interface unaware of serialization protocol. {code} abstract class JournalWriter { //The URI identifies the journal location & namespace JournalWriter(URI u); //Initializes the layoutVersion void format(int layoutVersion); //After this call, any subsequent transactions should //map to newLayoutVersion, to be used in upgrade or rollback. void setLayoutVersion(int newLayoutVersion); TxnLogOutputStream getOutputStream(); //Deletes all transactions older than uptoTxnId (inclusive) void delete(long uptoTxnId); } class TxnRecord { long txnId; byte[] txn; } interface TxnLogOutputStream { write(long txnId, TxnRecord rec); void roll(); close(); } abstract class JournalReader { JournalReader(URI u); TxnLogInputStream getInputStream(long sinceTxnId); } interface TxnLogInputStream { TxnRecord next(); //Returns layout version of the next record. int getLayoutVersion(); void close(); } {code} > Add interface for generic Write Ahead Logging mechanisms > -------------------------------------------------------- > > Key: HDFS-1580 > URL: https://issues.apache.org/jira/browse/HDFS-1580 > Project: Hadoop HDFS > Issue Type: Improvement > Reporter: Ivan Kelly > Attachments: HDFS-1580+1521.diff, HDFS-1580.diff, > generic_wal_iface.pdf, generic_wal_iface.pdf, generic_wal_iface.pdf, > generic_wal_iface.txt > > -- This message is automatically generated by JIRA. For more information on JIRA, see: http://www.atlassian.com/software/jira