HDFS-3023. Optimize entries in edits log for persistBlocks call. Contributed by Todd Lipcon.

git-svn-id: https://svn.apache.org/repos/asf/hadoop/common/branches/HDFS-1623@1295356 13f79535-47bb-0310-9956-ffa450edef68
This commit is contained in:
Todd Lipcon 2012-03-01 00:37:09 +00:00
parent 1d3a0c9557
commit 30cffeb388
12 changed files with 698 additions and 207 deletions

View File

@ -244,3 +244,5 @@ HDFS-2920. fix remaining TODO items. (atm and todd)
HDFS-3027. Implement a simple NN health check. (atm)
HDFS-2979. Balancer should use logical uri for creating failover proxy with HA enabled. (atm)
HDFS-3023. Optimize entries in edits log for persistBlocks call. (todd)

View File

@ -91,7 +91,10 @@ public class LayoutVersion {
STORED_TXIDS(-37, "Transaction IDs are stored in edits log and image files"),
TXID_BASED_LAYOUT(-38, "File names in NN Storage are based on transaction IDs"),
EDITLOG_OP_OPTIMIZATION(-39,
"Use LongWritable and ShortWritable directly instead of ArrayWritable of UTF8");
"Use LongWritable and ShortWritable directly instead of ArrayWritable of UTF8"),
OPTIMIZE_PERSIST_BLOCKS(-40,
"Serialize block lists with delta-encoded variable length ints, " +
"add OP_UPDATE_BLOCKS");
final int lv;
final int ancestorLV;

View File

@ -369,7 +369,7 @@ public class FSDirectory implements Closeable {
writeLock();
try {
fsImage.getEditLog().logOpenFile(path, file);
fsImage.getEditLog().logUpdateBlocks(path, file);
if(NameNode.stateChangeLog.isDebugEnabled()) {
NameNode.stateChangeLog.debug("DIR* FSDirectory.persistBlocks: "
+path+" with "+ file.getBlocks().length

View File

@ -626,6 +626,13 @@ public class FSEditLog {
logEdit(op);
}
public void logUpdateBlocks(String path, INodeFileUnderConstruction file) {
UpdateBlocksOp op = UpdateBlocksOp.getInstance()
.setPath(path)
.setBlocks(file.getBlocks());
logEdit(op);
}
/**
* Add create directory record to edit log
*/

View File

@ -37,6 +37,7 @@ import org.apache.hadoop.hdfs.server.blockmanagement.BlockInfo;
import org.apache.hadoop.hdfs.server.blockmanagement.BlockInfoUnderConstruction;
import org.apache.hadoop.hdfs.server.common.Storage;
import org.apache.hadoop.hdfs.server.namenode.FSEditLogOp.AddCloseOp;
import org.apache.hadoop.hdfs.server.namenode.FSEditLogOp.BlockListUpdatingOp;
import org.apache.hadoop.hdfs.server.namenode.FSEditLogOp.CancelDelegationTokenOp;
import org.apache.hadoop.hdfs.server.namenode.FSEditLogOp.ClearNSQuotaOp;
import org.apache.hadoop.hdfs.server.namenode.FSEditLogOp.ConcatDeleteOp;
@ -55,6 +56,7 @@ import org.apache.hadoop.hdfs.server.namenode.FSEditLogOp.SetQuotaOp;
import org.apache.hadoop.hdfs.server.namenode.FSEditLogOp.SetReplicationOp;
import org.apache.hadoop.hdfs.server.namenode.FSEditLogOp.SymlinkOp;
import org.apache.hadoop.hdfs.server.namenode.FSEditLogOp.TimesOp;
import org.apache.hadoop.hdfs.server.namenode.FSEditLogOp.UpdateBlocksOp;
import org.apache.hadoop.hdfs.server.namenode.FSEditLogOp.UpdateMasterKeyOp;
import org.apache.hadoop.hdfs.server.namenode.LeaseManager.Lease;
import org.apache.hadoop.hdfs.util.Holder;
@ -242,6 +244,10 @@ public class FSEditLogLoader {
// Fall-through for case 2.
// Regardless of whether it's a new file or an updated file,
// update the block list.
// Update the salient file attributes.
newFile.setAccessTime(addCloseOp.atime);
newFile.setModificationTimeForce(addCloseOp.mtime);
updateBlocks(fsDir, addCloseOp, newFile);
break;
}
@ -283,6 +289,24 @@ public class FSEditLogLoader {
}
break;
}
case OP_UPDATE_BLOCKS: {
UpdateBlocksOp updateOp = (UpdateBlocksOp)op;
if (FSNamesystem.LOG.isDebugEnabled()) {
FSNamesystem.LOG.debug(op.opCode + ": " + updateOp.path +
" numblocks : " + updateOp.blocks.length);
}
INodeFile oldFile = getINodeFile(fsDir, updateOp.path);
if (oldFile == null) {
throw new IOException(
"Operation trying to update blocks in non-existent file " +
updateOp.path);
}
// Update in-memory data structures
updateBlocks(fsDir, updateOp, oldFile);
break;
}
case OP_SET_REPLICATION: {
SetReplicationOp setReplicationOp = (SetReplicationOp)op;
short replication = fsNamesys.getBlockManager().adjustReplication(
@ -472,32 +496,29 @@ public class FSEditLogLoader {
* Update in-memory data structures with new block information.
* @throws IOException
*/
private void updateBlocks(FSDirectory fsDir, AddCloseOp addCloseOp,
private void updateBlocks(FSDirectory fsDir, BlockListUpdatingOp op,
INodeFile file) throws IOException {
// Update the salient file attributes.
file.setAccessTime(addCloseOp.atime);
file.setModificationTimeForce(addCloseOp.mtime);
// Update its block list
BlockInfo[] oldBlocks = file.getBlocks();
Block[] newBlocks = op.getBlocks();
String path = op.getPath();
// Are we only updating the last block's gen stamp.
boolean isGenStampUpdate = oldBlocks.length == addCloseOp.blocks.length;
boolean isGenStampUpdate = oldBlocks.length == newBlocks.length;
// First, update blocks in common
for (int i = 0; i < oldBlocks.length && i < addCloseOp.blocks.length; i++) {
for (int i = 0; i < oldBlocks.length && i < newBlocks.length; i++) {
BlockInfo oldBlock = oldBlocks[i];
Block newBlock = addCloseOp.blocks[i];
Block newBlock = newBlocks[i];
boolean isLastBlock = i == addCloseOp.blocks.length - 1;
boolean isLastBlock = i == newBlocks.length - 1;
if (oldBlock.getBlockId() != newBlock.getBlockId() ||
(oldBlock.getGenerationStamp() != newBlock.getGenerationStamp() &&
!(isGenStampUpdate && isLastBlock))) {
throw new IOException("Mismatched block IDs or generation stamps, " +
"attempting to replace block " + oldBlock + " with " + newBlock +
" as block # " + i + "/" + addCloseOp.blocks.length + " of " +
addCloseOp.path);
" as block # " + i + "/" + newBlocks.length + " of " +
path);
}
oldBlock.setNumBytes(newBlock.getNumBytes());
@ -506,7 +527,7 @@ public class FSEditLogLoader {
oldBlock.setGenerationStamp(newBlock.getGenerationStamp());
if (oldBlock instanceof BlockInfoUnderConstruction &&
(!isLastBlock || addCloseOp.opCode == FSEditLogOpCodes.OP_CLOSE)) {
(!isLastBlock || op.shouldCompleteLastBlock())) {
changeMade = true;
fsNamesys.getBlockManager().forceCompleteBlock(
(INodeFileUnderConstruction)file,
@ -520,24 +541,27 @@ public class FSEditLogLoader {
}
}
if (addCloseOp.blocks.length < oldBlocks.length) {
if (newBlocks.length < oldBlocks.length) {
// We're removing a block from the file, e.g. abandonBlock(...)
if (!file.isUnderConstruction()) {
throw new IOException("Trying to remove a block from file " +
addCloseOp.path + " which is not under construction.");
path + " which is not under construction.");
}
if (addCloseOp.blocks.length != oldBlocks.length - 1) {
if (newBlocks.length != oldBlocks.length - 1) {
throw new IOException("Trying to remove more than one block from file "
+ addCloseOp.path);
+ path);
}
fsDir.unprotectedRemoveBlock(addCloseOp.path,
fsDir.unprotectedRemoveBlock(path,
(INodeFileUnderConstruction)file, oldBlocks[oldBlocks.length - 1]);
} else if (addCloseOp.blocks.length > oldBlocks.length) {
} else if (newBlocks.length > oldBlocks.length) {
// We're adding blocks
for (int i = oldBlocks.length; i < addCloseOp.blocks.length; i++) {
Block newBlock = addCloseOp.blocks[i];
for (int i = oldBlocks.length; i < newBlocks.length; i++) {
Block newBlock = newBlocks[i];
BlockInfo newBI;
if (addCloseOp.opCode == FSEditLogOpCodes.OP_ADD){
if (!op.shouldCompleteLastBlock()) {
// TODO: shouldn't this only be true for the last block?
// what about an old-version fsync() where fsync isn't called
// until several blocks in?
newBI = new BlockInfoUnderConstruction(
newBlock, file.getReplication());
} else {

View File

@ -101,6 +101,7 @@ public abstract class FSEditLogOp {
new LogSegmentOp(OP_START_LOG_SEGMENT));
instances.put(OP_END_LOG_SEGMENT,
new LogSegmentOp(OP_END_LOG_SEGMENT));
instances.put(OP_UPDATE_BLOCKS, new UpdateBlocksOp());
return instances;
}
};
@ -128,8 +129,14 @@ public abstract class FSEditLogOp {
abstract void writeFields(DataOutputStream out)
throws IOException;
static interface BlockListUpdatingOp {
Block[] getBlocks();
String getPath();
boolean shouldCompleteLastBlock();
}
@SuppressWarnings("unchecked")
static abstract class AddCloseOp extends FSEditLogOp {
static abstract class AddCloseOp extends FSEditLogOp implements BlockListUpdatingOp {
int length;
String path;
short replication;
@ -152,6 +159,10 @@ public abstract class FSEditLogOp {
return (T)this;
}
public String getPath() {
return path;
}
<T extends AddCloseOp> T setReplication(short replication) {
this.replication = replication;
return (T)this;
@ -177,6 +188,10 @@ public abstract class FSEditLogOp {
return (T)this;
}
public Block[] getBlocks() {
return blocks;
}
<T extends AddCloseOp> T setPermissionStatus(PermissionStatus permissions) {
this.permissions = permissions;
return (T)this;
@ -347,6 +362,10 @@ public abstract class FSEditLogOp {
return (AddOp)opInstances.get().get(OP_ADD);
}
public boolean shouldCompleteLastBlock() {
return false;
}
@Override
public String toString() {
StringBuilder builder = new StringBuilder();
@ -365,6 +384,10 @@ public abstract class FSEditLogOp {
return (CloseOp)opInstances.get().get(OP_CLOSE);
}
public boolean shouldCompleteLastBlock() {
return true;
}
@Override
public String toString() {
StringBuilder builder = new StringBuilder();
@ -374,6 +397,68 @@ public abstract class FSEditLogOp {
}
}
static class UpdateBlocksOp extends FSEditLogOp implements BlockListUpdatingOp {
String path;
Block[] blocks;
private UpdateBlocksOp() {
super(OP_UPDATE_BLOCKS);
}
static UpdateBlocksOp getInstance() {
return (UpdateBlocksOp)opInstances.get()
.get(OP_UPDATE_BLOCKS);
}
UpdateBlocksOp setPath(String path) {
this.path = path;
return this;
}
public String getPath() {
return path;
}
UpdateBlocksOp setBlocks(Block[] blocks) {
this.blocks = blocks;
return this;
}
public Block[] getBlocks() {
return blocks;
}
@Override
void writeFields(DataOutputStream out) throws IOException {
FSImageSerialization.writeString(path, out);
FSImageSerialization.writeCompactBlockArray(blocks, out);
}
@Override
void readFields(DataInputStream in, int logVersion) throws IOException {
path = FSImageSerialization.readString(in);
this.blocks = FSImageSerialization.readCompactBlockArray(
in, logVersion);
}
@Override
public boolean shouldCompleteLastBlock() {
return false;
}
@Override
public String toString() {
StringBuilder sb = new StringBuilder();
sb.append("UpdateBlocksOp [path=")
.append(path)
.append(", blocks=")
.append(Arrays.toString(blocks))
.append("]");
return sb.toString();
}
}
static class SetReplicationOp extends FSEditLogOp {
String path;
short replication;

View File

@ -55,7 +55,8 @@ public enum FSEditLogOpCodes {
OP_UPDATE_MASTER_KEY ((byte) 21),
OP_REASSIGN_LEASE ((byte) 22),
OP_END_LOG_SEGMENT ((byte) 23),
OP_START_LOG_SEGMENT ((byte) 24);
OP_START_LOG_SEGMENT ((byte) 24),
OP_UPDATE_BLOCKS ((byte) 25);
private byte opCode;

View File

@ -40,6 +40,7 @@ import org.apache.hadoop.io.LongWritable;
import org.apache.hadoop.io.ShortWritable;
import org.apache.hadoop.io.Text;
import org.apache.hadoop.io.Writable;
import org.apache.hadoop.io.WritableUtils;
/**
* Static utility functions for serializing various pieces of data in the correct
@ -277,6 +278,49 @@ public class FSImageSerialization {
ustr.getLength(), (byte) Path.SEPARATOR_CHAR);
}
/**
* Write an array of blocks as compactly as possible. This uses
* delta-encoding for the generation stamp and size, following
* the principle that genstamp increases relatively slowly,
* and size is equal for all but the last block of a file.
*/
public static void writeCompactBlockArray(
Block[] blocks, DataOutputStream out) throws IOException {
WritableUtils.writeVInt(out, blocks.length);
Block prev = null;
for (Block b : blocks) {
long szDelta = b.getNumBytes() -
(prev != null ? prev.getNumBytes() : 0);
long gsDelta = b.getGenerationStamp() -
(prev != null ? prev.getGenerationStamp() : 0);
out.writeLong(b.getBlockId()); // blockid is random
WritableUtils.writeVLong(out, szDelta);
WritableUtils.writeVLong(out, gsDelta);
prev = b;
}
}
public static Block[] readCompactBlockArray(
DataInputStream in, int logVersion) throws IOException {
int num = WritableUtils.readVInt(in);
if (num < 0) {
throw new IOException("Invalid block array length: " + num);
}
Block prev = null;
Block[] ret = new Block[num];
for (int i = 0; i < num; i++) {
long id = in.readLong();
long sz = WritableUtils.readVLong(in) +
((prev != null) ? prev.getNumBytes() : 0);
long gs = WritableUtils.readVLong(in) +
((prev != null) ? prev.getGenerationStamp() : 0);
ret[i] = new Block(id, sz, gs);
prev = ret[i];
}
return ret;
}
/**
* DatanodeImage is used to store persistent information
* about datanodes into the fsImage.

View File

@ -48,6 +48,8 @@ public enum EditsElement {
BLOCK_ID,
BLOCK_NUM_BYTES,
BLOCK_GENERATION_STAMP,
BLOCK_DELTA_NUM_BYTES, // delta-encoded relative to previous block
BLOCK_DELTA_GEN_STAMP, // delta-encoded relative to previous block
PERMISSION_STATUS,
FS_PERMISSIONS,
CLIENT_NAME,

View File

@ -41,7 +41,7 @@ import static org.apache.hadoop.hdfs.tools.offlineEditsViewer.Tokenizer.VIntToke
class EditsLoaderCurrent implements EditsLoader {
private static int[] supportedVersions = { -18, -19, -20, -21, -22, -23, -24,
-25, -26, -27, -28, -30, -31, -32, -33, -34, -35, -36, -37, -38, -39};
-25, -26, -27, -28, -30, -31, -32, -33, -34, -35, -36, -37, -38, -39, -40};
private EditsVisitor v;
private int editsVersion = 0;
@ -150,6 +150,25 @@ class EditsLoaderCurrent implements EditsLoader {
}
}
private void visit_OP_UPDATE_BLOCKS() throws IOException {
visitTxId();
v.visitStringUTF8(EditsElement.PATH);
VIntToken numBlocksToken = v.visitVInt(EditsElement.NUMBLOCKS);
for (int i = 0; i < numBlocksToken.value; i++) {
v.visitEnclosingElement(EditsElement.BLOCK);
v.visitLong(EditsElement.BLOCK_ID);
if (i == 0) {
v.visitVLong(EditsElement.BLOCK_NUM_BYTES);
v.visitVLong(EditsElement.BLOCK_GENERATION_STAMP);
} else {
v.visitVLong(EditsElement.BLOCK_DELTA_NUM_BYTES);
v.visitVLong(EditsElement.BLOCK_DELTA_GEN_STAMP);
}
v.leaveEnclosingElement();
}
}
/**
* Visit OP_RENAME_OLD
*/
@ -521,6 +540,9 @@ class EditsLoaderCurrent implements EditsLoader {
case OP_START_LOG_SEGMENT: // 24
visit_OP_BEGIN_LOG_SEGMENT();
break;
case OP_UPDATE_BLOCKS: // 25
visit_OP_UPDATE_BLOCKS();
break;
default:
{
throw new IOException("Unknown op code " + editsOpCode);

View File

@ -1,34 +1,34 @@
<?xml version="1.0"?>
<EDITS>
<EDITS_VERSION>-38</EDITS_VERSION>
<EDITS_VERSION>-40</EDITS_VERSION>
<RECORD>
<OPCODE>24</OPCODE>
<DATA>
<TRANSACTION_ID>1</TRANSACTION_ID>
</DATA>
<CHECKSUM>1504643968</CHECKSUM>
<CHECKSUM>-2045328303</CHECKSUM>
</RECORD>
<RECORD>
<OPCODE>21</OPCODE>
<DATA>
<TRANSACTION_ID>2</TRANSACTION_ID>
<KEY_ID>1</KEY_ID>
<KEY_EXPIRY_DATE>1304751257518</KEY_EXPIRY_DATE>
<KEY_EXPIRY_DATE>1331096884634</KEY_EXPIRY_DATE>
<KEY_LENGTH>3</KEY_LENGTH>
<KEY_BLOB>2FhO</KEY_BLOB>
<KEY_BLOB>o0v1</KEY_BLOB>
</DATA>
<CHECKSUM>-174778556</CHECKSUM>
<CHECKSUM>-1521490291</CHECKSUM>
</RECORD>
<RECORD>
<OPCODE>21</OPCODE>
<DATA>
<TRANSACTION_ID>3</TRANSACTION_ID>
<KEY_ID>2</KEY_ID>
<KEY_EXPIRY_DATE>1304751257521</KEY_EXPIRY_DATE>
<KEY_EXPIRY_DATE>1331096884637</KEY_EXPIRY_DATE>
<KEY_LENGTH>3</KEY_LENGTH>
<KEY_BLOB>77-r</KEY_BLOB>
<KEY_BLOB>3WMF</KEY_BLOB>
</DATA>
<CHECKSUM>1565957291</CHECKSUM>
<CHECKSUM>65546244</CHECKSUM>
</RECORD>
<RECORD>
<OPCODE>10</OPCODE>
@ -42,11 +42,10 @@
<OPCODE>0</OPCODE>
<DATA>
<TRANSACTION_ID>5</TRANSACTION_ID>
<LENGTH>5</LENGTH>
<PATH>/file_create</PATH>
<REPLICATION>1</REPLICATION>
<MTIME>1304060057562</MTIME>
<ATIME>1304060057562</ATIME>
<MTIME>1330405685834</MTIME>
<ATIME>1330405685834</ATIME>
<BLOCKSIZE>512</BLOCKSIZE>
<NUMBLOCKS>0</NUMBLOCKS>
<PERMISSION_STATUS>
@ -54,20 +53,19 @@
<GROUPNAME>supergroup</GROUPNAME>
<FS_PERMISSIONS>420</FS_PERMISSIONS>
</PERMISSION_STATUS>
<CLIENT_NAME>DFSClient_NONMAPREDUCE_-66857152_1</CLIENT_NAME>
<CLIENT_NAME>DFSClient_NONMAPREDUCE_-2143415023_1</CLIENT_NAME>
<CLIENT_MACHINE>127.0.0.1</CLIENT_MACHINE>
</DATA>
<CHECKSUM>-1854451489</CHECKSUM>
<CHECKSUM>179250704</CHECKSUM>
</RECORD>
<RECORD>
<OPCODE>9</OPCODE>
<DATA>
<TRANSACTION_ID>6</TRANSACTION_ID>
<LENGTH>5</LENGTH>
<PATH>/file_create</PATH>
<REPLICATION>1</REPLICATION>
<MTIME>1304060057572</MTIME>
<ATIME>1304060057562</ATIME>
<MTIME>1330405685848</MTIME>
<ATIME>1330405685834</ATIME>
<BLOCKSIZE>512</BLOCKSIZE>
<NUMBLOCKS>0</NUMBLOCKS>
<PERMISSION_STATUS>
@ -76,44 +74,41 @@
<FS_PERMISSIONS>420</FS_PERMISSIONS>
</PERMISSION_STATUS>
</DATA>
<CHECKSUM>617592855</CHECKSUM>
<CHECKSUM>-584136658</CHECKSUM>
</RECORD>
<RECORD>
<OPCODE>1</OPCODE>
<DATA>
<TRANSACTION_ID>7</TRANSACTION_ID>
<LENGTH>3</LENGTH>
<SOURCE>/file_create</SOURCE>
<DESTINATION>/file_moved</DESTINATION>
<TIMESTAMP>1304060057575</TIMESTAMP>
<TIMESTAMP>1330405685852</TIMESTAMP>
</DATA>
<CHECKSUM>367100554</CHECKSUM>
<CHECKSUM>-1983534581</CHECKSUM>
</RECORD>
<RECORD>
<OPCODE>2</OPCODE>
<DATA>
<TRANSACTION_ID>8</TRANSACTION_ID>
<LENGTH>2</LENGTH>
<PATH>/file_moved</PATH>
<TIMESTAMP>1304060057577</TIMESTAMP>
<TIMESTAMP>1330405685857</TIMESTAMP>
</DATA>
<CHECKSUM>1048346698</CHECKSUM>
<CHECKSUM>-97648053</CHECKSUM>
</RECORD>
<RECORD>
<OPCODE>3</OPCODE>
<DATA>
<TRANSACTION_ID>9</TRANSACTION_ID>
<LENGTH>3</LENGTH>
<PATH>/directory_mkdir</PATH>
<TIMESTAMP>1304060057581</TIMESTAMP>
<ATIME>0</ATIME>
<TIMESTAMP>1330405685861</TIMESTAMP>
<ATIME>1330405685861</ATIME>
<PERMISSION_STATUS>
<USERNAME>todd</USERNAME>
<GROUPNAME>supergroup</GROUPNAME>
<FS_PERMISSIONS>493</FS_PERMISSIONS>
</PERMISSION_STATUS>
</DATA>
<CHECKSUM>1207240248</CHECKSUM>
<CHECKSUM>-146811985</CHECKSUM>
</RECORD>
<RECORD>
<OPCODE>10</OPCODE>
@ -127,11 +122,10 @@
<OPCODE>0</OPCODE>
<DATA>
<TRANSACTION_ID>11</TRANSACTION_ID>
<LENGTH>5</LENGTH>
<PATH>/file_create</PATH>
<REPLICATION>1</REPLICATION>
<MTIME>1304060057584</MTIME>
<ATIME>1304060057584</ATIME>
<MTIME>1330405685866</MTIME>
<ATIME>1330405685866</ATIME>
<BLOCKSIZE>512</BLOCKSIZE>
<NUMBLOCKS>0</NUMBLOCKS>
<PERMISSION_STATUS>
@ -139,20 +133,19 @@
<GROUPNAME>supergroup</GROUPNAME>
<FS_PERMISSIONS>420</FS_PERMISSIONS>
</PERMISSION_STATUS>
<CLIENT_NAME>DFSClient_NONMAPREDUCE_-66857152_1</CLIENT_NAME>
<CLIENT_NAME>DFSClient_NONMAPREDUCE_-2143415023_1</CLIENT_NAME>
<CLIENT_MACHINE>127.0.0.1</CLIENT_MACHINE>
</DATA>
<CHECKSUM>1796314473</CHECKSUM>
<CHECKSUM>806955943</CHECKSUM>
</RECORD>
<RECORD>
<OPCODE>9</OPCODE>
<DATA>
<TRANSACTION_ID>12</TRANSACTION_ID>
<LENGTH>5</LENGTH>
<PATH>/file_create</PATH>
<REPLICATION>1</REPLICATION>
<MTIME>1304060057588</MTIME>
<ATIME>1304060057584</ATIME>
<MTIME>1330405685868</MTIME>
<ATIME>1330405685866</ATIME>
<BLOCKSIZE>512</BLOCKSIZE>
<NUMBLOCKS>0</NUMBLOCKS>
<PERMISSION_STATUS>
@ -161,7 +154,7 @@
<FS_PERMISSIONS>420</FS_PERMISSIONS>
</PERMISSION_STATUS>
</DATA>
<CHECKSUM>1017626905</CHECKSUM>
<CHECKSUM>641893387</CHECKSUM>
</RECORD>
<RECORD>
<OPCODE>4</OPCODE>
@ -170,7 +163,7 @@
<PATH>/file_create</PATH>
<REPLICATION>1</REPLICATION>
</DATA>
<CHECKSUM>1842610087</CHECKSUM>
<CHECKSUM>24198146</CHECKSUM>
</RECORD>
<RECORD>
<OPCODE>7</OPCODE>
@ -195,12 +188,11 @@
<OPCODE>13</OPCODE>
<DATA>
<TRANSACTION_ID>16</TRANSACTION_ID>
<LENGTH>3</LENGTH>
<PATH>/file_create</PATH>
<MTIME>1285195527000</MTIME>
<ATIME>1285195527000</ATIME>
</DATA>
<CHECKSUM>1428793678</CHECKSUM>
<CHECKSUM>1853168961</CHECKSUM>
</RECORD>
<RECORD>
<OPCODE>14</OPCODE>
@ -216,13 +208,12 @@
<OPCODE>15</OPCODE>
<DATA>
<TRANSACTION_ID>18</TRANSACTION_ID>
<LENGTH>3</LENGTH>
<SOURCE>/file_create</SOURCE>
<DESTINATION>/file_moved</DESTINATION>
<TIMESTAMP>1304060057605</TIMESTAMP>
<TIMESTAMP>1330405685882</TIMESTAMP>
<RENAME_OPTIONS>AA</RENAME_OPTIONS>
</DATA>
<CHECKSUM>-1155144192</CHECKSUM>
<CHECKSUM>-1235158297</CHECKSUM>
</RECORD>
<RECORD>
<OPCODE>10</OPCODE>
@ -236,11 +227,10 @@
<OPCODE>0</OPCODE>
<DATA>
<TRANSACTION_ID>20</TRANSACTION_ID>
<LENGTH>5</LENGTH>
<PATH>/file_concat_target</PATH>
<REPLICATION>1</REPLICATION>
<MTIME>1304060057613</MTIME>
<ATIME>1304060057613</ATIME>
<MTIME>1330405685889</MTIME>
<ATIME>1330405685889</ATIME>
<BLOCKSIZE>512</BLOCKSIZE>
<NUMBLOCKS>0</NUMBLOCKS>
<PERMISSION_STATUS>
@ -248,125 +238,141 @@
<GROUPNAME>supergroup</GROUPNAME>
<FS_PERMISSIONS>420</FS_PERMISSIONS>
</PERMISSION_STATUS>
<CLIENT_NAME>DFSClient_NONMAPREDUCE_-66857152_1</CLIENT_NAME>
<CLIENT_NAME>DFSClient_NONMAPREDUCE_-2143415023_1</CLIENT_NAME>
<CLIENT_MACHINE>127.0.0.1</CLIENT_MACHINE>
</DATA>
<CHECKSUM>-428545606</CHECKSUM>
</RECORD>
<RECORD>
<OPCODE>9</OPCODE>
<DATA>
<TRANSACTION_ID>21</TRANSACTION_ID>
<LENGTH>5</LENGTH>
<PATH>/file_concat_target</PATH>
<REPLICATION>1</REPLICATION>
<MTIME>1304060057694</MTIME>
<ATIME>1304060057613</ATIME>
<BLOCKSIZE>512</BLOCKSIZE>
<NUMBLOCKS>3</NUMBLOCKS>
<BLOCK>
<BLOCK_ID>3459038074990663911</BLOCK_ID>
<BLOCK_NUM_BYTES>512</BLOCK_NUM_BYTES>
<BLOCK_GENERATION_STAMP>1003</BLOCK_GENERATION_STAMP>
</BLOCK>
<BLOCK>
<BLOCK_ID>-5555244278278879146</BLOCK_ID>
<BLOCK_NUM_BYTES>512</BLOCK_NUM_BYTES>
<BLOCK_GENERATION_STAMP>1003</BLOCK_GENERATION_STAMP>
</BLOCK>
<BLOCK>
<BLOCK_ID>-6344128791846831740</BLOCK_ID>
<BLOCK_NUM_BYTES>512</BLOCK_NUM_BYTES>
<BLOCK_GENERATION_STAMP>1003</BLOCK_GENERATION_STAMP>
</BLOCK>
<PERMISSION_STATUS>
<USERNAME>todd</USERNAME>
<GROUPNAME>supergroup</GROUPNAME>
<FS_PERMISSIONS>420</FS_PERMISSIONS>
</PERMISSION_STATUS>
</DATA>
<CHECKSUM>707995174</CHECKSUM>
<CHECKSUM>-981119572</CHECKSUM>
</RECORD>
<RECORD>
<OPCODE>10</OPCODE>
<DATA>
<TRANSACTION_ID>22</TRANSACTION_ID>
<TRANSACTION_ID>21</TRANSACTION_ID>
<GENERATION_STAMP>1004</GENERATION_STAMP>
</DATA>
<CHECKSUM>-1500977009</CHECKSUM>
<CHECKSUM>-1627007926</CHECKSUM>
</RECORD>
<RECORD>
<OPCODE>0</OPCODE>
<OPCODE>25</OPCODE>
<DATA>
<TRANSACTION_ID>22</TRANSACTION_ID>
<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>
</BLOCK>
</DATA>
<CHECKSUM>-1131701615</CHECKSUM>
</RECORD>
<RECORD>
<OPCODE>10</OPCODE>
<DATA>
<TRANSACTION_ID>23</TRANSACTION_ID>
<LENGTH>5</LENGTH>
<PATH>/file_concat_0</PATH>
<REPLICATION>1</REPLICATION>
<MTIME>1304060057701</MTIME>
<ATIME>1304060057701</ATIME>
<BLOCKSIZE>512</BLOCKSIZE>
<NUMBLOCKS>0</NUMBLOCKS>
<PERMISSION_STATUS>
<USERNAME>todd</USERNAME>
<GROUPNAME>supergroup</GROUPNAME>
<FS_PERMISSIONS>420</FS_PERMISSIONS>
</PERMISSION_STATUS>
<CLIENT_NAME>DFSClient_NONMAPREDUCE_-66857152_1</CLIENT_NAME>
<CLIENT_MACHINE>127.0.0.1</CLIENT_MACHINE>
<GENERATION_STAMP>1005</GENERATION_STAMP>
</DATA>
<CHECKSUM>-119850856</CHECKSUM>
<CHECKSUM>-957035430</CHECKSUM>
</RECORD>
<RECORD>
<OPCODE>9</OPCODE>
<OPCODE>25</OPCODE>
<DATA>
<TRANSACTION_ID>24</TRANSACTION_ID>
<LENGTH>5</LENGTH>
<PATH>/file_concat_0</PATH>
<REPLICATION>1</REPLICATION>
<MTIME>1304060057737</MTIME>
<ATIME>1304060057701</ATIME>
<BLOCKSIZE>512</BLOCKSIZE>
<NUMBLOCKS>3</NUMBLOCKS>
<PATH>/file_concat_target</PATH>
<NUMBLOCKS>2</NUMBLOCKS>
<BLOCK>
<BLOCK_ID>4671949296381030428</BLOCK_ID>
<BLOCK_ID>-7144805496741076283</BLOCK_ID>
<BLOCK_NUM_BYTES>512</BLOCK_NUM_BYTES>
<BLOCK_GENERATION_STAMP>1004</BLOCK_GENERATION_STAMP>
</BLOCK>
<BLOCK>
<BLOCK_ID>-844362243522407159</BLOCK_ID>
<BLOCK_NUM_BYTES>512</BLOCK_NUM_BYTES>
<BLOCK_GENERATION_STAMP>1004</BLOCK_GENERATION_STAMP>
<BLOCK_ID>-4125931756867080767</BLOCK_ID>
<BLOCK_DELTA_NUM_BYTES>-512</BLOCK_DELTA_NUM_BYTES>
<BLOCK_DELTA_GEN_STAMP>1</BLOCK_DELTA_GEN_STAMP>
</BLOCK>
<BLOCK>
<BLOCK_ID>3476886462779656950</BLOCK_ID>
<BLOCK_NUM_BYTES>512</BLOCK_NUM_BYTES>
<BLOCK_GENERATION_STAMP>1004</BLOCK_GENERATION_STAMP>
</BLOCK>
<PERMISSION_STATUS>
<USERNAME>todd</USERNAME>
<GROUPNAME>supergroup</GROUPNAME>
<FS_PERMISSIONS>420</FS_PERMISSIONS>
</PERMISSION_STATUS>
</DATA>
<CHECKSUM>-766805874</CHECKSUM>
<CHECKSUM>-932985519</CHECKSUM>
</RECORD>
<RECORD>
<OPCODE>10</OPCODE>
<DATA>
<TRANSACTION_ID>25</TRANSACTION_ID>
<GENERATION_STAMP>1005</GENERATION_STAMP>
<GENERATION_STAMP>1006</GENERATION_STAMP>
</DATA>
<CHECKSUM>238426056</CHECKSUM>
<CHECKSUM>-1757460878</CHECKSUM>
</RECORD>
<RECORD>
<OPCODE>25</OPCODE>
<DATA>
<TRANSACTION_ID>26</TRANSACTION_ID>
<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>
</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>
</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>
</BLOCK>
</DATA>
<CHECKSUM>-154090859</CHECKSUM>
</RECORD>
<RECORD>
<OPCODE>9</OPCODE>
<DATA>
<TRANSACTION_ID>27</TRANSACTION_ID>
<PATH>/file_concat_target</PATH>
<REPLICATION>1</REPLICATION>
<MTIME>1330405685978</MTIME>
<ATIME>1330405685889</ATIME>
<BLOCKSIZE>512</BLOCKSIZE>
<NUMBLOCKS>3</NUMBLOCKS>
<BLOCK>
<BLOCK_ID>-7144805496741076283</BLOCK_ID>
<BLOCK_NUM_BYTES>512</BLOCK_NUM_BYTES>
<BLOCK_GENERATION_STAMP>1004</BLOCK_GENERATION_STAMP>
</BLOCK>
<BLOCK>
<BLOCK_ID>-4125931756867080767</BLOCK_ID>
<BLOCK_NUM_BYTES>512</BLOCK_NUM_BYTES>
<BLOCK_GENERATION_STAMP>1005</BLOCK_GENERATION_STAMP>
</BLOCK>
<BLOCK>
<BLOCK_ID>1562413691487277050</BLOCK_ID>
<BLOCK_NUM_BYTES>512</BLOCK_NUM_BYTES>
<BLOCK_GENERATION_STAMP>1006</BLOCK_GENERATION_STAMP>
</BLOCK>
<PERMISSION_STATUS>
<USERNAME>todd</USERNAME>
<GROUPNAME>supergroup</GROUPNAME>
<FS_PERMISSIONS>420</FS_PERMISSIONS>
</PERMISSION_STATUS>
</DATA>
<CHECKSUM>-292633850</CHECKSUM>
</RECORD>
<RECORD>
<OPCODE>10</OPCODE>
<DATA>
<TRANSACTION_ID>28</TRANSACTION_ID>
<GENERATION_STAMP>1007</GENERATION_STAMP>
</DATA>
<CHECKSUM>-1431358549</CHECKSUM>
</RECORD>
<RECORD>
<OPCODE>0</OPCODE>
<DATA>
<TRANSACTION_ID>26</TRANSACTION_ID>
<LENGTH>5</LENGTH>
<PATH>/file_concat_1</PATH>
<TRANSACTION_ID>29</TRANSACTION_ID>
<PATH>/file_concat_0</PATH>
<REPLICATION>1</REPLICATION>
<MTIME>1304060057742</MTIME>
<ATIME>1304060057742</ATIME>
<MTIME>1330405685983</MTIME>
<ATIME>1330405685983</ATIME>
<BLOCKSIZE>512</BLOCKSIZE>
<NUMBLOCKS>0</NUMBLOCKS>
<PERMISSION_STATUS>
@ -374,36 +380,116 @@
<GROUPNAME>supergroup</GROUPNAME>
<FS_PERMISSIONS>420</FS_PERMISSIONS>
</PERMISSION_STATUS>
<CLIENT_NAME>DFSClient_NONMAPREDUCE_-66857152_1</CLIENT_NAME>
<CLIENT_NAME>DFSClient_NONMAPREDUCE_-2143415023_1</CLIENT_NAME>
<CLIENT_MACHINE>127.0.0.1</CLIENT_MACHINE>
</DATA>
<CHECKSUM>1156254705</CHECKSUM>
<CHECKSUM>-318194869</CHECKSUM>
</RECORD>
<RECORD>
<OPCODE>10</OPCODE>
<DATA>
<TRANSACTION_ID>30</TRANSACTION_ID>
<GENERATION_STAMP>1008</GENERATION_STAMP>
</DATA>
<CHECKSUM>156309208</CHECKSUM>
</RECORD>
<RECORD>
<OPCODE>25</OPCODE>
<DATA>
<TRANSACTION_ID>31</TRANSACTION_ID>
<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>
</BLOCK>
</DATA>
<CHECKSUM>-596016492</CHECKSUM>
</RECORD>
<RECORD>
<OPCODE>10</OPCODE>
<DATA>
<TRANSACTION_ID>32</TRANSACTION_ID>
<GENERATION_STAMP>1009</GENERATION_STAMP>
</DATA>
<CHECKSUM>-1734001394</CHECKSUM>
</RECORD>
<RECORD>
<OPCODE>25</OPCODE>
<DATA>
<TRANSACTION_ID>33</TRANSACTION_ID>
<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>
</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>
</BLOCK>
</DATA>
<CHECKSUM>1352178323</CHECKSUM>
</RECORD>
<RECORD>
<OPCODE>10</OPCODE>
<DATA>
<TRANSACTION_ID>34</TRANSACTION_ID>
<GENERATION_STAMP>1010</GENERATION_STAMP>
</DATA>
<CHECKSUM>794444850</CHECKSUM>
</RECORD>
<RECORD>
<OPCODE>25</OPCODE>
<DATA>
<TRANSACTION_ID>35</TRANSACTION_ID>
<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>
</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>
</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>
</BLOCK>
</DATA>
<CHECKSUM>-1530696539</CHECKSUM>
</RECORD>
<RECORD>
<OPCODE>9</OPCODE>
<DATA>
<TRANSACTION_ID>27</TRANSACTION_ID>
<LENGTH>5</LENGTH>
<PATH>/file_concat_1</PATH>
<TRANSACTION_ID>36</TRANSACTION_ID>
<PATH>/file_concat_0</PATH>
<REPLICATION>1</REPLICATION>
<MTIME>1304060057764</MTIME>
<ATIME>1304060057742</ATIME>
<MTIME>1330405686013</MTIME>
<ATIME>1330405685983</ATIME>
<BLOCKSIZE>512</BLOCKSIZE>
<NUMBLOCKS>3</NUMBLOCKS>
<BLOCK>
<BLOCK_ID>-754893470864399741</BLOCK_ID>
<BLOCK_ID>6084289468290363112</BLOCK_ID>
<BLOCK_NUM_BYTES>512</BLOCK_NUM_BYTES>
<BLOCK_GENERATION_STAMP>1005</BLOCK_GENERATION_STAMP>
<BLOCK_GENERATION_STAMP>1008</BLOCK_GENERATION_STAMP>
</BLOCK>
<BLOCK>
<BLOCK_ID>1820875380010181049</BLOCK_ID>
<BLOCK_ID>-4219431127125026105</BLOCK_ID>
<BLOCK_NUM_BYTES>512</BLOCK_NUM_BYTES>
<BLOCK_GENERATION_STAMP>1005</BLOCK_GENERATION_STAMP>
<BLOCK_GENERATION_STAMP>1009</BLOCK_GENERATION_STAMP>
</BLOCK>
<BLOCK>
<BLOCK_ID>8266387560744259971</BLOCK_ID>
<BLOCK_ID>-1765119074945211374</BLOCK_ID>
<BLOCK_NUM_BYTES>512</BLOCK_NUM_BYTES>
<BLOCK_GENERATION_STAMP>1005</BLOCK_GENERATION_STAMP>
<BLOCK_GENERATION_STAMP>1010</BLOCK_GENERATION_STAMP>
</BLOCK>
<PERMISSION_STATUS>
<USERNAME>todd</USERNAME>
@ -411,121 +497,336 @@
<FS_PERMISSIONS>420</FS_PERMISSIONS>
</PERMISSION_STATUS>
</DATA>
<CHECKSUM>-654780301</CHECKSUM>
<CHECKSUM>-2043978220</CHECKSUM>
</RECORD>
<RECORD>
<OPCODE>10</OPCODE>
<DATA>
<TRANSACTION_ID>37</TRANSACTION_ID>
<GENERATION_STAMP>1011</GENERATION_STAMP>
</DATA>
<CHECKSUM>1010571629</CHECKSUM>
</RECORD>
<RECORD>
<OPCODE>0</OPCODE>
<DATA>
<TRANSACTION_ID>38</TRANSACTION_ID>
<PATH>/file_concat_1</PATH>
<REPLICATION>1</REPLICATION>
<MTIME>1330405686017</MTIME>
<ATIME>1330405686017</ATIME>
<BLOCKSIZE>512</BLOCKSIZE>
<NUMBLOCKS>0</NUMBLOCKS>
<PERMISSION_STATUS>
<USERNAME>todd</USERNAME>
<GROUPNAME>supergroup</GROUPNAME>
<FS_PERMISSIONS>420</FS_PERMISSIONS>
</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>
<DATA>
<TRANSACTION_ID>39</TRANSACTION_ID>
<GENERATION_STAMP>1012</GENERATION_STAMP>
</DATA>
<CHECKSUM>-1934711736</CHECKSUM>
</RECORD>
<RECORD>
<OPCODE>25</OPCODE>
<DATA>
<TRANSACTION_ID>40</TRANSACTION_ID>
<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>
</BLOCK>
</DATA>
<CHECKSUM>-1853122907</CHECKSUM>
</RECORD>
<RECORD>
<OPCODE>10</OPCODE>
<DATA>
<TRANSACTION_ID>41</TRANSACTION_ID>
<GENERATION_STAMP>1013</GENERATION_STAMP>
</DATA>
<CHECKSUM>862670668</CHECKSUM>
</RECORD>
<RECORD>
<OPCODE>25</OPCODE>
<DATA>
<TRANSACTION_ID>42</TRANSACTION_ID>
<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>
</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>
</BLOCK>
</DATA>
<CHECKSUM>-1169706939</CHECKSUM>
</RECORD>
<RECORD>
<OPCODE>10</OPCODE>
<DATA>
<TRANSACTION_ID>43</TRANSACTION_ID>
<GENERATION_STAMP>1014</GENERATION_STAMP>
</DATA>
<CHECKSUM>-2070661520</CHECKSUM>
</RECORD>
<RECORD>
<OPCODE>25</OPCODE>
<DATA>
<TRANSACTION_ID>44</TRANSACTION_ID>
<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>
</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>
</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>
</BLOCK>
</DATA>
<CHECKSUM>-1568093815</CHECKSUM>
</RECORD>
<RECORD>
<OPCODE>9</OPCODE>
<DATA>
<TRANSACTION_ID>45</TRANSACTION_ID>
<PATH>/file_concat_1</PATH>
<REPLICATION>1</REPLICATION>
<MTIME>1330405686042</MTIME>
<ATIME>1330405686017</ATIME>
<BLOCKSIZE>512</BLOCKSIZE>
<NUMBLOCKS>3</NUMBLOCKS>
<BLOCK>
<BLOCK_ID>-7448471719302683860</BLOCK_ID>
<BLOCK_NUM_BYTES>512</BLOCK_NUM_BYTES>
<BLOCK_GENERATION_STAMP>1012</BLOCK_GENERATION_STAMP>
</BLOCK>
<BLOCK>
<BLOCK_ID>-8051065559769974521</BLOCK_ID>
<BLOCK_NUM_BYTES>512</BLOCK_NUM_BYTES>
<BLOCK_GENERATION_STAMP>1013</BLOCK_GENERATION_STAMP>
</BLOCK>
<BLOCK>
<BLOCK_ID>3808670437711973616</BLOCK_ID>
<BLOCK_NUM_BYTES>512</BLOCK_NUM_BYTES>
<BLOCK_GENERATION_STAMP>1014</BLOCK_GENERATION_STAMP>
</BLOCK>
<PERMISSION_STATUS>
<USERNAME>todd</USERNAME>
<GROUPNAME>supergroup</GROUPNAME>
<FS_PERMISSIONS>420</FS_PERMISSIONS>
</PERMISSION_STATUS>
</DATA>
<CHECKSUM>-1640101896</CHECKSUM>
</RECORD>
<RECORD>
<OPCODE>16</OPCODE>
<DATA>
<TRANSACTION_ID>28</TRANSACTION_ID>
<LENGTH>4</LENGTH>
<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>
<TIMESTAMP>1304060057767</TIMESTAMP>
<TIMESTAMP>1330405686046</TIMESTAMP>
</DATA>
<CHECKSUM>1273279541</CHECKSUM>
<CHECKSUM>2122891157</CHECKSUM>
</RECORD>
<RECORD>
<OPCODE>17</OPCODE>
<DATA>
<TRANSACTION_ID>29</TRANSACTION_ID>
<LENGTH>4</LENGTH>
<TRANSACTION_ID>47</TRANSACTION_ID>
<SOURCE>/file_symlink</SOURCE>
<DESTINATION>/file_concat_target</DESTINATION>
<MTIME>1304060057770</MTIME>
<ATIME>1304060057770</ATIME>
<MTIME>1330405686051</MTIME>
<ATIME>1330405686051</ATIME>
<PERMISSION_STATUS>
<USERNAME>todd</USERNAME>
<GROUPNAME>supergroup</GROUPNAME>
<FS_PERMISSIONS>511</FS_PERMISSIONS>
</PERMISSION_STATUS>
</DATA>
<CHECKSUM>1385678569</CHECKSUM>
<CHECKSUM>-585385283</CHECKSUM>
</RECORD>
<RECORD>
<OPCODE>18</OPCODE>
<DATA>
<TRANSACTION_ID>30</TRANSACTION_ID>
<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>1304060057773</T_ISSUE_DATE>
<T_MAX_DATE>1304664857773</T_MAX_DATE>
<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>1304146457773</T_EXPIRY_TIME>
<T_EXPIRY_TIME>1330492086056</T_EXPIRY_TIME>
</DATA>
<CHECKSUM>913145699</CHECKSUM>
<CHECKSUM>791321007</CHECKSUM>
</RECORD>
<RECORD>
<OPCODE>19</OPCODE>
<DATA>
<TRANSACTION_ID>31</TRANSACTION_ID>
<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>1304060057773</T_ISSUE_DATE>
<T_MAX_DATE>1304664857773</T_MAX_DATE>
<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>1304146457785</T_EXPIRY_TIME>
<T_EXPIRY_TIME>1330492086075</T_EXPIRY_TIME>
</DATA>
<CHECKSUM>-1772039941</CHECKSUM>
<CHECKSUM>649714969</CHECKSUM>
</RECORD>
<RECORD>
<OPCODE>20</OPCODE>
<DATA>
<TRANSACTION_ID>32</TRANSACTION_ID>
<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>1304060057773</T_ISSUE_DATE>
<T_MAX_DATE>1304664857773</T_MAX_DATE>
<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>
</DATA>
<CHECKSUM>1382094146</CHECKSUM>
<CHECKSUM>1190872628</CHECKSUM>
</RECORD>
<RECORD>
<OPCODE>10</OPCODE>
<DATA>
<TRANSACTION_ID>51</TRANSACTION_ID>
<GENERATION_STAMP>1015</GENERATION_STAMP>
</DATA>
<CHECKSUM>-460593521</CHECKSUM>
</RECORD>
<RECORD>
<OPCODE>0</OPCODE>
<DATA>
<TRANSACTION_ID>33</TRANSACTION_ID>
<LENGTH>5</LENGTH>
<PATH>/reassign-lease-test</PATH>
<TRANSACTION_ID>52</TRANSACTION_ID>
<PATH>/hard-lease-recovery-test</PATH>
<REPLICATION>1</REPLICATION>
<MTIME>1286491964741</MTIME>
<ATIME>1286491964741</ATIME>
<MTIME>1330405686084</MTIME>
<ATIME>1330405686084</ATIME>
<BLOCKSIZE>512</BLOCKSIZE>
<NUMBLOCKS>0</NUMBLOCKS>
<PERMISSION_STATUS>
<USERNAME>atm</USERNAME>
<USERNAME>todd</USERNAME>
<GROUPNAME>supergroup</GROUPNAME>
<FS_PERMISSIONS>420</FS_PERMISSIONS>
</PERMISSION_STATUS>
<CLIENT_NAME>DFSClient_871171074</CLIENT_NAME>
<CLIENT_NAME>DFSClient_NONMAPREDUCE_-2143415023_1</CLIENT_NAME>
<CLIENT_MACHINE>127.0.0.1</CLIENT_MACHINE>
</DATA>
<CHECKSUM>1975140107</CHECKSUM>
<CHECKSUM>2093219037</CHECKSUM>
</RECORD>
<RECORD>
<OPCODE>10</OPCODE>
<DATA>
<TRANSACTION_ID>53</TRANSACTION_ID>
<GENERATION_STAMP>1016</GENERATION_STAMP>
</DATA>
<CHECKSUM>120488596</CHECKSUM>
</RECORD>
<RECORD>
<OPCODE>25</OPCODE>
<DATA>
<TRANSACTION_ID>54</TRANSACTION_ID>
<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>
</BLOCK>
</DATA>
<CHECKSUM>2098840974</CHECKSUM>
</RECORD>
<RECORD>
<OPCODE>25</OPCODE>
<DATA>
<TRANSACTION_ID>55</TRANSACTION_ID>
<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>
</BLOCK>
</DATA>
<CHECKSUM>-1794222801</CHECKSUM>
</RECORD>
<RECORD>
<OPCODE>10</OPCODE>
<DATA>
<TRANSACTION_ID>56</TRANSACTION_ID>
<GENERATION_STAMP>1017</GENERATION_STAMP>
</DATA>
<CHECKSUM>-2123999915</CHECKSUM>
</RECORD>
<RECORD>
<OPCODE>22</OPCODE>
<DATA>
<TRANSACTION_ID>34</TRANSACTION_ID>
<CLIENT_NAME>DFSClient_871171074</CLIENT_NAME>
<PATH>/reassign-lease-test</PATH>
<TRANSACTION_ID>57</TRANSACTION_ID>
<CLIENT_NAME>DFSClient_NONMAPREDUCE_-2143415023_1</CLIENT_NAME>
<PATH>/hard-lease-recovery-test</PATH>
<CLIENT_NAME>HDFS_NameNode</CLIENT_NAME>
</DATA>
<CHECKSUM>1975140107</CHECKSUM>
<CHECKSUM>-1841690515</CHECKSUM>
</RECORD>
<RECORD>
<OPCODE>9</OPCODE>
<DATA>
<TRANSACTION_ID>58</TRANSACTION_ID>
<PATH>/hard-lease-recovery-test</PATH>
<REPLICATION>1</REPLICATION>
<MTIME>1330405688726</MTIME>
<ATIME>1330405686084</ATIME>
<BLOCKSIZE>512</BLOCKSIZE>
<NUMBLOCKS>1</NUMBLOCKS>
<BLOCK>
<BLOCK_ID>-357061736603024522</BLOCK_ID>
<BLOCK_NUM_BYTES>11</BLOCK_NUM_BYTES>
<BLOCK_GENERATION_STAMP>1017</BLOCK_GENERATION_STAMP>
</BLOCK>
<PERMISSION_STATUS>
<USERNAME>todd</USERNAME>
<GROUPNAME>supergroup</GROUPNAME>
<FS_PERMISSIONS>420</FS_PERMISSIONS>
</PERMISSION_STATUS>
</DATA>
<CHECKSUM>-218102037</CHECKSUM>
</RECORD>
<RECORD>
<OPCODE>23</OPCODE>
<DATA>
<TRANSACTION_ID>35</TRANSACTION_ID>
<TRANSACTION_ID>59</TRANSACTION_ID>
</DATA>
<CHECKSUM>1975140107</CHECKSUM>
<CHECKSUM>-1616653774</CHECKSUM>
</RECORD>
<RECORD>
<OPCODE>-1</OPCODE>