You are viewing a plain text version of this content. The canonical link for it is here.
Posted to hdfs-commits@hadoop.apache.org by el...@apache.org on 2012/04/05 02:02:12 UTC

svn commit: r1309629 [2/2] - in /hadoop/common/trunk/hadoop-hdfs-project: dev-support/ hadoop-hdfs/ hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/namenode/ hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/tools/offlineEditsViewer/ hadoop-hdfs...

Modified: hadoop/common/trunk/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/tools/offlineEditsViewer/XmlEditsVisitor.java
URL: http://svn.apache.org/viewvc/hadoop/common/trunk/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/tools/offlineEditsViewer/XmlEditsVisitor.java?rev=1309629&r1=1309628&r2=1309629&view=diff
==============================================================================
--- hadoop/common/trunk/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/tools/offlineEditsViewer/XmlEditsVisitor.java (original)
+++ hadoop/common/trunk/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/tools/offlineEditsViewer/XmlEditsVisitor.java Thu Apr  5 00:02:11 2012
@@ -18,12 +18,19 @@
 package org.apache.hadoop.hdfs.tools.offlineEditsViewer;
 
 import java.io.IOException;
-import java.util.LinkedList;
+import java.io.OutputStream;
 
-import org.apache.hadoop.hdfs.tools.offlineImageViewer.DepthCounter;
+import org.apache.hadoop.hdfs.util.XMLUtils;
+import org.apache.hadoop.hdfs.server.namenode.FSEditLogOp;
 
 import org.apache.hadoop.classification.InterfaceAudience;
 import org.apache.hadoop.classification.InterfaceStability;
+import org.xml.sax.ContentHandler;
+import org.xml.sax.SAXException;
+import org.xml.sax.helpers.AttributesImpl;
+
+import com.sun.org.apache.xml.internal.serialize.OutputFormat;
+import com.sun.org.apache.xml.internal.serialize.XMLSerializer;
 
 /**
  * An XmlEditsVisitor walks over an EditLog structure and writes out
@@ -31,140 +38,85 @@ import org.apache.hadoop.classification.
  */
 @InterfaceAudience.Private
 @InterfaceStability.Unstable
-public class XmlEditsVisitor extends TextEditsVisitor {
-  final private LinkedList<EditsElement> tagQ =
-    new LinkedList<EditsElement>();
-
-  final private DepthCounter depthCounter = new DepthCounter();
+public class XmlEditsVisitor implements OfflineEditsVisitor {
+  private OutputStream out;
+  private ContentHandler contentHandler;
 
   /**
    * Create a processor that writes to the file named and may or may not
    * also output to the screen, as specified.
    *
    * @param filename Name of file to write output to
-   * @param tokenizer Input tokenizer
+   * @param printToScreen Mirror output to screen?
    */
-  public XmlEditsVisitor(String filename, Tokenizer tokenizer)
-    throws IOException {
-
-    super(filename, tokenizer, false);
-  }
-
-  /**
-   * Create a processor that writes to the file named and may or may not
-   * also output to the screen, as specified.
-   *
-   * @param filename Name of file to write output to
-   * @param tokenizer Input tokenizer
-   * @param printToScreen Mirror output to screen? (ignored for binary)
-   */
-  public XmlEditsVisitor(String filename,
-    Tokenizer tokenizer,
-    boolean printToScreen) throws IOException {
-
-    super(filename, tokenizer, printToScreen);
+  public XmlEditsVisitor(OutputStream out)
+      throws IOException {
+    this.out = out;
+    OutputFormat outFormat = new OutputFormat("XML", "UTF-8", true);
+    outFormat.setIndenting(true);
+    outFormat.setIndent(2);
+    outFormat.setDoctype(null, null);
+    XMLSerializer serializer = new XMLSerializer(out, outFormat);
+    contentHandler = serializer.asContentHandler();
+    try {
+      contentHandler.startDocument();
+      contentHandler.startElement("", "", "EDITS", new AttributesImpl());
+    } catch (SAXException e) {
+      throw new IOException("SAX error: " + e.getMessage());
+    }
   }
 
   /**
    * Start visitor (initialization)
    */
   @Override
-  void start() throws IOException {
-    write("<?xml version=\"1.0\"?>\n");
-  }
-
-  /**
-   * Finish visitor
-   */
-  @Override
-  void finish() throws IOException {
-    super.finish();
-  }
-
-  /**
-   * Finish with error
-   */
-  @Override
-  void finishAbnormally() throws IOException {
-    write("\n<!-- Error processing EditLog file.  Exiting -->\n");
-    super.finishAbnormally();
-  }
-
-  /**
-   * Visit a Token
-   *
-   * @param value a Token to visit
-   */
-  @Override
-  Tokenizer.Token visit(Tokenizer.Token value) throws IOException {
-    writeTag(value.getEditsElement().toString(), value.toString());
-    return value;
+  public void start(int version) throws IOException {
+    try {
+      contentHandler.startElement("", "", "EDITS_VERSION", new AttributesImpl());
+      StringBuilder bld = new StringBuilder();
+      bld.append(version);
+      addString(bld.toString());
+      contentHandler.endElement("", "", "EDITS_VERSION");
+    }
+    catch (SAXException e) {
+      throw new IOException("SAX error: " + e.getMessage());
+    }
   }
 
-  /**
-   * Visit an enclosing element (element that cntains other elements)
-   *
-   * @param value a Token to visit
-   */
-  @Override
-  void visitEnclosingElement(Tokenizer.Token value) throws IOException {
-    printIndents();
-    write("<" + value.getEditsElement().toString() + ">\n");
-    tagQ.push(value.getEditsElement());
-    depthCounter.incLevel();
+  public void addString(String str) throws SAXException {
+    int slen = str.length();
+    char arr[] = new char[slen];
+    str.getChars(0, slen, arr, 0);
+    contentHandler.characters(arr, 0, slen);
   }
-
+  
   /**
-   * Leave enclosing element
+   * Finish visitor
    */
   @Override
-  void leaveEnclosingElement() throws IOException {
-    depthCounter.decLevel();
-    if(tagQ.size() == 0)
-      throw new IOException("Tried to exit non-existent enclosing element " +
-                "in EditLog file");
-
-    EditsElement element = tagQ.pop();
-    printIndents();
-    write("</" + element.toString() + ">\n");
-  }
-
-  /**
-   * Write an XML tag
-   *
-   * @param tag a tag name
-   * @param value a tag value
-   */
-  private void writeTag(String tag, String value) throws IOException {
-    printIndents();
-    if(value.length() > 0) {
-      write("<" + tag + ">" + value + "</" + tag + ">\n");
-    } else {
-      write("<" + tag + "/>\n");
+  public void close(Throwable error) throws IOException {
+    try {
+      contentHandler.endElement("", "", "EDITS");
+      if (error != null) {
+        String msg = error.getMessage();
+        XMLUtils.addSaxString(contentHandler, "ERROR",
+            (msg == null) ? "null" : msg);
+      }
+      contentHandler.endDocument();
     }
+    catch (SAXException e) {
+      throw new IOException("SAX error: " + e.getMessage());
+    }
+    out.close();
   }
 
-  // prepared values that printIndents is likely to use
-  final private static String [] indents = {
-     "",
-     "  ",
-     "    ",
-     "      ",
-     "        ",
-     "          ",
-     "            " };
-
-  /**
-   * Prints the leading spaces based on depth level
-   */
-  private void printIndents() throws IOException {
+  @Override
+  public void visitOp(FSEditLogOp op) throws IOException {
     try {
-      write(indents[depthCounter.getLevel()]);
-    } catch (IndexOutOfBoundsException e) {
-      // unlikely needed so can be slow
-      for(int i = 0; i < depthCounter.getLevel(); i++)
-        write("  ");
+      op.outputToXml(contentHandler);
+    }
+    catch (SAXException e) {
+      throw new IOException("SAX error: " + e.getMessage());
     }
-   
   }
 }

Added: hadoop/common/trunk/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/util/XMLUtils.java
URL: http://svn.apache.org/viewvc/hadoop/common/trunk/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/util/XMLUtils.java?rev=1309629&view=auto
==============================================================================
--- hadoop/common/trunk/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/util/XMLUtils.java (added)
+++ hadoop/common/trunk/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/util/XMLUtils.java Thu Apr  5 00:02:11 2012
@@ -0,0 +1,171 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.apache.hadoop.hdfs.util;
+
+import org.apache.hadoop.classification.InterfaceAudience;
+import org.apache.hadoop.classification.InterfaceStability;
+import org.xml.sax.ContentHandler;
+import org.xml.sax.SAXException;
+import org.xml.sax.helpers.AttributesImpl;
+
+import java.util.LinkedList;
+import java.util.List;
+import java.util.Map;
+import java.util.TreeMap;
+
+/**
+ * General xml utilities.
+ *   
+ */
+@InterfaceAudience.Private
+@InterfaceStability.Unstable
+public class XMLUtils {
+  /**
+   * Exception that reflects an invalid XML document.
+   */
+  static public class InvalidXmlException extends RuntimeException {
+    private static final long serialVersionUID = 1L;
+    public InvalidXmlException(String s) {
+      super(s);
+    }
+  }
+  
+  /**
+   * Add a SAX tag with a string inside.
+   *
+   * @param contentHandler     the SAX content handler
+   * @param tag                the element tag to use  
+   * @param value              the string to put inside the tag
+   */
+  public static void addSaxString(ContentHandler contentHandler,
+      String tag, String val) throws SAXException {
+    contentHandler.startElement("", "", tag, new AttributesImpl());
+    char c[] = val.toString().toCharArray();
+    contentHandler.characters(c, 0, c.length);
+    contentHandler.endElement("", "", tag);
+  }
+
+  /**
+   * Represents a bag of key-value pairs encountered during parsing an XML
+   * file.
+   */
+  static public class Stanza {
+    private TreeMap<String, LinkedList <Stanza > > subtrees;
+    private String value;
+    
+    public Stanza() {
+      subtrees = new TreeMap<String, LinkedList <Stanza > >();
+      value = "";
+    }
+    
+    public void setValue(String value) {
+      this.value = value;
+    }
+    
+    public String getValue() {
+      return this.value;
+    }
+    
+    /** 
+     * Discover if a stanza has a given entry.
+     *
+     * @param name        entry to look for
+     * 
+     * @return            true if the entry was found
+     */
+    public boolean hasChildren(String name) {
+      return subtrees.containsKey(name);
+    }
+    
+    /** 
+     * Pull an entry from a stanza.
+     *
+     * @param name        entry to look for
+     * 
+     * @return            the entry
+     */
+    public List<Stanza> getChildren(String name) throws InvalidXmlException {
+      LinkedList <Stanza> children = subtrees.get(name);
+      if (children == null) {
+        throw new InvalidXmlException("no entry found for " + name);
+      }
+      return children;
+    }
+    
+    /** 
+     * Pull a string entry from a stanza.
+     *
+     * @param name        entry to look for
+     * 
+     * @return            the entry
+     */
+    public String getValue(String name) throws InvalidXmlException {
+      if (!subtrees.containsKey(name)) {
+        throw new InvalidXmlException("no entry found for " + name);
+      }
+      LinkedList <Stanza> l = subtrees.get(name);
+      if (l.size() != 1) {
+        throw new InvalidXmlException("More than one value found for " + name);
+      }
+      return l.get(0).getValue();
+    }
+    
+    /** 
+     * Add an entry to a stanza.
+     *
+     * @param name        name of the entry to add
+     * @param child       the entry to add
+     */
+    public void addChild(String name, Stanza child) {
+      LinkedList<Stanza> l;
+      if (subtrees.containsKey(name)) {
+        l = subtrees.get(name);
+      } else {
+        l = new LinkedList<Stanza>();
+        subtrees.put(name, l);
+      }
+      l.add(child);
+    }
+    
+    /** 
+     * Convert a stanza to a human-readable string.
+     */
+    public String toString() {
+      StringBuilder bld = new StringBuilder();
+      bld.append("{");
+      if (!value.equals("")) {
+        bld.append("\"").append(value).append("\"");
+      }
+      String prefix = "";
+      for (Map.Entry<String, LinkedList <Stanza > > entry :
+          subtrees.entrySet()) {
+        String key = entry.getKey();
+        LinkedList <Stanza > ll = entry.getValue();
+        for (Stanza child : ll) {
+          bld.append(prefix);
+          bld.append("<").append(key).append(">");
+          bld.append(child.toString());
+          prefix = ", ";
+        }
+      }
+      bld.append("}");
+      return bld.toString();
+    }
+  }
+}
\ No newline at end of file

Modified: hadoop/common/trunk/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/tools/offlineEditsViewer/TestOfflineEditsViewer.java
URL: http://svn.apache.org/viewvc/hadoop/common/trunk/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/tools/offlineEditsViewer/TestOfflineEditsViewer.java?rev=1309629&r1=1309628&r2=1309629&view=diff
==============================================================================
--- hadoop/common/trunk/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/tools/offlineEditsViewer/TestOfflineEditsViewer.java (original)
+++ hadoop/common/trunk/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/tools/offlineEditsViewer/TestOfflineEditsViewer.java Thu Apr  5 00:02:11 2012
@@ -18,6 +18,7 @@
 
 package org.apache.hadoop.hdfs.tools.offlineEditsViewer;
 
+import java.io.FileOutputStream;
 import java.io.IOException;
 import java.io.File;
 import java.nio.ByteBuffer;
@@ -33,8 +34,6 @@ import org.apache.commons.logging.LogFac
 
 import org.apache.hadoop.hdfs.server.namenode.FSEditLogOpCodes;
 import org.apache.hadoop.hdfs.tools.offlineEditsViewer.OfflineEditsViewer;
-import org.apache.hadoop.hdfs.tools.offlineEditsViewer.TokenizerFactory;
-import org.apache.hadoop.hdfs.tools.offlineEditsViewer.EditsVisitorFactory;
 import org.apache.hadoop.hdfs.DFSTestUtil;
 
 import org.apache.hadoop.hdfs.server.namenode.OfflineEditsViewerHelper;
@@ -158,11 +157,8 @@ public class TestOfflineEditsViewer {
     LOG.info("Running oev [" + inFilename + "] [" + outFilename + "]");
 
     OfflineEditsViewer oev = new OfflineEditsViewer();
-    oev.go( EditsVisitorFactory.getEditsVisitor(
-      outFilename,
-      processor,
-      TokenizerFactory.getTokenizer(inFilename),
-      false));
+    if (oev.go(inFilename, outFilename, processor, true, false, null) != 0)
+      throw new RuntimeException("oev failed");
   }
 
   /**
@@ -173,14 +169,11 @@ public class TestOfflineEditsViewer {
    */
   private boolean hasAllOpCodes(String inFilename) throws IOException {
     String outFilename = inFilename + ".stats";
-    StatisticsEditsVisitor visitor =
-      (StatisticsEditsVisitor)EditsVisitorFactory.getEditsVisitor(
-        outFilename,
-        "stats",
-        TokenizerFactory.getTokenizer(inFilename),
-        false);
+    FileOutputStream fout = new FileOutputStream(outFilename);
+    StatisticsEditsVisitor visitor = new StatisticsEditsVisitor(fout);
     OfflineEditsViewer oev = new OfflineEditsViewer();
-    oev.go(visitor);
+    if (oev.go(inFilename, outFilename, "stats", false, false, visitor) != 0)
+      return false;
     LOG.info("Statistics for " + inFilename + "\n" +
       visitor.getStatisticsString());
     
@@ -190,6 +183,8 @@ public class TestOfflineEditsViewer {
       if(obsoleteOpCodes.containsKey(opCode)) {
         continue;
       }
+      if (opCode == FSEditLogOpCodes.OP_INVALID)
+        continue;
       Long count = visitor.getStatistics().get(opCode);
       if((count == null) || (count == 0)) {
         hasAllOpCodes = false;

Modified: hadoop/common/trunk/hadoop-hdfs-project/hadoop-hdfs/src/test/resources/editsStored.xml
URL: http://svn.apache.org/viewvc/hadoop/common/trunk/hadoop-hdfs-project/hadoop-hdfs/src/test/resources/editsStored.xml?rev=1309629&r1=1309628&r2=1309629&view=diff
==============================================================================
--- hadoop/common/trunk/hadoop-hdfs-project/hadoop-hdfs/src/test/resources/editsStored.xml (original)
+++ hadoop/common/trunk/hadoop-hdfs-project/hadoop-hdfs/src/test/resources/editsStored.xml Thu Apr  5 00:02:11 2012
@@ -1,836 +1,787 @@
-<?xml version="1.0"?>
+<?xml version="1.0" encoding="UTF-8"?>
 <EDITS>
   <EDITS_VERSION>-40</EDITS_VERSION>
   <RECORD>
-    <OPCODE>24</OPCODE>
+    <OPCODE>OP_START_LOG_SEGMENT</OPCODE>
     <DATA>
-      <TRANSACTION_ID>1</TRANSACTION_ID>
+      <TXID>1</TXID>
     </DATA>
-    <CHECKSUM>-2045328303</CHECKSUM>
   </RECORD>
   <RECORD>
-    <OPCODE>21</OPCODE>
+    <OPCODE>OP_UPDATE_MASTER_KEY</OPCODE>
     <DATA>
-      <TRANSACTION_ID>2</TRANSACTION_ID>
-      <KEY_ID>1</KEY_ID>
-      <KEY_EXPIRY_DATE>1331096884634</KEY_EXPIRY_DATE>
-      <KEY_LENGTH>3</KEY_LENGTH>
-      <KEY_BLOB>o0v1</KEY_BLOB>
+      <TXID>2</TXID>
+      <DELEGATION_KEY>
+        <KEY_ID>1</KEY_ID>
+        <EXPIRY_DATE>1331096884634</EXPIRY_DATE>
+        <KEY>a34bf5</KEY>
+      </DELEGATION_KEY>
     </DATA>
-    <CHECKSUM>-1521490291</CHECKSUM>
   </RECORD>
   <RECORD>
-    <OPCODE>21</OPCODE>
+    <OPCODE>OP_UPDATE_MASTER_KEY</OPCODE>
     <DATA>
-      <TRANSACTION_ID>3</TRANSACTION_ID>
-      <KEY_ID>2</KEY_ID>
-      <KEY_EXPIRY_DATE>1331096884637</KEY_EXPIRY_DATE>
-      <KEY_LENGTH>3</KEY_LENGTH>
-      <KEY_BLOB>3WMF</KEY_BLOB>
+      <TXID>3</TXID>
+      <DELEGATION_KEY>
+        <KEY_ID>2</KEY_ID>
+        <EXPIRY_DATE>1331096884637</EXPIRY_DATE>
+        <KEY>dd6305</KEY>
+      </DELEGATION_KEY>
     </DATA>
-    <CHECKSUM>65546244</CHECKSUM>
   </RECORD>
   <RECORD>
-    <OPCODE>10</OPCODE>
+    <OPCODE>OP_SET_GENSTAMP</OPCODE>
     <DATA>
-      <TRANSACTION_ID>4</TRANSACTION_ID>
-      <GENERATION_STAMP>1001</GENERATION_STAMP>
+      <TXID>4</TXID>
+      <GENSTAMP>1001</GENSTAMP>
     </DATA>
-    <CHECKSUM>1423210231</CHECKSUM>
   </RECORD>
   <RECORD>
-    <OPCODE>0</OPCODE>
+    <OPCODE>OP_ADD</OPCODE>
     <DATA>
-      <TRANSACTION_ID>5</TRANSACTION_ID>
+      <TXID>5</TXID>
+      <LENGTH>0</LENGTH>
       <PATH>/file_create</PATH>
       <REPLICATION>1</REPLICATION>
       <MTIME>1330405685834</MTIME>
       <ATIME>1330405685834</ATIME>
       <BLOCKSIZE>512</BLOCKSIZE>
-      <NUMBLOCKS>0</NUMBLOCKS>
+      <CLIENT_NAME>DFSClient_NONMAPREDUCE_-2143415023_1</CLIENT_NAME>
+      <CLIENT_MACHINE>127.0.0.1</CLIENT_MACHINE>
       <PERMISSION_STATUS>
         <USERNAME>todd</USERNAME>
         <GROUPNAME>supergroup</GROUPNAME>
-        <FS_PERMISSIONS>420</FS_PERMISSIONS>
+        <MODE>420</MODE>
       </PERMISSION_STATUS>
-      <CLIENT_NAME>DFSClient_NONMAPREDUCE_-2143415023_1</CLIENT_NAME>
-      <CLIENT_MACHINE>127.0.0.1</CLIENT_MACHINE>
     </DATA>
-    <CHECKSUM>179250704</CHECKSUM>
   </RECORD>
   <RECORD>
-    <OPCODE>9</OPCODE>
+    <OPCODE>OP_CLOSE</OPCODE>
     <DATA>
-      <TRANSACTION_ID>6</TRANSACTION_ID>
+      <TXID>6</TXID>
+      <LENGTH>0</LENGTH>
       <PATH>/file_create</PATH>
       <REPLICATION>1</REPLICATION>
       <MTIME>1330405685848</MTIME>
       <ATIME>1330405685834</ATIME>
       <BLOCKSIZE>512</BLOCKSIZE>
-      <NUMBLOCKS>0</NUMBLOCKS>
+      <CLIENT_NAME></CLIENT_NAME>
+      <CLIENT_MACHINE></CLIENT_MACHINE>
       <PERMISSION_STATUS>
         <USERNAME>todd</USERNAME>
         <GROUPNAME>supergroup</GROUPNAME>
-        <FS_PERMISSIONS>420</FS_PERMISSIONS>
+        <MODE>420</MODE>
       </PERMISSION_STATUS>
     </DATA>
-    <CHECKSUM>-584136658</CHECKSUM>
   </RECORD>
   <RECORD>
-    <OPCODE>1</OPCODE>
+    <OPCODE>OP_RENAME_OLD</OPCODE>
     <DATA>
-      <TRANSACTION_ID>7</TRANSACTION_ID>
-      <SOURCE>/file_create</SOURCE>
-      <DESTINATION>/file_moved</DESTINATION>
+      <TXID>7</TXID>
+      <LENGTH>0</LENGTH>
+      <SRC>/file_create</SRC>
+      <DST>/file_moved</DST>
       <TIMESTAMP>1330405685852</TIMESTAMP>
     </DATA>
-    <CHECKSUM>-1983534581</CHECKSUM>
   </RECORD>
   <RECORD>
-    <OPCODE>2</OPCODE>
+    <OPCODE>OP_DELETE</OPCODE>
     <DATA>
-      <TRANSACTION_ID>8</TRANSACTION_ID>
+      <TXID>8</TXID>
+      <LENGTH>0</LENGTH>
       <PATH>/file_moved</PATH>
       <TIMESTAMP>1330405685857</TIMESTAMP>
     </DATA>
-    <CHECKSUM>-97648053</CHECKSUM>
   </RECORD>
   <RECORD>
-    <OPCODE>3</OPCODE>
+    <OPCODE>OP_MKDIR</OPCODE>
     <DATA>
-      <TRANSACTION_ID>9</TRANSACTION_ID>
+      <TXID>9</TXID>
+      <LENGTH>0</LENGTH>
       <PATH>/directory_mkdir</PATH>
       <TIMESTAMP>1330405685861</TIMESTAMP>
-      <ATIME>1330405685861</ATIME>
       <PERMISSION_STATUS>
         <USERNAME>todd</USERNAME>
         <GROUPNAME>supergroup</GROUPNAME>
-        <FS_PERMISSIONS>493</FS_PERMISSIONS>
+        <MODE>493</MODE>
       </PERMISSION_STATUS>
     </DATA>
-    <CHECKSUM>-146811985</CHECKSUM>
   </RECORD>
   <RECORD>
-    <OPCODE>10</OPCODE>
+    <OPCODE>OP_SET_GENSTAMP</OPCODE>
     <DATA>
-      <TRANSACTION_ID>10</TRANSACTION_ID>
-      <GENERATION_STAMP>1002</GENERATION_STAMP>
+      <TXID>10</TXID>
+      <GENSTAMP>1002</GENSTAMP>
     </DATA>
-    <CHECKSUM>85982431</CHECKSUM>
   </RECORD>
   <RECORD>
-    <OPCODE>0</OPCODE>
+    <OPCODE>OP_ADD</OPCODE>
     <DATA>
-      <TRANSACTION_ID>11</TRANSACTION_ID>
+      <TXID>11</TXID>
+      <LENGTH>0</LENGTH>
       <PATH>/file_create</PATH>
       <REPLICATION>1</REPLICATION>
       <MTIME>1330405685866</MTIME>
       <ATIME>1330405685866</ATIME>
       <BLOCKSIZE>512</BLOCKSIZE>
-      <NUMBLOCKS>0</NUMBLOCKS>
+      <CLIENT_NAME>DFSClient_NONMAPREDUCE_-2143415023_1</CLIENT_NAME>
+      <CLIENT_MACHINE>127.0.0.1</CLIENT_MACHINE>
       <PERMISSION_STATUS>
         <USERNAME>todd</USERNAME>
         <GROUPNAME>supergroup</GROUPNAME>
-        <FS_PERMISSIONS>420</FS_PERMISSIONS>
+        <MODE>420</MODE>
       </PERMISSION_STATUS>
-      <CLIENT_NAME>DFSClient_NONMAPREDUCE_-2143415023_1</CLIENT_NAME>
-      <CLIENT_MACHINE>127.0.0.1</CLIENT_MACHINE>
     </DATA>
-    <CHECKSUM>806955943</CHECKSUM>
   </RECORD>
   <RECORD>
-    <OPCODE>9</OPCODE>
+    <OPCODE>OP_CLOSE</OPCODE>
     <DATA>
-      <TRANSACTION_ID>12</TRANSACTION_ID>
+      <TXID>12</TXID>
+      <LENGTH>0</LENGTH>
       <PATH>/file_create</PATH>
       <REPLICATION>1</REPLICATION>
       <MTIME>1330405685868</MTIME>
       <ATIME>1330405685866</ATIME>
       <BLOCKSIZE>512</BLOCKSIZE>
-      <NUMBLOCKS>0</NUMBLOCKS>
+      <CLIENT_NAME></CLIENT_NAME>
+      <CLIENT_MACHINE></CLIENT_MACHINE>
       <PERMISSION_STATUS>
         <USERNAME>todd</USERNAME>
         <GROUPNAME>supergroup</GROUPNAME>
-        <FS_PERMISSIONS>420</FS_PERMISSIONS>
+        <MODE>420</MODE>
       </PERMISSION_STATUS>
     </DATA>
-    <CHECKSUM>641893387</CHECKSUM>
   </RECORD>
   <RECORD>
-    <OPCODE>4</OPCODE>
+    <OPCODE>OP_SET_REPLICATION</OPCODE>
     <DATA>
-      <TRANSACTION_ID>13</TRANSACTION_ID>
+      <TXID>13</TXID>
       <PATH>/file_create</PATH>
       <REPLICATION>1</REPLICATION>
     </DATA>
-    <CHECKSUM>24198146</CHECKSUM>
   </RECORD>
   <RECORD>
-    <OPCODE>7</OPCODE>
+    <OPCODE>OP_SET_PERMISSIONS</OPCODE>
     <DATA>
-      <TRANSACTION_ID>14</TRANSACTION_ID>
-      <PATH>/file_create</PATH>
-      <FS_PERMISSIONS>511</FS_PERMISSIONS>
+      <TXID>14</TXID>
+      <SRC>/file_create</SRC>
+      <MODE>511</MODE>
     </DATA>
-    <CHECKSUM>605568911</CHECKSUM>
   </RECORD>
   <RECORD>
-    <OPCODE>8</OPCODE>
+    <OPCODE>OP_SET_OWNER</OPCODE>
     <DATA>
-      <TRANSACTION_ID>15</TRANSACTION_ID>
-      <PATH>/file_create</PATH>
+      <TXID>15</TXID>
+      <SRC>/file_create</SRC>
       <USERNAME>newOwner</USERNAME>
-      <GROUPNAME/>
     </DATA>
-    <CHECKSUM>-1411790340</CHECKSUM>
   </RECORD>
   <RECORD>
-    <OPCODE>13</OPCODE>
+    <OPCODE>OP_TIMES</OPCODE>
     <DATA>
-      <TRANSACTION_ID>16</TRANSACTION_ID>
+      <TXID>16</TXID>
+      <LENGTH>0</LENGTH>
       <PATH>/file_create</PATH>
       <MTIME>1285195527000</MTIME>
       <ATIME>1285195527000</ATIME>
     </DATA>
-    <CHECKSUM>1853168961</CHECKSUM>
   </RECORD>
   <RECORD>
-    <OPCODE>14</OPCODE>
+    <OPCODE>OP_SET_QUOTA</OPCODE>
     <DATA>
-      <TRANSACTION_ID>17</TRANSACTION_ID>
-      <PATH>/directory_mkdir</PATH>
-      <NS_QUOTA>1000</NS_QUOTA>
-      <DS_QUOTA>-1</DS_QUOTA>
+      <TXID>17</TXID>
+      <SRC>/directory_mkdir</SRC>
+      <NSQUOTA>1000</NSQUOTA>
+      <DSQUOTA>-1</DSQUOTA>
     </DATA>
-    <CHECKSUM>-1476130374</CHECKSUM>
   </RECORD>
   <RECORD>
-    <OPCODE>15</OPCODE>
+    <OPCODE>OP_RENAME</OPCODE>
     <DATA>
-      <TRANSACTION_ID>18</TRANSACTION_ID>
-      <SOURCE>/file_create</SOURCE>
-      <DESTINATION>/file_moved</DESTINATION>
+      <TXID>18</TXID>
+      <LENGTH>0</LENGTH>
+      <SRC>/file_create</SRC>
+      <DST>/file_moved</DST>
       <TIMESTAMP>1330405685882</TIMESTAMP>
-      <RENAME_OPTIONS>AA</RENAME_OPTIONS>
+      <OPTIONS>NONE</OPTIONS>
     </DATA>
-    <CHECKSUM>-1235158297</CHECKSUM>
   </RECORD>
   <RECORD>
-    <OPCODE>10</OPCODE>
+    <OPCODE>OP_SET_GENSTAMP</OPCODE>
     <DATA>
-      <TRANSACTION_ID>19</TRANSACTION_ID>
-      <GENERATION_STAMP>1003</GENERATION_STAMP>
+      <TXID>19</TXID>
+      <GENSTAMP>1003</GENSTAMP>
     </DATA>
-    <CHECKSUM>1920677987</CHECKSUM>
   </RECORD>
   <RECORD>
-    <OPCODE>0</OPCODE>
+    <OPCODE>OP_ADD</OPCODE>
     <DATA>
-      <TRANSACTION_ID>20</TRANSACTION_ID>
+      <TXID>20</TXID>
+      <LENGTH>0</LENGTH>
       <PATH>/file_concat_target</PATH>
       <REPLICATION>1</REPLICATION>
       <MTIME>1330405685889</MTIME>
       <ATIME>1330405685889</ATIME>
       <BLOCKSIZE>512</BLOCKSIZE>
-      <NUMBLOCKS>0</NUMBLOCKS>
+      <CLIENT_NAME>DFSClient_NONMAPREDUCE_-2143415023_1</CLIENT_NAME>
+      <CLIENT_MACHINE>127.0.0.1</CLIENT_MACHINE>
       <PERMISSION_STATUS>
         <USERNAME>todd</USERNAME>
         <GROUPNAME>supergroup</GROUPNAME>
-        <FS_PERMISSIONS>420</FS_PERMISSIONS>
+        <MODE>420</MODE>
       </PERMISSION_STATUS>
-      <CLIENT_NAME>DFSClient_NONMAPREDUCE_-2143415023_1</CLIENT_NAME>
-      <CLIENT_MACHINE>127.0.0.1</CLIENT_MACHINE>
     </DATA>
-    <CHECKSUM>-981119572</CHECKSUM>
   </RECORD>
   <RECORD>
-    <OPCODE>10</OPCODE>
+    <OPCODE>OP_SET_GENSTAMP</OPCODE>
     <DATA>
-      <TRANSACTION_ID>21</TRANSACTION_ID>
-      <GENERATION_STAMP>1004</GENERATION_STAMP>
+      <TXID>21</TXID>
+      <GENSTAMP>1004</GENSTAMP>
     </DATA>
-    <CHECKSUM>-1627007926</CHECKSUM>
   </RECORD>
   <RECORD>
-    <OPCODE>25</OPCODE>
+    <OPCODE>OP_UPDATE_BLOCKS</OPCODE>
     <DATA>
-      <TRANSACTION_ID>22</TRANSACTION_ID>
+      <TXID>22</TXID>
       <PATH>/file_concat_target</PATH>
-      <NUMBLOCKS>1</NUMBLOCKS>
       <BLOCK>
         <BLOCK_ID>-7144805496741076283</BLOCK_ID>
-        <BLOCK_NUM_BYTES>0</BLOCK_NUM_BYTES>
-        <BLOCK_GENERATION_STAMP>1004</BLOCK_GENERATION_STAMP>
+        <NUM_BYTES>0</NUM_BYTES>
+        <GENERATION_STAMP>1004</GENERATION_STAMP>
       </BLOCK>
     </DATA>
-    <CHECKSUM>-1131701615</CHECKSUM>
   </RECORD>
   <RECORD>
-    <OPCODE>10</OPCODE>
+    <OPCODE>OP_SET_GENSTAMP</OPCODE>
     <DATA>
-      <TRANSACTION_ID>23</TRANSACTION_ID>
-      <GENERATION_STAMP>1005</GENERATION_STAMP>
+      <TXID>23</TXID>
+      <GENSTAMP>1005</GENSTAMP>
     </DATA>
-    <CHECKSUM>-957035430</CHECKSUM>
   </RECORD>
   <RECORD>
-    <OPCODE>25</OPCODE>
+    <OPCODE>OP_UPDATE_BLOCKS</OPCODE>
     <DATA>
-      <TRANSACTION_ID>24</TRANSACTION_ID>
+      <TXID>24</TXID>
       <PATH>/file_concat_target</PATH>
-      <NUMBLOCKS>2</NUMBLOCKS>
       <BLOCK>
         <BLOCK_ID>-7144805496741076283</BLOCK_ID>
-        <BLOCK_NUM_BYTES>512</BLOCK_NUM_BYTES>
-        <BLOCK_GENERATION_STAMP>1004</BLOCK_GENERATION_STAMP>
+        <NUM_BYTES>512</NUM_BYTES>
+        <GENERATION_STAMP>1004</GENERATION_STAMP>
       </BLOCK>
       <BLOCK>
         <BLOCK_ID>-4125931756867080767</BLOCK_ID>
-        <BLOCK_DELTA_NUM_BYTES>-512</BLOCK_DELTA_NUM_BYTES>
-        <BLOCK_DELTA_GEN_STAMP>1</BLOCK_DELTA_GEN_STAMP>
+        <NUM_BYTES>0</NUM_BYTES>
+        <GENERATION_STAMP>1005</GENERATION_STAMP>
       </BLOCK>
     </DATA>
-    <CHECKSUM>-932985519</CHECKSUM>
   </RECORD>
   <RECORD>
-    <OPCODE>10</OPCODE>
+    <OPCODE>OP_SET_GENSTAMP</OPCODE>
     <DATA>
-      <TRANSACTION_ID>25</TRANSACTION_ID>
-      <GENERATION_STAMP>1006</GENERATION_STAMP>
+      <TXID>25</TXID>
+      <GENSTAMP>1006</GENSTAMP>
     </DATA>
-    <CHECKSUM>-1757460878</CHECKSUM>
   </RECORD>
   <RECORD>
-    <OPCODE>25</OPCODE>
+    <OPCODE>OP_UPDATE_BLOCKS</OPCODE>
     <DATA>
-      <TRANSACTION_ID>26</TRANSACTION_ID>
+      <TXID>26</TXID>
       <PATH>/file_concat_target</PATH>
-      <NUMBLOCKS>3</NUMBLOCKS>
       <BLOCK>
         <BLOCK_ID>-7144805496741076283</BLOCK_ID>
-        <BLOCK_NUM_BYTES>512</BLOCK_NUM_BYTES>
-        <BLOCK_GENERATION_STAMP>1004</BLOCK_GENERATION_STAMP>
+        <NUM_BYTES>512</NUM_BYTES>
+        <GENERATION_STAMP>1004</GENERATION_STAMP>
       </BLOCK>
       <BLOCK>
         <BLOCK_ID>-4125931756867080767</BLOCK_ID>
-        <BLOCK_DELTA_NUM_BYTES>0</BLOCK_DELTA_NUM_BYTES>
-        <BLOCK_DELTA_GEN_STAMP>1</BLOCK_DELTA_GEN_STAMP>
+        <NUM_BYTES>512</NUM_BYTES>
+        <GENERATION_STAMP>1005</GENERATION_STAMP>
       </BLOCK>
       <BLOCK>
         <BLOCK_ID>1562413691487277050</BLOCK_ID>
-        <BLOCK_DELTA_NUM_BYTES>-512</BLOCK_DELTA_NUM_BYTES>
-        <BLOCK_DELTA_GEN_STAMP>1</BLOCK_DELTA_GEN_STAMP>
+        <NUM_BYTES>0</NUM_BYTES>
+        <GENERATION_STAMP>1006</GENERATION_STAMP>
       </BLOCK>
     </DATA>
-    <CHECKSUM>-154090859</CHECKSUM>
   </RECORD>
   <RECORD>
-    <OPCODE>9</OPCODE>
+    <OPCODE>OP_CLOSE</OPCODE>
     <DATA>
-      <TRANSACTION_ID>27</TRANSACTION_ID>
+      <TXID>27</TXID>
+      <LENGTH>0</LENGTH>
       <PATH>/file_concat_target</PATH>
       <REPLICATION>1</REPLICATION>
       <MTIME>1330405685978</MTIME>
       <ATIME>1330405685889</ATIME>
       <BLOCKSIZE>512</BLOCKSIZE>
-      <NUMBLOCKS>3</NUMBLOCKS>
+      <CLIENT_NAME></CLIENT_NAME>
+      <CLIENT_MACHINE></CLIENT_MACHINE>
       <BLOCK>
         <BLOCK_ID>-7144805496741076283</BLOCK_ID>
-        <BLOCK_NUM_BYTES>512</BLOCK_NUM_BYTES>
-        <BLOCK_GENERATION_STAMP>1004</BLOCK_GENERATION_STAMP>
+        <NUM_BYTES>512</NUM_BYTES>
+        <GENERATION_STAMP>1004</GENERATION_STAMP>
       </BLOCK>
       <BLOCK>
         <BLOCK_ID>-4125931756867080767</BLOCK_ID>
-        <BLOCK_NUM_BYTES>512</BLOCK_NUM_BYTES>
-        <BLOCK_GENERATION_STAMP>1005</BLOCK_GENERATION_STAMP>
+        <NUM_BYTES>512</NUM_BYTES>
+        <GENERATION_STAMP>1005</GENERATION_STAMP>
       </BLOCK>
       <BLOCK>
         <BLOCK_ID>1562413691487277050</BLOCK_ID>
-        <BLOCK_NUM_BYTES>512</BLOCK_NUM_BYTES>
-        <BLOCK_GENERATION_STAMP>1006</BLOCK_GENERATION_STAMP>
+        <NUM_BYTES>512</NUM_BYTES>
+        <GENERATION_STAMP>1006</GENERATION_STAMP>
       </BLOCK>
       <PERMISSION_STATUS>
         <USERNAME>todd</USERNAME>
         <GROUPNAME>supergroup</GROUPNAME>
-        <FS_PERMISSIONS>420</FS_PERMISSIONS>
+        <MODE>420</MODE>
       </PERMISSION_STATUS>
     </DATA>
-    <CHECKSUM>-292633850</CHECKSUM>
   </RECORD>
   <RECORD>
-    <OPCODE>10</OPCODE>
+    <OPCODE>OP_SET_GENSTAMP</OPCODE>
     <DATA>
-      <TRANSACTION_ID>28</TRANSACTION_ID>
-      <GENERATION_STAMP>1007</GENERATION_STAMP>
+      <TXID>28</TXID>
+      <GENSTAMP>1007</GENSTAMP>
     </DATA>
-    <CHECKSUM>-1431358549</CHECKSUM>
   </RECORD>
   <RECORD>
-    <OPCODE>0</OPCODE>
+    <OPCODE>OP_ADD</OPCODE>
     <DATA>
-      <TRANSACTION_ID>29</TRANSACTION_ID>
+      <TXID>29</TXID>
+      <LENGTH>0</LENGTH>
       <PATH>/file_concat_0</PATH>
       <REPLICATION>1</REPLICATION>
       <MTIME>1330405685983</MTIME>
       <ATIME>1330405685983</ATIME>
       <BLOCKSIZE>512</BLOCKSIZE>
-      <NUMBLOCKS>0</NUMBLOCKS>
+      <CLIENT_NAME>DFSClient_NONMAPREDUCE_-2143415023_1</CLIENT_NAME>
+      <CLIENT_MACHINE>127.0.0.1</CLIENT_MACHINE>
       <PERMISSION_STATUS>
         <USERNAME>todd</USERNAME>
         <GROUPNAME>supergroup</GROUPNAME>
-        <FS_PERMISSIONS>420</FS_PERMISSIONS>
+        <MODE>420</MODE>
       </PERMISSION_STATUS>
-      <CLIENT_NAME>DFSClient_NONMAPREDUCE_-2143415023_1</CLIENT_NAME>
-      <CLIENT_MACHINE>127.0.0.1</CLIENT_MACHINE>
     </DATA>
-    <CHECKSUM>-318194869</CHECKSUM>
   </RECORD>
   <RECORD>
-    <OPCODE>10</OPCODE>
+    <OPCODE>OP_SET_GENSTAMP</OPCODE>
     <DATA>
-      <TRANSACTION_ID>30</TRANSACTION_ID>
-      <GENERATION_STAMP>1008</GENERATION_STAMP>
+      <TXID>30</TXID>
+      <GENSTAMP>1008</GENSTAMP>
     </DATA>
-    <CHECKSUM>156309208</CHECKSUM>
   </RECORD>
   <RECORD>
-    <OPCODE>25</OPCODE>
+    <OPCODE>OP_UPDATE_BLOCKS</OPCODE>
     <DATA>
-      <TRANSACTION_ID>31</TRANSACTION_ID>
+      <TXID>31</TXID>
       <PATH>/file_concat_0</PATH>
-      <NUMBLOCKS>1</NUMBLOCKS>
       <BLOCK>
         <BLOCK_ID>6084289468290363112</BLOCK_ID>
-        <BLOCK_NUM_BYTES>0</BLOCK_NUM_BYTES>
-        <BLOCK_GENERATION_STAMP>1008</BLOCK_GENERATION_STAMP>
+        <NUM_BYTES>0</NUM_BYTES>
+        <GENERATION_STAMP>1008</GENERATION_STAMP>
       </BLOCK>
     </DATA>
-    <CHECKSUM>-596016492</CHECKSUM>
   </RECORD>
   <RECORD>
-    <OPCODE>10</OPCODE>
+    <OPCODE>OP_SET_GENSTAMP</OPCODE>
     <DATA>
-      <TRANSACTION_ID>32</TRANSACTION_ID>
-      <GENERATION_STAMP>1009</GENERATION_STAMP>
+      <TXID>32</TXID>
+      <GENSTAMP>1009</GENSTAMP>
     </DATA>
-    <CHECKSUM>-1734001394</CHECKSUM>
   </RECORD>
   <RECORD>
-    <OPCODE>25</OPCODE>
+    <OPCODE>OP_UPDATE_BLOCKS</OPCODE>
     <DATA>
-      <TRANSACTION_ID>33</TRANSACTION_ID>
+      <TXID>33</TXID>
       <PATH>/file_concat_0</PATH>
-      <NUMBLOCKS>2</NUMBLOCKS>
       <BLOCK>
         <BLOCK_ID>6084289468290363112</BLOCK_ID>
-        <BLOCK_NUM_BYTES>512</BLOCK_NUM_BYTES>
-        <BLOCK_GENERATION_STAMP>1008</BLOCK_GENERATION_STAMP>
+        <NUM_BYTES>512</NUM_BYTES>
+        <GENERATION_STAMP>1008</GENERATION_STAMP>
       </BLOCK>
       <BLOCK>
         <BLOCK_ID>-4219431127125026105</BLOCK_ID>
-        <BLOCK_DELTA_NUM_BYTES>-512</BLOCK_DELTA_NUM_BYTES>
-        <BLOCK_DELTA_GEN_STAMP>1</BLOCK_DELTA_GEN_STAMP>
+        <NUM_BYTES>0</NUM_BYTES>
+        <GENERATION_STAMP>1009</GENERATION_STAMP>
       </BLOCK>
     </DATA>
-    <CHECKSUM>1352178323</CHECKSUM>
   </RECORD>
   <RECORD>
-    <OPCODE>10</OPCODE>
+    <OPCODE>OP_SET_GENSTAMP</OPCODE>
     <DATA>
-      <TRANSACTION_ID>34</TRANSACTION_ID>
-      <GENERATION_STAMP>1010</GENERATION_STAMP>
+      <TXID>34</TXID>
+      <GENSTAMP>1010</GENSTAMP>
     </DATA>
-    <CHECKSUM>794444850</CHECKSUM>
   </RECORD>
   <RECORD>
-    <OPCODE>25</OPCODE>
+    <OPCODE>OP_UPDATE_BLOCKS</OPCODE>
     <DATA>
-      <TRANSACTION_ID>35</TRANSACTION_ID>
+      <TXID>35</TXID>
       <PATH>/file_concat_0</PATH>
-      <NUMBLOCKS>3</NUMBLOCKS>
       <BLOCK>
         <BLOCK_ID>6084289468290363112</BLOCK_ID>
-        <BLOCK_NUM_BYTES>512</BLOCK_NUM_BYTES>
-        <BLOCK_GENERATION_STAMP>1008</BLOCK_GENERATION_STAMP>
+        <NUM_BYTES>512</NUM_BYTES>
+        <GENERATION_STAMP>1008</GENERATION_STAMP>
       </BLOCK>
       <BLOCK>
         <BLOCK_ID>-4219431127125026105</BLOCK_ID>
-        <BLOCK_DELTA_NUM_BYTES>0</BLOCK_DELTA_NUM_BYTES>
-        <BLOCK_DELTA_GEN_STAMP>1</BLOCK_DELTA_GEN_STAMP>
+        <NUM_BYTES>512</NUM_BYTES>
+        <GENERATION_STAMP>1009</GENERATION_STAMP>
       </BLOCK>
       <BLOCK>
         <BLOCK_ID>-1765119074945211374</BLOCK_ID>
-        <BLOCK_DELTA_NUM_BYTES>-512</BLOCK_DELTA_NUM_BYTES>
-        <BLOCK_DELTA_GEN_STAMP>1</BLOCK_DELTA_GEN_STAMP>
+        <NUM_BYTES>0</NUM_BYTES>
+        <GENERATION_STAMP>1010</GENERATION_STAMP>
       </BLOCK>
     </DATA>
-    <CHECKSUM>-1530696539</CHECKSUM>
   </RECORD>
   <RECORD>
-    <OPCODE>9</OPCODE>
+    <OPCODE>OP_CLOSE</OPCODE>
     <DATA>
-      <TRANSACTION_ID>36</TRANSACTION_ID>
+      <TXID>36</TXID>
+      <LENGTH>0</LENGTH>
       <PATH>/file_concat_0</PATH>
       <REPLICATION>1</REPLICATION>
       <MTIME>1330405686013</MTIME>
       <ATIME>1330405685983</ATIME>
       <BLOCKSIZE>512</BLOCKSIZE>
-      <NUMBLOCKS>3</NUMBLOCKS>
+      <CLIENT_NAME></CLIENT_NAME>
+      <CLIENT_MACHINE></CLIENT_MACHINE>
       <BLOCK>
         <BLOCK_ID>6084289468290363112</BLOCK_ID>
-        <BLOCK_NUM_BYTES>512</BLOCK_NUM_BYTES>
-        <BLOCK_GENERATION_STAMP>1008</BLOCK_GENERATION_STAMP>
+        <NUM_BYTES>512</NUM_BYTES>
+        <GENERATION_STAMP>1008</GENERATION_STAMP>
       </BLOCK>
       <BLOCK>
         <BLOCK_ID>-4219431127125026105</BLOCK_ID>
-        <BLOCK_NUM_BYTES>512</BLOCK_NUM_BYTES>
-        <BLOCK_GENERATION_STAMP>1009</BLOCK_GENERATION_STAMP>
+        <NUM_BYTES>512</NUM_BYTES>
+        <GENERATION_STAMP>1009</GENERATION_STAMP>
       </BLOCK>
       <BLOCK>
         <BLOCK_ID>-1765119074945211374</BLOCK_ID>
-        <BLOCK_NUM_BYTES>512</BLOCK_NUM_BYTES>
-        <BLOCK_GENERATION_STAMP>1010</BLOCK_GENERATION_STAMP>
+        <NUM_BYTES>512</NUM_BYTES>
+        <GENERATION_STAMP>1010</GENERATION_STAMP>
       </BLOCK>
       <PERMISSION_STATUS>
         <USERNAME>todd</USERNAME>
         <GROUPNAME>supergroup</GROUPNAME>
-        <FS_PERMISSIONS>420</FS_PERMISSIONS>
+        <MODE>420</MODE>
       </PERMISSION_STATUS>
     </DATA>
-    <CHECKSUM>-2043978220</CHECKSUM>
   </RECORD>
   <RECORD>
-    <OPCODE>10</OPCODE>
+    <OPCODE>OP_SET_GENSTAMP</OPCODE>
     <DATA>
-      <TRANSACTION_ID>37</TRANSACTION_ID>
-      <GENERATION_STAMP>1011</GENERATION_STAMP>
+      <TXID>37</TXID>
+      <GENSTAMP>1011</GENSTAMP>
     </DATA>
-    <CHECKSUM>1010571629</CHECKSUM>
   </RECORD>
   <RECORD>
-    <OPCODE>0</OPCODE>
+    <OPCODE>OP_ADD</OPCODE>
     <DATA>
-      <TRANSACTION_ID>38</TRANSACTION_ID>
+      <TXID>38</TXID>
+      <LENGTH>0</LENGTH>
       <PATH>/file_concat_1</PATH>
       <REPLICATION>1</REPLICATION>
       <MTIME>1330405686017</MTIME>
       <ATIME>1330405686017</ATIME>
       <BLOCKSIZE>512</BLOCKSIZE>
-      <NUMBLOCKS>0</NUMBLOCKS>
+      <CLIENT_NAME>DFSClient_NONMAPREDUCE_-2143415023_1</CLIENT_NAME>
+      <CLIENT_MACHINE>127.0.0.1</CLIENT_MACHINE>
       <PERMISSION_STATUS>
         <USERNAME>todd</USERNAME>
         <GROUPNAME>supergroup</GROUPNAME>
-        <FS_PERMISSIONS>420</FS_PERMISSIONS>
+        <MODE>420</MODE>
       </PERMISSION_STATUS>
-      <CLIENT_NAME>DFSClient_NONMAPREDUCE_-2143415023_1</CLIENT_NAME>
-      <CLIENT_MACHINE>127.0.0.1</CLIENT_MACHINE>
     </DATA>
-    <CHECKSUM>-501297097</CHECKSUM>
   </RECORD>
   <RECORD>
-    <OPCODE>10</OPCODE>
+    <OPCODE>OP_SET_GENSTAMP</OPCODE>
     <DATA>
-      <TRANSACTION_ID>39</TRANSACTION_ID>
-      <GENERATION_STAMP>1012</GENERATION_STAMP>
+      <TXID>39</TXID>
+      <GENSTAMP>1012</GENSTAMP>
     </DATA>
-    <CHECKSUM>-1934711736</CHECKSUM>
   </RECORD>
   <RECORD>
-    <OPCODE>25</OPCODE>
+    <OPCODE>OP_UPDATE_BLOCKS</OPCODE>
     <DATA>
-      <TRANSACTION_ID>40</TRANSACTION_ID>
+      <TXID>40</TXID>
       <PATH>/file_concat_1</PATH>
-      <NUMBLOCKS>1</NUMBLOCKS>
       <BLOCK>
         <BLOCK_ID>-7448471719302683860</BLOCK_ID>
-        <BLOCK_NUM_BYTES>0</BLOCK_NUM_BYTES>
-        <BLOCK_GENERATION_STAMP>1012</BLOCK_GENERATION_STAMP>
+        <NUM_BYTES>0</NUM_BYTES>
+        <GENERATION_STAMP>1012</GENERATION_STAMP>
       </BLOCK>
     </DATA>
-    <CHECKSUM>-1853122907</CHECKSUM>
   </RECORD>
   <RECORD>
-    <OPCODE>10</OPCODE>
+    <OPCODE>OP_SET_GENSTAMP</OPCODE>
     <DATA>
-      <TRANSACTION_ID>41</TRANSACTION_ID>
-      <GENERATION_STAMP>1013</GENERATION_STAMP>
+      <TXID>41</TXID>
+      <GENSTAMP>1013</GENSTAMP>
     </DATA>
-    <CHECKSUM>862670668</CHECKSUM>
   </RECORD>
   <RECORD>
-    <OPCODE>25</OPCODE>
+    <OPCODE>OP_UPDATE_BLOCKS</OPCODE>
     <DATA>
-      <TRANSACTION_ID>42</TRANSACTION_ID>
+      <TXID>42</TXID>
       <PATH>/file_concat_1</PATH>
-      <NUMBLOCKS>2</NUMBLOCKS>
       <BLOCK>
         <BLOCK_ID>-7448471719302683860</BLOCK_ID>
-        <BLOCK_NUM_BYTES>512</BLOCK_NUM_BYTES>
-        <BLOCK_GENERATION_STAMP>1012</BLOCK_GENERATION_STAMP>
+        <NUM_BYTES>512</NUM_BYTES>
+        <GENERATION_STAMP>1012</GENERATION_STAMP>
       </BLOCK>
       <BLOCK>
         <BLOCK_ID>-8051065559769974521</BLOCK_ID>
-        <BLOCK_DELTA_NUM_BYTES>-512</BLOCK_DELTA_NUM_BYTES>
-        <BLOCK_DELTA_GEN_STAMP>1</BLOCK_DELTA_GEN_STAMP>
+        <NUM_BYTES>0</NUM_BYTES>
+        <GENERATION_STAMP>1013</GENERATION_STAMP>
       </BLOCK>
     </DATA>
-    <CHECKSUM>-1169706939</CHECKSUM>
   </RECORD>
   <RECORD>
-    <OPCODE>10</OPCODE>
+    <OPCODE>OP_SET_GENSTAMP</OPCODE>
     <DATA>
-      <TRANSACTION_ID>43</TRANSACTION_ID>
-      <GENERATION_STAMP>1014</GENERATION_STAMP>
+      <TXID>43</TXID>
+      <GENSTAMP>1014</GENSTAMP>
     </DATA>
-    <CHECKSUM>-2070661520</CHECKSUM>
   </RECORD>
   <RECORD>
-    <OPCODE>25</OPCODE>
+    <OPCODE>OP_UPDATE_BLOCKS</OPCODE>
     <DATA>
-      <TRANSACTION_ID>44</TRANSACTION_ID>
+      <TXID>44</TXID>
       <PATH>/file_concat_1</PATH>
-      <NUMBLOCKS>3</NUMBLOCKS>
       <BLOCK>
         <BLOCK_ID>-7448471719302683860</BLOCK_ID>
-        <BLOCK_NUM_BYTES>512</BLOCK_NUM_BYTES>
-        <BLOCK_GENERATION_STAMP>1012</BLOCK_GENERATION_STAMP>
+        <NUM_BYTES>512</NUM_BYTES>
+        <GENERATION_STAMP>1012</GENERATION_STAMP>
       </BLOCK>
       <BLOCK>
         <BLOCK_ID>-8051065559769974521</BLOCK_ID>
-        <BLOCK_DELTA_NUM_BYTES>0</BLOCK_DELTA_NUM_BYTES>
-        <BLOCK_DELTA_GEN_STAMP>1</BLOCK_DELTA_GEN_STAMP>
+        <NUM_BYTES>512</NUM_BYTES>
+        <GENERATION_STAMP>1013</GENERATION_STAMP>
       </BLOCK>
       <BLOCK>
         <BLOCK_ID>3808670437711973616</BLOCK_ID>
-        <BLOCK_DELTA_NUM_BYTES>-512</BLOCK_DELTA_NUM_BYTES>
-        <BLOCK_DELTA_GEN_STAMP>1</BLOCK_DELTA_GEN_STAMP>
+        <NUM_BYTES>0</NUM_BYTES>
+        <GENERATION_STAMP>1014</GENERATION_STAMP>
       </BLOCK>
     </DATA>
-    <CHECKSUM>-1568093815</CHECKSUM>
   </RECORD>
   <RECORD>
-    <OPCODE>9</OPCODE>
+    <OPCODE>OP_CLOSE</OPCODE>
     <DATA>
-      <TRANSACTION_ID>45</TRANSACTION_ID>
+      <TXID>45</TXID>
+      <LENGTH>0</LENGTH>
       <PATH>/file_concat_1</PATH>
       <REPLICATION>1</REPLICATION>
       <MTIME>1330405686042</MTIME>
       <ATIME>1330405686017</ATIME>
       <BLOCKSIZE>512</BLOCKSIZE>
-      <NUMBLOCKS>3</NUMBLOCKS>
+      <CLIENT_NAME></CLIENT_NAME>
+      <CLIENT_MACHINE></CLIENT_MACHINE>
       <BLOCK>
         <BLOCK_ID>-7448471719302683860</BLOCK_ID>
-        <BLOCK_NUM_BYTES>512</BLOCK_NUM_BYTES>
-        <BLOCK_GENERATION_STAMP>1012</BLOCK_GENERATION_STAMP>
+        <NUM_BYTES>512</NUM_BYTES>
+        <GENERATION_STAMP>1012</GENERATION_STAMP>
       </BLOCK>
       <BLOCK>
         <BLOCK_ID>-8051065559769974521</BLOCK_ID>
-        <BLOCK_NUM_BYTES>512</BLOCK_NUM_BYTES>
-        <BLOCK_GENERATION_STAMP>1013</BLOCK_GENERATION_STAMP>
+        <NUM_BYTES>512</NUM_BYTES>
+        <GENERATION_STAMP>1013</GENERATION_STAMP>
       </BLOCK>
       <BLOCK>
         <BLOCK_ID>3808670437711973616</BLOCK_ID>
-        <BLOCK_NUM_BYTES>512</BLOCK_NUM_BYTES>
-        <BLOCK_GENERATION_STAMP>1014</BLOCK_GENERATION_STAMP>
+        <NUM_BYTES>512</NUM_BYTES>
+        <GENERATION_STAMP>1014</GENERATION_STAMP>
       </BLOCK>
       <PERMISSION_STATUS>
         <USERNAME>todd</USERNAME>
         <GROUPNAME>supergroup</GROUPNAME>
-        <FS_PERMISSIONS>420</FS_PERMISSIONS>
+        <MODE>420</MODE>
       </PERMISSION_STATUS>
     </DATA>
-    <CHECKSUM>-1640101896</CHECKSUM>
   </RECORD>
   <RECORD>
-    <OPCODE>16</OPCODE>
+    <OPCODE>OP_CONCAT_DELETE</OPCODE>
     <DATA>
-      <TRANSACTION_ID>46</TRANSACTION_ID>
-      <CONCAT_TARGET>/file_concat_target</CONCAT_TARGET>
-      <LENGTH>2</LENGTH>
-      <CONCAT_SOURCE>/file_concat_0</CONCAT_SOURCE>
-      <CONCAT_SOURCE>/file_concat_1</CONCAT_SOURCE>
+      <TXID>46</TXID>
+      <LENGTH>0</LENGTH>
+      <TRG>/file_concat_target</TRG>
       <TIMESTAMP>1330405686046</TIMESTAMP>
+      <SOURCES>
+        <SOURCE1>/file_concat_0</SOURCE1>
+        <SOURCE2>/file_concat_1</SOURCE2>
+      </SOURCES>
     </DATA>
-    <CHECKSUM>2122891157</CHECKSUM>
   </RECORD>
   <RECORD>
-    <OPCODE>17</OPCODE>
+    <OPCODE>OP_SYMLINK</OPCODE>
     <DATA>
-      <TRANSACTION_ID>47</TRANSACTION_ID>
-      <SOURCE>/file_symlink</SOURCE>
-      <DESTINATION>/file_concat_target</DESTINATION>
+      <TXID>47</TXID>
+      <LENGTH>0</LENGTH>
+      <PATH>/file_symlink</PATH>
+      <VALUE>/file_concat_target</VALUE>
       <MTIME>1330405686051</MTIME>
       <ATIME>1330405686051</ATIME>
       <PERMISSION_STATUS>
         <USERNAME>todd</USERNAME>
         <GROUPNAME>supergroup</GROUPNAME>
-        <FS_PERMISSIONS>511</FS_PERMISSIONS>
+        <MODE>511</MODE>
       </PERMISSION_STATUS>
     </DATA>
-    <CHECKSUM>-585385283</CHECKSUM>
   </RECORD>
   <RECORD>
-    <OPCODE>18</OPCODE>
+    <OPCODE>OP_GET_DELEGATION_TOKEN</OPCODE>
     <DATA>
-      <TRANSACTION_ID>48</TRANSACTION_ID>
-      <T_VERSION>0</T_VERSION>
-      <T_OWNER>todd</T_OWNER>
-      <T_RENEWER>JobTracker</T_RENEWER>
-      <T_REAL_USER/>
-      <T_ISSUE_DATE>1330405686056</T_ISSUE_DATE>
-      <T_MAX_DATE>1331010486056</T_MAX_DATE>
-      <T_SEQUENCE_NUMBER>1</T_SEQUENCE_NUMBER>
-      <T_MASTER_KEY_ID>2</T_MASTER_KEY_ID>
-      <T_EXPIRY_TIME>1330492086056</T_EXPIRY_TIME>
+      <TXID>48</TXID>
+      <DELEGATION_TOKEN_IDENTIFIER>
+        <KIND>HDFS_DELEGATION_TOKEN</KIND>
+        <SEQUENCE_NUMBER>1</SEQUENCE_NUMBER>
+        <OWNER>todd</OWNER>
+        <RENEWER>JobTracker</RENEWER>
+        <REALUSER></REALUSER>
+        <ISSUE_DATE>1330405686056</ISSUE_DATE>
+        <MAX_DATE>1331010486056</MAX_DATE>
+        <MASTER_KEY_ID>2</MASTER_KEY_ID>
+      </DELEGATION_TOKEN_IDENTIFIER>
+      <EXPIRY_TIME>1330492086056</EXPIRY_TIME>
     </DATA>
-    <CHECKSUM>791321007</CHECKSUM>
   </RECORD>
   <RECORD>
-    <OPCODE>19</OPCODE>
+    <OPCODE>OP_RENEW_DELEGATION_TOKEN</OPCODE>
     <DATA>
-      <TRANSACTION_ID>49</TRANSACTION_ID>
-      <T_VERSION>0</T_VERSION>
-      <T_OWNER>todd</T_OWNER>
-      <T_RENEWER>JobTracker</T_RENEWER>
-      <T_REAL_USER/>
-      <T_ISSUE_DATE>1330405686056</T_ISSUE_DATE>
-      <T_MAX_DATE>1331010486056</T_MAX_DATE>
-      <T_SEQUENCE_NUMBER>1</T_SEQUENCE_NUMBER>
-      <T_MASTER_KEY_ID>2</T_MASTER_KEY_ID>
-      <T_EXPIRY_TIME>1330492086075</T_EXPIRY_TIME>
+      <TXID>49</TXID>
+      <DELEGATION_TOKEN_IDENTIFIER>
+        <KIND>HDFS_DELEGATION_TOKEN</KIND>
+        <SEQUENCE_NUMBER>1</SEQUENCE_NUMBER>
+        <OWNER>todd</OWNER>
+        <RENEWER>JobTracker</RENEWER>
+        <REALUSER></REALUSER>
+        <ISSUE_DATE>1330405686056</ISSUE_DATE>
+        <MAX_DATE>1331010486056</MAX_DATE>
+        <MASTER_KEY_ID>2</MASTER_KEY_ID>
+      </DELEGATION_TOKEN_IDENTIFIER>
+      <EXPIRY_TIME>1330492086075</EXPIRY_TIME>
     </DATA>
-    <CHECKSUM>649714969</CHECKSUM>
   </RECORD>
   <RECORD>
-    <OPCODE>20</OPCODE>
+    <OPCODE>OP_CANCEL_DELEGATION_TOKEN</OPCODE>
     <DATA>
-      <TRANSACTION_ID>50</TRANSACTION_ID>
-      <T_VERSION>0</T_VERSION>
-      <T_OWNER>todd</T_OWNER>
-      <T_RENEWER>JobTracker</T_RENEWER>
-      <T_REAL_USER/>
-      <T_ISSUE_DATE>1330405686056</T_ISSUE_DATE>
-      <T_MAX_DATE>1331010486056</T_MAX_DATE>
-      <T_SEQUENCE_NUMBER>1</T_SEQUENCE_NUMBER>
-      <T_MASTER_KEY_ID>2</T_MASTER_KEY_ID>
+      <TXID>50</TXID>
+      <DELEGATION_TOKEN_IDENTIFIER>
+        <KIND>HDFS_DELEGATION_TOKEN</KIND>
+        <SEQUENCE_NUMBER>1</SEQUENCE_NUMBER>
+        <OWNER>todd</OWNER>
+        <RENEWER>JobTracker</RENEWER>
+        <REALUSER></REALUSER>
+        <ISSUE_DATE>1330405686056</ISSUE_DATE>
+        <MAX_DATE>1331010486056</MAX_DATE>
+        <MASTER_KEY_ID>2</MASTER_KEY_ID>
+      </DELEGATION_TOKEN_IDENTIFIER>
     </DATA>
-    <CHECKSUM>1190872628</CHECKSUM>
   </RECORD>
   <RECORD>
-    <OPCODE>10</OPCODE>
+    <OPCODE>OP_SET_GENSTAMP</OPCODE>
     <DATA>
-      <TRANSACTION_ID>51</TRANSACTION_ID>
-      <GENERATION_STAMP>1015</GENERATION_STAMP>
+      <TXID>51</TXID>
+      <GENSTAMP>1015</GENSTAMP>
     </DATA>
-    <CHECKSUM>-460593521</CHECKSUM>
   </RECORD>
   <RECORD>
-    <OPCODE>0</OPCODE>
+    <OPCODE>OP_ADD</OPCODE>
     <DATA>
-      <TRANSACTION_ID>52</TRANSACTION_ID>
+      <TXID>52</TXID>
+      <LENGTH>0</LENGTH>
       <PATH>/hard-lease-recovery-test</PATH>
       <REPLICATION>1</REPLICATION>
       <MTIME>1330405686084</MTIME>
       <ATIME>1330405686084</ATIME>
       <BLOCKSIZE>512</BLOCKSIZE>
-      <NUMBLOCKS>0</NUMBLOCKS>
+      <CLIENT_NAME>DFSClient_NONMAPREDUCE_-2143415023_1</CLIENT_NAME>
+      <CLIENT_MACHINE>127.0.0.1</CLIENT_MACHINE>
       <PERMISSION_STATUS>
         <USERNAME>todd</USERNAME>
         <GROUPNAME>supergroup</GROUPNAME>
-        <FS_PERMISSIONS>420</FS_PERMISSIONS>
+        <MODE>420</MODE>
       </PERMISSION_STATUS>
-      <CLIENT_NAME>DFSClient_NONMAPREDUCE_-2143415023_1</CLIENT_NAME>
-      <CLIENT_MACHINE>127.0.0.1</CLIENT_MACHINE>
     </DATA>
-    <CHECKSUM>2093219037</CHECKSUM>
   </RECORD>
   <RECORD>
-    <OPCODE>10</OPCODE>
+    <OPCODE>OP_SET_GENSTAMP</OPCODE>
     <DATA>
-      <TRANSACTION_ID>53</TRANSACTION_ID>
-      <GENERATION_STAMP>1016</GENERATION_STAMP>
+      <TXID>53</TXID>
+      <GENSTAMP>1016</GENSTAMP>
     </DATA>
-    <CHECKSUM>120488596</CHECKSUM>
   </RECORD>
   <RECORD>
-    <OPCODE>25</OPCODE>
+    <OPCODE>OP_UPDATE_BLOCKS</OPCODE>
     <DATA>
-      <TRANSACTION_ID>54</TRANSACTION_ID>
+      <TXID>54</TXID>
       <PATH>/hard-lease-recovery-test</PATH>
-      <NUMBLOCKS>1</NUMBLOCKS>
       <BLOCK>
         <BLOCK_ID>-357061736603024522</BLOCK_ID>
-        <BLOCK_NUM_BYTES>0</BLOCK_NUM_BYTES>
-        <BLOCK_GENERATION_STAMP>1016</BLOCK_GENERATION_STAMP>
+        <NUM_BYTES>0</NUM_BYTES>
+        <GENERATION_STAMP>1016</GENERATION_STAMP>
       </BLOCK>
     </DATA>
-    <CHECKSUM>2098840974</CHECKSUM>
   </RECORD>
   <RECORD>
-    <OPCODE>25</OPCODE>
+    <OPCODE>OP_UPDATE_BLOCKS</OPCODE>
     <DATA>
-      <TRANSACTION_ID>55</TRANSACTION_ID>
+      <TXID>55</TXID>
       <PATH>/hard-lease-recovery-test</PATH>
-      <NUMBLOCKS>1</NUMBLOCKS>
       <BLOCK>
         <BLOCK_ID>-357061736603024522</BLOCK_ID>
-        <BLOCK_NUM_BYTES>0</BLOCK_NUM_BYTES>
-        <BLOCK_GENERATION_STAMP>1016</BLOCK_GENERATION_STAMP>
+        <NUM_BYTES>0</NUM_BYTES>
+        <GENERATION_STAMP>1016</GENERATION_STAMP>
       </BLOCK>
     </DATA>
-    <CHECKSUM>-1794222801</CHECKSUM>
   </RECORD>
   <RECORD>
-    <OPCODE>10</OPCODE>
+    <OPCODE>OP_SET_GENSTAMP</OPCODE>
     <DATA>
-      <TRANSACTION_ID>56</TRANSACTION_ID>
-      <GENERATION_STAMP>1017</GENERATION_STAMP>
+      <TXID>56</TXID>
+      <GENSTAMP>1017</GENSTAMP>
     </DATA>
-    <CHECKSUM>-2123999915</CHECKSUM>
   </RECORD>
   <RECORD>
-    <OPCODE>22</OPCODE>
+    <OPCODE>OP_REASSIGN_LEASE</OPCODE>
     <DATA>
-      <TRANSACTION_ID>57</TRANSACTION_ID>
-      <CLIENT_NAME>DFSClient_NONMAPREDUCE_-2143415023_1</CLIENT_NAME>
+      <TXID>57</TXID>
+      <LEASEHOLDER>DFSClient_NONMAPREDUCE_-2143415023_1</LEASEHOLDER>
       <PATH>/hard-lease-recovery-test</PATH>
-      <CLIENT_NAME>HDFS_NameNode</CLIENT_NAME>
+      <NEWHOLDER>HDFS_NameNode</NEWHOLDER>
     </DATA>
-    <CHECKSUM>-1841690515</CHECKSUM>
   </RECORD>
   <RECORD>
-    <OPCODE>9</OPCODE>
+    <OPCODE>OP_CLOSE</OPCODE>
     <DATA>
-      <TRANSACTION_ID>58</TRANSACTION_ID>
+      <TXID>58</TXID>
+      <LENGTH>0</LENGTH>
       <PATH>/hard-lease-recovery-test</PATH>
       <REPLICATION>1</REPLICATION>
       <MTIME>1330405688726</MTIME>
       <ATIME>1330405686084</ATIME>
       <BLOCKSIZE>512</BLOCKSIZE>
-      <NUMBLOCKS>1</NUMBLOCKS>
+      <CLIENT_NAME></CLIENT_NAME>
+      <CLIENT_MACHINE></CLIENT_MACHINE>
       <BLOCK>
         <BLOCK_ID>-357061736603024522</BLOCK_ID>
-        <BLOCK_NUM_BYTES>11</BLOCK_NUM_BYTES>
-        <BLOCK_GENERATION_STAMP>1017</BLOCK_GENERATION_STAMP>
+        <NUM_BYTES>11</NUM_BYTES>
+        <GENERATION_STAMP>1017</GENERATION_STAMP>
       </BLOCK>
       <PERMISSION_STATUS>
         <USERNAME>todd</USERNAME>
         <GROUPNAME>supergroup</GROUPNAME>
-        <FS_PERMISSIONS>420</FS_PERMISSIONS>
+        <MODE>420</MODE>
       </PERMISSION_STATUS>
     </DATA>
-    <CHECKSUM>-218102037</CHECKSUM>
-  </RECORD>
-  <RECORD>
-    <OPCODE>23</OPCODE>
-    <DATA>
-      <TRANSACTION_ID>59</TRANSACTION_ID>
-    </DATA>
-    <CHECKSUM>-1616653774</CHECKSUM>
   </RECORD>
   <RECORD>
-    <OPCODE>-1</OPCODE>
+    <OPCODE>OP_END_LOG_SEGMENT</OPCODE>
     <DATA>
+      <TXID>59</TXID>
     </DATA>
   </RECORD>
 </EDITS>