HDFS-12840. Creating a file with non-default EC policy in a EC zone is not correctly serialized in the editlog. Contributed by Lei (Eddy) Xu.

This commit is contained in:
Lei Xu 2017-12-07 11:15:40 -08:00
parent 67b2661e3d
commit 67662e2ac9
13 changed files with 552 additions and 203 deletions

View File

@ -52,6 +52,6 @@ private ErasureCodeConstants() {
public static final byte MAX_POLICY_ID = Byte.MAX_VALUE; public static final byte MAX_POLICY_ID = Byte.MAX_VALUE;
public static final byte USER_DEFINED_POLICY_START_ID = (byte) 64; public static final byte USER_DEFINED_POLICY_START_ID = (byte) 64;
public static final byte REPLICATION_POLICY_ID = (byte) 63; public static final byte REPLICATION_POLICY_ID = (byte) 0;
public static final String REPLICATION_POLICY_NAME = REPLICATION_CODEC_NAME; public static final String REPLICATION_POLICY_NAME = REPLICATION_CODEC_NAME;
} }

View File

@ -53,6 +53,7 @@
import org.apache.hadoop.hdfs.server.common.HdfsServerConstants; import org.apache.hadoop.hdfs.server.common.HdfsServerConstants;
import org.apache.hadoop.hdfs.server.namenode.FSDirectory.DirOp; import org.apache.hadoop.hdfs.server.namenode.FSDirectory.DirOp;
import org.apache.hadoop.hdfs.server.namenode.snapshot.Snapshot; import org.apache.hadoop.hdfs.server.namenode.snapshot.Snapshot;
import org.apache.hadoop.io.erasurecode.ErasureCodeConstants;
import org.apache.hadoop.net.Node; import org.apache.hadoop.net.Node;
import org.apache.hadoop.net.NodeBase; import org.apache.hadoop.net.NodeBase;
import org.apache.hadoop.util.ChunkedArrayList; import org.apache.hadoop.util.ChunkedArrayList;
@ -415,22 +416,28 @@ static INodeFile addFileForEditLog(
PermissionStatus permissions, List<AclEntry> aclEntries, PermissionStatus permissions, List<AclEntry> aclEntries,
List<XAttr> xAttrs, short replication, long modificationTime, long atime, List<XAttr> xAttrs, short replication, long modificationTime, long atime,
long preferredBlockSize, boolean underConstruction, String clientName, long preferredBlockSize, boolean underConstruction, String clientName,
String clientMachine, byte storagePolicyId) { String clientMachine, byte storagePolicyId, byte ecPolicyID) {
final INodeFile newNode; final INodeFile newNode;
Preconditions.checkNotNull(existing); Preconditions.checkNotNull(existing);
assert fsd.hasWriteLock(); assert fsd.hasWriteLock();
try { try {
// check if the file has an EC policy // check if the file has an EC policy
boolean isStriped = false; boolean isStriped =
ErasureCodingPolicy ecPolicy = FSDirErasureCodingOp. ecPolicyID != ErasureCodeConstants.REPLICATION_POLICY_ID;
unprotectedGetErasureCodingPolicy(fsd.getFSNamesystem(), existing); ErasureCodingPolicy ecPolicy = null;
if (ecPolicy != null) { if (isStriped) {
isStriped = true; ecPolicy = fsd.getFSNamesystem().getErasureCodingPolicyManager()
.getByID(ecPolicyID);
if (ecPolicy == null) {
throw new IOException(String.format(
"Cannot find erasure coding policy for new file %s/%s, " +
"ecPolicyID=%d",
existing.getPath(), Arrays.toString(localName), ecPolicyID));
}
} }
final BlockType blockType = isStriped ? final BlockType blockType = isStriped ?
BlockType.STRIPED : BlockType.CONTIGUOUS; BlockType.STRIPED : BlockType.CONTIGUOUS;
final Short replicationFactor = (!isStriped ? replication : null); final Short replicationFactor = (!isStriped ? replication : null);
final Byte ecPolicyID = (isStriped ? ecPolicy.getId() : null);
if (underConstruction) { if (underConstruction) {
newNode = newINodeFile(id, permissions, modificationTime, newNode = newINodeFile(id, permissions, modificationTime,
modificationTime, replicationFactor, ecPolicyID, preferredBlockSize, modificationTime, replicationFactor, ecPolicyID, preferredBlockSize,

View File

@ -815,7 +815,8 @@ public void logOpenFile(String path, INodeFile newNode, boolean overwrite,
.setClientMachine( .setClientMachine(
newNode.getFileUnderConstructionFeature().getClientMachine()) newNode.getFileUnderConstructionFeature().getClientMachine())
.setOverwrite(overwrite) .setOverwrite(overwrite)
.setStoragePolicyId(newNode.getLocalStoragePolicyID()); .setStoragePolicyId(newNode.getLocalStoragePolicyID())
.setErasureCodingPolicyId(newNode.getErasureCodingPolicyID());
AclFeature f = newNode.getAclFeature(); AclFeature f = newNode.getAclFeature();
if (f != null) { if (f != null) {

View File

@ -385,7 +385,7 @@ private long applyEditLogOp(FSEditLogOp op, FSDirectory fsDir,
addCloseOp.xAttrs, replication, addCloseOp.mtime, addCloseOp.xAttrs, replication, addCloseOp.mtime,
addCloseOp.atime, addCloseOp.blockSize, true, addCloseOp.atime, addCloseOp.blockSize, true,
addCloseOp.clientName, addCloseOp.clientMachine, addCloseOp.clientName, addCloseOp.clientMachine,
addCloseOp.storagePolicyId); addCloseOp.storagePolicyId, addCloseOp.erasureCodingPolicyId);
assert newFile != null; assert newFile != null;
iip = INodesInPath.replace(iip, iip.length() - 1, newFile); iip = INodesInPath.replace(iip, iip.length() - 1, newFile);
fsNamesys.leaseManager.addLease(addCloseOp.clientName, newFile.getId()); fsNamesys.leaseManager.addLease(addCloseOp.clientName, newFile.getId());

View File

@ -127,6 +127,7 @@
import org.apache.hadoop.io.WritableFactories; import org.apache.hadoop.io.WritableFactories;
import org.apache.hadoop.io.WritableFactory; import org.apache.hadoop.io.WritableFactory;
import org.apache.hadoop.io.erasurecode.ECSchema; import org.apache.hadoop.io.erasurecode.ECSchema;
import org.apache.hadoop.io.erasurecode.ErasureCodeConstants;
import org.apache.hadoop.ipc.ClientId; import org.apache.hadoop.ipc.ClientId;
import org.apache.hadoop.ipc.RpcConstants; import org.apache.hadoop.ipc.RpcConstants;
import org.apache.hadoop.security.token.delegation.DelegationKey; import org.apache.hadoop.security.token.delegation.DelegationKey;
@ -425,10 +426,12 @@ static abstract class AddCloseOp
String clientMachine; String clientMachine;
boolean overwrite; boolean overwrite;
byte storagePolicyId; byte storagePolicyId;
byte erasureCodingPolicyId;
private AddCloseOp(FSEditLogOpCodes opCode) { private AddCloseOp(FSEditLogOpCodes opCode) {
super(opCode); super(opCode);
storagePolicyId = HdfsConstants.BLOCK_STORAGE_POLICY_ID_UNSPECIFIED; storagePolicyId = HdfsConstants.BLOCK_STORAGE_POLICY_ID_UNSPECIFIED;
erasureCodingPolicyId = ErasureCodeConstants.REPLICATION_POLICY_ID;
assert(opCode == OP_ADD || opCode == OP_CLOSE || opCode == OP_APPEND); assert(opCode == OP_ADD || opCode == OP_CLOSE || opCode == OP_APPEND);
} }
@ -449,6 +452,7 @@ void resetSubFields() {
clientMachine = null; clientMachine = null;
overwrite = false; overwrite = false;
storagePolicyId = 0; storagePolicyId = 0;
erasureCodingPolicyId = ErasureCodeConstants.REPLICATION_POLICY_ID;
} }
<T extends AddCloseOp> T setInodeId(long inodeId) { <T extends AddCloseOp> T setInodeId(long inodeId) {
@ -535,6 +539,11 @@ <T extends AddCloseOp> T setStoragePolicyId(byte storagePolicyId) {
return (T)this; return (T)this;
} }
<T extends AddCloseOp> T setErasureCodingPolicyId(byte ecPolicyId) {
this.erasureCodingPolicyId = ecPolicyId;
return (T)this;
}
@Override @Override
public void writeFields(DataOutputStream out) throws IOException { public void writeFields(DataOutputStream out) throws IOException {
FSImageSerialization.writeLong(inodeId, out); FSImageSerialization.writeLong(inodeId, out);
@ -555,6 +564,7 @@ public void writeFields(DataOutputStream out) throws IOException {
FSImageSerialization.writeString(clientMachine,out); FSImageSerialization.writeString(clientMachine,out);
FSImageSerialization.writeBoolean(overwrite, out); FSImageSerialization.writeBoolean(overwrite, out);
FSImageSerialization.writeByte(storagePolicyId, out); FSImageSerialization.writeByte(storagePolicyId, out);
FSImageSerialization.writeByte(erasureCodingPolicyId, out);
// write clientId and callId // write clientId and callId
writeRpcIds(rpcClientId, rpcCallId, out); writeRpcIds(rpcClientId, rpcCallId, out);
} }
@ -633,6 +643,14 @@ void readFields(DataInputStream in, int logVersion)
this.storagePolicyId = this.storagePolicyId =
HdfsConstants.BLOCK_STORAGE_POLICY_ID_UNSPECIFIED; HdfsConstants.BLOCK_STORAGE_POLICY_ID_UNSPECIFIED;
} }
if (NameNodeLayoutVersion.supports(
NameNodeLayoutVersion.Feature.ERASURE_CODING, logVersion)) {
this.erasureCodingPolicyId = FSImageSerialization.readByte(in);
} else {
this.erasureCodingPolicyId =
ErasureCodeConstants.REPLICATION_POLICY_ID;
}
// read clientId and callId // read clientId and callId
readRpcIds(in, logVersion); readRpcIds(in, logVersion);
} else { } else {
@ -695,6 +713,8 @@ public String stringifyMembers() {
} }
builder.append(", storagePolicyId="); builder.append(", storagePolicyId=");
builder.append(storagePolicyId); builder.append(storagePolicyId);
builder.append(", erasureCodingPolicyId=");
builder.append(erasureCodingPolicyId);
builder.append(", opCode="); builder.append(", opCode=");
builder.append(opCode); builder.append(opCode);
builder.append(", txid="); builder.append(", txid=");
@ -730,6 +750,8 @@ protected void toXml(ContentHandler contentHandler) throws SAXException {
if (aclEntries != null) { if (aclEntries != null) {
appendAclEntriesToXml(contentHandler, aclEntries); appendAclEntriesToXml(contentHandler, aclEntries);
} }
XMLUtils.addSaxString(contentHandler, "ERASURE_CODING_POLICY_ID",
Byte.toString(erasureCodingPolicyId));
appendRpcIdsToXml(contentHandler, rpcClientId, rpcCallId); appendRpcIdsToXml(contentHandler, rpcClientId, rpcCallId);
} }
} }
@ -758,6 +780,10 @@ void fromXml(Stanza st) throws InvalidXmlException {
} }
this.permissions = permissionStatusFromXml(st); this.permissions = permissionStatusFromXml(st);
aclEntries = readAclEntriesFromXml(st); aclEntries = readAclEntriesFromXml(st);
if (st.hasChildren("ERASURE_CODING_POLICY_ID")) {
this.erasureCodingPolicyId = Byte.parseByte(st.getValue(
"ERASURE_CODING_POLICY_ID"));
}
readRpcIdsFromXml(st); readRpcIdsFromXml(st);
} }
} }

View File

@ -56,6 +56,7 @@
import com.google.common.annotations.VisibleForTesting; import com.google.common.annotations.VisibleForTesting;
import com.google.common.base.Preconditions; import com.google.common.base.Preconditions;
import org.apache.hadoop.io.erasurecode.ErasureCodeConstants;
import org.apache.hadoop.util.StringUtils; import org.apache.hadoop.util.StringUtils;
/** I-node for closed file. */ /** I-node for closed file. */
@ -200,9 +201,10 @@ static long getBlockLayoutRedundancy(final BlockType blockType,
// as the PolicyID can never be in negative. // as the PolicyID can never be in negative.
layoutRedundancy |= erasureCodingPolicyID; layoutRedundancy |= erasureCodingPolicyID;
} else { } else {
Preconditions.checkArgument(replication != null && Preconditions.checkArgument(erasureCodingPolicyID == null ||
erasureCodingPolicyID == null); erasureCodingPolicyID ==
Preconditions.checkArgument(replication >= 0 && ErasureCodeConstants.REPLICATION_POLICY_ID);
Preconditions.checkArgument(replication != null && replication >= 0 &&
replication <= MAX_REDUNDANCY, replication <= MAX_REDUNDANCY,
"Invalid replication value " + replication); "Invalid replication value " + replication);
layoutRedundancy |= replication; layoutRedundancy |= replication;
@ -588,10 +590,8 @@ public final void setStoragePolicyID(byte storagePolicyId,
setStoragePolicyID(storagePolicyId); setStoragePolicyID(storagePolicyId);
} }
/** /**
* @return The ID of the erasure coding policy on the file. -1 represents no * @return The ID of the erasure coding policy on the file.
* EC policy.
*/ */
@VisibleForTesting @VisibleForTesting
@Override @Override
@ -599,7 +599,7 @@ public byte getErasureCodingPolicyID() {
if (isStriped()) { if (isStriped()) {
return HeaderFormat.getECPolicyID(header); return HeaderFormat.getECPolicyID(header);
} }
return -1; return ErasureCodeConstants.REPLICATION_POLICY_ID;
} }
/** /**

View File

@ -1510,6 +1510,29 @@ public static void runOperations(MiniDFSCluster cluster,
// OP_REMOVE_ERASURE_CODING_POLICY // OP_REMOVE_ERASURE_CODING_POLICY
filesystem.removeErasureCodingPolicy(newPolicy1.getName()); filesystem.removeErasureCodingPolicy(newPolicy1.getName());
filesystem.removeErasureCodingPolicy(newPolicy2.getName()); filesystem.removeErasureCodingPolicy(newPolicy2.getName());
// OP_ADD on erasure coding directory
Path ecDir = new Path("/ec");
filesystem.mkdirs(ecDir);
final ErasureCodingPolicy defaultEcPolicy =
SystemErasureCodingPolicies.getByID(
SystemErasureCodingPolicies.RS_6_3_POLICY_ID);
final ErasureCodingPolicy ecPolicyRS32 =
SystemErasureCodingPolicies.getByID(
SystemErasureCodingPolicies.RS_3_2_POLICY_ID);
filesystem.enableErasureCodingPolicy(ecPolicyRS32.getName());
filesystem.enableErasureCodingPolicy(defaultEcPolicy.getName());
filesystem.setErasureCodingPolicy(ecDir, defaultEcPolicy.getName());
try (FSDataOutputStream out = filesystem.createFile(
new Path(ecDir, "replicated")).replicate().build()) {
out.write("replicated".getBytes());
}
try (FSDataOutputStream out = filesystem.createFile(
new Path(ecDir, "RS-3-2")).ecPolicyName(ecPolicyRS32.getName()).build()) {
out.write("RS-3-2".getBytes());
}
} }
public static void abortStream(DFSOutputStream out) throws IOException { public static void abortStream(DFSOutputStream out) throws IOException {

View File

@ -19,11 +19,13 @@
import org.apache.hadoop.conf.Configuration; import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.fs.BlockLocation; import org.apache.hadoop.fs.BlockLocation;
import org.apache.hadoop.fs.FSDataOutputStream;
import org.apache.hadoop.fs.FileContext; import org.apache.hadoop.fs.FileContext;
import org.apache.hadoop.fs.LocatedFileStatus; import org.apache.hadoop.fs.LocatedFileStatus;
import org.apache.hadoop.fs.Path; import org.apache.hadoop.fs.Path;
import org.apache.hadoop.fs.RemoteIterator; import org.apache.hadoop.fs.RemoteIterator;
import org.apache.hadoop.hdfs.protocol.ErasureCodingPolicy; import org.apache.hadoop.hdfs.protocol.ErasureCodingPolicy;
import org.apache.hadoop.hdfs.protocol.SystemErasureCodingPolicies;
import org.junit.After; import org.junit.After;
import org.junit.Before; import org.junit.Before;
import org.junit.Test; import org.junit.Test;
@ -32,6 +34,8 @@
import java.util.ArrayList; import java.util.ArrayList;
import java.util.List; import java.util.List;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertNull;
import static org.junit.Assert.assertTrue; import static org.junit.Assert.assertTrue;
/** /**
@ -194,4 +198,55 @@ private void assertMoreThanOneBlockGroup(BlockLocation[] locations,
assertTrue(lastBlock.getOffset() == blockGroupSize); assertTrue(lastBlock.getOffset() == blockGroupSize);
assertTrue(lastBlock.getLength() == lastBlockSize); assertTrue(lastBlock.getLength() == lastBlockSize);
} }
@Test(timeout=60000)
public void testReplayEditLogsForReplicatedFile() throws Exception {
cluster.shutdown();
ErasureCodingPolicy rs63 = SystemErasureCodingPolicies.getByID(
SystemErasureCodingPolicies.RS_6_3_POLICY_ID
);
ErasureCodingPolicy rs32 = SystemErasureCodingPolicies.getByID(
SystemErasureCodingPolicies.RS_3_2_POLICY_ID
);
// Test RS(6,3) as default policy
int numDataNodes = rs63.getNumDataUnits() + rs63.getNumParityUnits();
cluster = new MiniDFSCluster.Builder(conf)
.nnTopology(MiniDFSNNTopology.simpleHATopology())
.numDataNodes(numDataNodes)
.build();
cluster.transitionToActive(0);
fs = cluster.getFileSystem(0);
fs.enableErasureCodingPolicy(rs63.getName());
fs.enableErasureCodingPolicy(rs32.getName());
Path dir = new Path("/ec");
fs.mkdirs(dir);
fs.setErasureCodingPolicy(dir, rs63.getName());
// Create an erasure coded file with the default policy.
Path ecFile = new Path(dir, "ecFile");
createFile(ecFile.toString(), 10);
// Create a replicated file.
Path replicatedFile = new Path(dir, "replicated");
try (FSDataOutputStream out = fs.createFile(replicatedFile)
.replicate().build()) {
out.write(123);
}
// Create an EC file with a different policy.
Path ecFile2 = new Path(dir, "RS-3-2");
try (FSDataOutputStream out = fs.createFile(ecFile2)
.ecPolicyName(rs32.getName()).build()) {
out.write(456);
}
cluster.transitionToStandby(0);
cluster.transitionToActive(1);
fs = cluster.getFileSystem(1);
assertNull(fs.getErasureCodingPolicy(replicatedFile));
assertEquals(rs63, fs.getErasureCodingPolicy(ecFile));
assertEquals(rs32, fs.getErasureCodingPolicy(ecFile2));
}
} }

View File

@ -98,8 +98,10 @@ public void startCluster(String dfsDir) throws IOException {
config.setBoolean( config.setBoolean(
DFSConfigKeys.DFS_NAMENODE_DELEGATION_TOKEN_ALWAYS_USE_KEY, true); DFSConfigKeys.DFS_NAMENODE_DELEGATION_TOKEN_ALWAYS_USE_KEY, true);
config.setBoolean(DFSConfigKeys.DFS_NAMENODE_ACLS_ENABLED_KEY, true); config.setBoolean(DFSConfigKeys.DFS_NAMENODE_ACLS_ENABLED_KEY, true);
final int numDataNodes = 9;
cluster = cluster =
new MiniDFSCluster.Builder(config).manageNameDfsDirs(false).build(); new MiniDFSCluster.Builder(config).manageNameDfsDirs(false)
.numDataNodes(numDataNodes).build();
cluster.waitClusterUp(); cluster.waitClusterUp();
} }

View File

@ -43,9 +43,11 @@
import org.apache.hadoop.hdfs.MiniDFSCluster; import org.apache.hadoop.hdfs.MiniDFSCluster;
import org.apache.hadoop.hdfs.MiniDFSNNTopology; import org.apache.hadoop.hdfs.MiniDFSNNTopology;
import org.apache.hadoop.hdfs.protocol.DatanodeID; import org.apache.hadoop.hdfs.protocol.DatanodeID;
import org.apache.hadoop.hdfs.protocol.ErasureCodingPolicy;
import org.apache.hadoop.hdfs.protocol.ExtendedBlock; import org.apache.hadoop.hdfs.protocol.ExtendedBlock;
import org.apache.hadoop.hdfs.protocol.HdfsFileStatus; import org.apache.hadoop.hdfs.protocol.HdfsFileStatus;
import org.apache.hadoop.hdfs.protocol.LastBlockWithStatus; import org.apache.hadoop.hdfs.protocol.LastBlockWithStatus;
import org.apache.hadoop.hdfs.protocol.SystemErasureCodingPolicies;
import org.apache.hadoop.hdfs.server.protocol.NamenodeProtocols; import org.apache.hadoop.hdfs.server.protocol.NamenodeProtocols;
import org.apache.hadoop.io.EnumSetWritable; import org.apache.hadoop.io.EnumSetWritable;
import org.apache.hadoop.ipc.ClientId; import org.apache.hadoop.ipc.ClientId;
@ -79,6 +81,11 @@
public class TestNamenodeRetryCache { public class TestNamenodeRetryCache {
private static final byte[] CLIENT_ID = ClientId.getClientId(); private static final byte[] CLIENT_ID = ClientId.getClientId();
private static MiniDFSCluster cluster; private static MiniDFSCluster cluster;
private static ErasureCodingPolicy defaultEcPolicy =
SystemErasureCodingPolicies.getByID(
SystemErasureCodingPolicies.RS_6_3_POLICY_ID);
private static int numDataNodes = defaultEcPolicy.getNumDataUnits() +
defaultEcPolicy.getNumParityUnits() + 1;
private static NamenodeProtocols nnRpc; private static NamenodeProtocols nnRpc;
private static final FsPermission perm = FsPermission.getDefault(); private static final FsPermission perm = FsPermission.getDefault();
private static DistributedFileSystem filesystem; private static DistributedFileSystem filesystem;
@ -93,7 +100,8 @@ public void setup() throws Exception {
conf.setLong(DFSConfigKeys.DFS_BLOCK_SIZE_KEY, BlockSize); conf.setLong(DFSConfigKeys.DFS_BLOCK_SIZE_KEY, BlockSize);
conf.setBoolean(DFSConfigKeys.DFS_NAMENODE_ENABLE_RETRY_CACHE_KEY, true); conf.setBoolean(DFSConfigKeys.DFS_NAMENODE_ENABLE_RETRY_CACHE_KEY, true);
conf.setBoolean(DFSConfigKeys.DFS_NAMENODE_ACLS_ENABLED_KEY, true); conf.setBoolean(DFSConfigKeys.DFS_NAMENODE_ACLS_ENABLED_KEY, true);
cluster = new MiniDFSCluster.Builder(conf).build(); cluster = new MiniDFSCluster.Builder(conf)
.numDataNodes(numDataNodes).build();
cluster.waitActive(); cluster.waitActive();
nnRpc = cluster.getNameNode().getRpcServer(); nnRpc = cluster.getNameNode().getRpcServer();
filesystem = cluster.getFileSystem(); filesystem = cluster.getFileSystem();
@ -436,7 +444,7 @@ public void testRetryCacheRebuild() throws Exception {
LightWeightCache<CacheEntry, CacheEntry> cacheSet = LightWeightCache<CacheEntry, CacheEntry> cacheSet =
(LightWeightCache<CacheEntry, CacheEntry>) namesystem.getRetryCache().getCacheSet(); (LightWeightCache<CacheEntry, CacheEntry>) namesystem.getRetryCache().getCacheSet();
assertEquals("Retry cache size is wrong", 34, cacheSet.size()); assertEquals("Retry cache size is wrong", 39, cacheSet.size());
Map<CacheEntry, CacheEntry> oldEntries = Map<CacheEntry, CacheEntry> oldEntries =
new HashMap<CacheEntry, CacheEntry>(); new HashMap<CacheEntry, CacheEntry>();
@ -455,7 +463,7 @@ public void testRetryCacheRebuild() throws Exception {
assertTrue(namesystem.hasRetryCache()); assertTrue(namesystem.hasRetryCache());
cacheSet = (LightWeightCache<CacheEntry, CacheEntry>) namesystem cacheSet = (LightWeightCache<CacheEntry, CacheEntry>) namesystem
.getRetryCache().getCacheSet(); .getRetryCache().getCacheSet();
assertEquals("Retry cache size is wrong", 34, cacheSet.size()); assertEquals("Retry cache size is wrong", 39, cacheSet.size());
iter = cacheSet.iterator(); iter = cacheSet.iterator();
while (iter.hasNext()) { while (iter.hasNext()) {
CacheEntry entry = iter.next(); CacheEntry entry = iter.next();

View File

@ -67,11 +67,13 @@
import org.apache.hadoop.hdfs.protocol.CachePoolInfo; import org.apache.hadoop.hdfs.protocol.CachePoolInfo;
import org.apache.hadoop.hdfs.protocol.ClientProtocol; import org.apache.hadoop.hdfs.protocol.ClientProtocol;
import org.apache.hadoop.hdfs.protocol.DatanodeInfo; import org.apache.hadoop.hdfs.protocol.DatanodeInfo;
import org.apache.hadoop.hdfs.protocol.ErasureCodingPolicy;
import org.apache.hadoop.hdfs.protocol.ExtendedBlock; import org.apache.hadoop.hdfs.protocol.ExtendedBlock;
import org.apache.hadoop.hdfs.protocol.HdfsFileStatus; import org.apache.hadoop.hdfs.protocol.HdfsFileStatus;
import org.apache.hadoop.hdfs.protocol.LastBlockWithStatus; import org.apache.hadoop.hdfs.protocol.LastBlockWithStatus;
import org.apache.hadoop.hdfs.protocol.LocatedBlock; import org.apache.hadoop.hdfs.protocol.LocatedBlock;
import org.apache.hadoop.hdfs.protocol.LocatedBlocks; import org.apache.hadoop.hdfs.protocol.LocatedBlocks;
import org.apache.hadoop.hdfs.protocol.SystemErasureCodingPolicies;
import org.apache.hadoop.hdfs.server.blockmanagement.BlockInfo; import org.apache.hadoop.hdfs.server.blockmanagement.BlockInfo;
import org.apache.hadoop.hdfs.server.blockmanagement.DatanodeManager; import org.apache.hadoop.hdfs.server.blockmanagement.DatanodeManager;
import org.apache.hadoop.hdfs.server.namenode.FSNamesystem; import org.apache.hadoop.hdfs.server.namenode.FSNamesystem;
@ -93,7 +95,12 @@ public class TestRetryCacheWithHA {
private static final Log LOG = LogFactory.getLog(TestRetryCacheWithHA.class); private static final Log LOG = LogFactory.getLog(TestRetryCacheWithHA.class);
private static final int BlockSize = 1024; private static final int BlockSize = 1024;
private static final short DataNodes = 3; private static ErasureCodingPolicy defaultEcPolicy =
SystemErasureCodingPolicies.getByID(
SystemErasureCodingPolicies.RS_6_3_POLICY_ID);
private static final short DataNodes = (short)(
defaultEcPolicy.getNumDataUnits() +
defaultEcPolicy.getNumParityUnits() + 1);
private static final int CHECKTIMES = 10; private static final int CHECKTIMES = 10;
private static final int ResponseSize = 3; private static final int ResponseSize = 3;
@ -166,7 +173,7 @@ public void testRetryCacheOnStandbyNN() throws Exception {
FSNamesystem fsn0 = cluster.getNamesystem(0); FSNamesystem fsn0 = cluster.getNamesystem(0);
LightWeightCache<CacheEntry, CacheEntry> cacheSet = LightWeightCache<CacheEntry, CacheEntry> cacheSet =
(LightWeightCache<CacheEntry, CacheEntry>) fsn0.getRetryCache().getCacheSet(); (LightWeightCache<CacheEntry, CacheEntry>) fsn0.getRetryCache().getCacheSet();
assertEquals("Retry cache size is wrong", 34, cacheSet.size()); assertEquals("Retry cache size is wrong", 39, cacheSet.size());
Map<CacheEntry, CacheEntry> oldEntries = Map<CacheEntry, CacheEntry> oldEntries =
new HashMap<CacheEntry, CacheEntry>(); new HashMap<CacheEntry, CacheEntry>();
@ -187,7 +194,7 @@ public void testRetryCacheOnStandbyNN() throws Exception {
FSNamesystem fsn1 = cluster.getNamesystem(1); FSNamesystem fsn1 = cluster.getNamesystem(1);
cacheSet = (LightWeightCache<CacheEntry, CacheEntry>) fsn1 cacheSet = (LightWeightCache<CacheEntry, CacheEntry>) fsn1
.getRetryCache().getCacheSet(); .getRetryCache().getCacheSet();
assertEquals("Retry cache size is wrong", 34, cacheSet.size()); assertEquals("Retry cache size is wrong", 39, cacheSet.size());
iter = cacheSet.iterator(); iter = cacheSet.iterator();
while (iter.hasNext()) { while (iter.hasNext()) {
CacheEntry entry = iter.next(); CacheEntry entry = iter.next();

View File

@ -13,8 +13,8 @@
<TXID>2</TXID> <TXID>2</TXID>
<DELEGATION_KEY> <DELEGATION_KEY>
<KEY_ID>1</KEY_ID> <KEY_ID>1</KEY_ID>
<EXPIRY_DATE>1512000829976</EXPIRY_DATE> <EXPIRY_DATE>1513298395825</EXPIRY_DATE>
<KEY>e7457bcc6ab95a84</KEY> <KEY>ddb3d2c37b57926a</KEY>
</DELEGATION_KEY> </DELEGATION_KEY>
</DATA> </DATA>
</RECORD> </RECORD>
@ -24,8 +24,8 @@
<TXID>3</TXID> <TXID>3</TXID>
<DELEGATION_KEY> <DELEGATION_KEY>
<KEY_ID>2</KEY_ID> <KEY_ID>2</KEY_ID>
<EXPIRY_DATE>1512000829980</EXPIRY_DATE> <EXPIRY_DATE>1513298395827</EXPIRY_DATE>
<KEY>07cc38caf6c47bb4</KEY> <KEY>57acfb80c8b539fa</KEY>
</DELEGATION_KEY> </DELEGATION_KEY>
</DATA> </DATA>
</RECORD> </RECORD>
@ -36,11 +36,11 @@
<LENGTH>0</LENGTH> <LENGTH>0</LENGTH>
<INODEID>16386</INODEID> <INODEID>16386</INODEID>
<PATH>/file_create</PATH> <PATH>/file_create</PATH>
<REPLICATION>1</REPLICATION> <REPLICATION>3</REPLICATION>
<MTIME>1511309632199</MTIME> <MTIME>1512607197452</MTIME>
<ATIME>1511309632199</ATIME> <ATIME>1512607197452</ATIME>
<BLOCKSIZE>512</BLOCKSIZE> <BLOCKSIZE>512</BLOCKSIZE>
<CLIENT_NAME>DFSClient_NONMAPREDUCE_2134933941_1</CLIENT_NAME> <CLIENT_NAME>DFSClient_NONMAPREDUCE_-923924783_1</CLIENT_NAME>
<CLIENT_MACHINE>127.0.0.1</CLIENT_MACHINE> <CLIENT_MACHINE>127.0.0.1</CLIENT_MACHINE>
<OVERWRITE>true</OVERWRITE> <OVERWRITE>true</OVERWRITE>
<PERMISSION_STATUS> <PERMISSION_STATUS>
@ -48,8 +48,9 @@
<GROUPNAME>supergroup</GROUPNAME> <GROUPNAME>supergroup</GROUPNAME>
<MODE>420</MODE> <MODE>420</MODE>
</PERMISSION_STATUS> </PERMISSION_STATUS>
<RPC_CLIENTID>a4dc081c-6d6f-42d6-af5b-d260228f1aad</RPC_CLIENTID> <ERASURE_CODING_POLICY_ID>0</ERASURE_CODING_POLICY_ID>
<RPC_CALLID>5</RPC_CALLID> <RPC_CLIENTID>cab1aa2d-e08a-4d2f-8216-76e167eccd94</RPC_CLIENTID>
<RPC_CALLID>35</RPC_CALLID>
</DATA> </DATA>
</RECORD> </RECORD>
<RECORD> <RECORD>
@ -59,9 +60,9 @@
<LENGTH>0</LENGTH> <LENGTH>0</LENGTH>
<INODEID>0</INODEID> <INODEID>0</INODEID>
<PATH>/file_create</PATH> <PATH>/file_create</PATH>
<REPLICATION>1</REPLICATION> <REPLICATION>3</REPLICATION>
<MTIME>1511309632248</MTIME> <MTIME>1512607197500</MTIME>
<ATIME>1511309632199</ATIME> <ATIME>1512607197452</ATIME>
<BLOCKSIZE>512</BLOCKSIZE> <BLOCKSIZE>512</BLOCKSIZE>
<CLIENT_NAME/> <CLIENT_NAME/>
<CLIENT_MACHINE/> <CLIENT_MACHINE/>
@ -78,11 +79,11 @@
<DATA> <DATA>
<TXID>6</TXID> <TXID>6</TXID>
<PATH>/file_create</PATH> <PATH>/file_create</PATH>
<CLIENT_NAME>DFSClient_NONMAPREDUCE_2134933941_1</CLIENT_NAME> <CLIENT_NAME>DFSClient_NONMAPREDUCE_-923924783_1</CLIENT_NAME>
<CLIENT_MACHINE>127.0.0.1</CLIENT_MACHINE> <CLIENT_MACHINE>127.0.0.1</CLIENT_MACHINE>
<NEWBLOCK>false</NEWBLOCK> <NEWBLOCK>false</NEWBLOCK>
<RPC_CLIENTID>a4dc081c-6d6f-42d6-af5b-d260228f1aad</RPC_CLIENTID> <RPC_CLIENTID>cab1aa2d-e08a-4d2f-8216-76e167eccd94</RPC_CLIENTID>
<RPC_CALLID>7</RPC_CALLID> <RPC_CALLID>37</RPC_CALLID>
</DATA> </DATA>
</RECORD> </RECORD>
<RECORD> <RECORD>
@ -92,9 +93,9 @@
<LENGTH>0</LENGTH> <LENGTH>0</LENGTH>
<INODEID>0</INODEID> <INODEID>0</INODEID>
<PATH>/file_create</PATH> <PATH>/file_create</PATH>
<REPLICATION>1</REPLICATION> <REPLICATION>3</REPLICATION>
<MTIME>1511309632263</MTIME> <MTIME>1512607197516</MTIME>
<ATIME>1511309632199</ATIME> <ATIME>1512607197452</ATIME>
<BLOCKSIZE>512</BLOCKSIZE> <BLOCKSIZE>512</BLOCKSIZE>
<CLIENT_NAME/> <CLIENT_NAME/>
<CLIENT_MACHINE/> <CLIENT_MACHINE/>
@ -114,10 +115,10 @@
<INODEID>16387</INODEID> <INODEID>16387</INODEID>
<PATH>/update_blocks</PATH> <PATH>/update_blocks</PATH>
<REPLICATION>1</REPLICATION> <REPLICATION>1</REPLICATION>
<MTIME>1511309632266</MTIME> <MTIME>1512607197519</MTIME>
<ATIME>1511309632266</ATIME> <ATIME>1512607197519</ATIME>
<BLOCKSIZE>4096</BLOCKSIZE> <BLOCKSIZE>4096</BLOCKSIZE>
<CLIENT_NAME>DFSClient_NONMAPREDUCE_2134933941_1</CLIENT_NAME> <CLIENT_NAME>DFSClient_NONMAPREDUCE_-923924783_1</CLIENT_NAME>
<CLIENT_MACHINE>127.0.0.1</CLIENT_MACHINE> <CLIENT_MACHINE>127.0.0.1</CLIENT_MACHINE>
<OVERWRITE>true</OVERWRITE> <OVERWRITE>true</OVERWRITE>
<PERMISSION_STATUS> <PERMISSION_STATUS>
@ -125,8 +126,9 @@
<GROUPNAME>supergroup</GROUPNAME> <GROUPNAME>supergroup</GROUPNAME>
<MODE>420</MODE> <MODE>420</MODE>
</PERMISSION_STATUS> </PERMISSION_STATUS>
<RPC_CLIENTID>a4dc081c-6d6f-42d6-af5b-d260228f1aad</RPC_CLIENTID> <ERASURE_CODING_POLICY_ID>0</ERASURE_CODING_POLICY_ID>
<RPC_CALLID>9</RPC_CALLID> <RPC_CLIENTID>cab1aa2d-e08a-4d2f-8216-76e167eccd94</RPC_CLIENTID>
<RPC_CALLID>39</RPC_CALLID>
</DATA> </DATA>
</RECORD> </RECORD>
<RECORD> <RECORD>
@ -188,8 +190,8 @@
<INODEID>0</INODEID> <INODEID>0</INODEID>
<PATH>/update_blocks</PATH> <PATH>/update_blocks</PATH>
<REPLICATION>1</REPLICATION> <REPLICATION>1</REPLICATION>
<MTIME>1511309632454</MTIME> <MTIME>1512607197657</MTIME>
<ATIME>1511309632266</ATIME> <ATIME>1512607197519</ATIME>
<BLOCKSIZE>4096</BLOCKSIZE> <BLOCKSIZE>4096</BLOCKSIZE>
<CLIENT_NAME/> <CLIENT_NAME/>
<CLIENT_MACHINE/> <CLIENT_MACHINE/>
@ -216,9 +218,9 @@
<LENGTH>0</LENGTH> <LENGTH>0</LENGTH>
<SRC>/file_create</SRC> <SRC>/file_create</SRC>
<DST>/file_moved</DST> <DST>/file_moved</DST>
<TIMESTAMP>1511309632467</TIMESTAMP> <TIMESTAMP>1512607197671</TIMESTAMP>
<RPC_CLIENTID>a4dc081c-6d6f-42d6-af5b-d260228f1aad</RPC_CLIENTID> <RPC_CLIENTID>cab1aa2d-e08a-4d2f-8216-76e167eccd94</RPC_CLIENTID>
<RPC_CALLID>17</RPC_CALLID> <RPC_CALLID>47</RPC_CALLID>
</DATA> </DATA>
</RECORD> </RECORD>
<RECORD> <RECORD>
@ -227,9 +229,9 @@
<TXID>17</TXID> <TXID>17</TXID>
<LENGTH>0</LENGTH> <LENGTH>0</LENGTH>
<PATH>/file_moved</PATH> <PATH>/file_moved</PATH>
<TIMESTAMP>1511309632480</TIMESTAMP> <TIMESTAMP>1512607197680</TIMESTAMP>
<RPC_CLIENTID>a4dc081c-6d6f-42d6-af5b-d260228f1aad</RPC_CLIENTID> <RPC_CLIENTID>cab1aa2d-e08a-4d2f-8216-76e167eccd94</RPC_CLIENTID>
<RPC_CALLID>19</RPC_CALLID> <RPC_CALLID>49</RPC_CALLID>
</DATA> </DATA>
</RECORD> </RECORD>
<RECORD> <RECORD>
@ -239,7 +241,7 @@
<LENGTH>0</LENGTH> <LENGTH>0</LENGTH>
<INODEID>16388</INODEID> <INODEID>16388</INODEID>
<PATH>/directory_mkdir</PATH> <PATH>/directory_mkdir</PATH>
<TIMESTAMP>1511309632488</TIMESTAMP> <TIMESTAMP>1512607197690</TIMESTAMP>
<PERMISSION_STATUS> <PERMISSION_STATUS>
<USERNAME>lei</USERNAME> <USERNAME>lei</USERNAME>
<GROUPNAME>supergroup</GROUPNAME> <GROUPNAME>supergroup</GROUPNAME>
@ -274,8 +276,8 @@
<TXID>22</TXID> <TXID>22</TXID>
<SNAPSHOTROOT>/directory_mkdir</SNAPSHOTROOT> <SNAPSHOTROOT>/directory_mkdir</SNAPSHOTROOT>
<SNAPSHOTNAME>snapshot1</SNAPSHOTNAME> <SNAPSHOTNAME>snapshot1</SNAPSHOTNAME>
<RPC_CLIENTID>a4dc081c-6d6f-42d6-af5b-d260228f1aad</RPC_CLIENTID> <RPC_CLIENTID>cab1aa2d-e08a-4d2f-8216-76e167eccd94</RPC_CLIENTID>
<RPC_CALLID>24</RPC_CALLID> <RPC_CALLID>54</RPC_CALLID>
</DATA> </DATA>
</RECORD> </RECORD>
<RECORD> <RECORD>
@ -285,8 +287,8 @@
<SNAPSHOTROOT>/directory_mkdir</SNAPSHOTROOT> <SNAPSHOTROOT>/directory_mkdir</SNAPSHOTROOT>
<SNAPSHOTOLDNAME>snapshot1</SNAPSHOTOLDNAME> <SNAPSHOTOLDNAME>snapshot1</SNAPSHOTOLDNAME>
<SNAPSHOTNEWNAME>snapshot2</SNAPSHOTNEWNAME> <SNAPSHOTNEWNAME>snapshot2</SNAPSHOTNEWNAME>
<RPC_CLIENTID>a4dc081c-6d6f-42d6-af5b-d260228f1aad</RPC_CLIENTID> <RPC_CLIENTID>cab1aa2d-e08a-4d2f-8216-76e167eccd94</RPC_CLIENTID>
<RPC_CALLID>25</RPC_CALLID> <RPC_CALLID>55</RPC_CALLID>
</DATA> </DATA>
</RECORD> </RECORD>
<RECORD> <RECORD>
@ -295,8 +297,8 @@
<TXID>24</TXID> <TXID>24</TXID>
<SNAPSHOTROOT>/directory_mkdir</SNAPSHOTROOT> <SNAPSHOTROOT>/directory_mkdir</SNAPSHOTROOT>
<SNAPSHOTNAME>snapshot2</SNAPSHOTNAME> <SNAPSHOTNAME>snapshot2</SNAPSHOTNAME>
<RPC_CLIENTID>a4dc081c-6d6f-42d6-af5b-d260228f1aad</RPC_CLIENTID> <RPC_CLIENTID>cab1aa2d-e08a-4d2f-8216-76e167eccd94</RPC_CLIENTID>
<RPC_CALLID>26</RPC_CALLID> <RPC_CALLID>56</RPC_CALLID>
</DATA> </DATA>
</RECORD> </RECORD>
<RECORD> <RECORD>
@ -306,11 +308,11 @@
<LENGTH>0</LENGTH> <LENGTH>0</LENGTH>
<INODEID>16389</INODEID> <INODEID>16389</INODEID>
<PATH>/file_create</PATH> <PATH>/file_create</PATH>
<REPLICATION>1</REPLICATION> <REPLICATION>3</REPLICATION>
<MTIME>1511309632528</MTIME> <MTIME>1512607197723</MTIME>
<ATIME>1511309632528</ATIME> <ATIME>1512607197723</ATIME>
<BLOCKSIZE>512</BLOCKSIZE> <BLOCKSIZE>512</BLOCKSIZE>
<CLIENT_NAME>DFSClient_NONMAPREDUCE_2134933941_1</CLIENT_NAME> <CLIENT_NAME>DFSClient_NONMAPREDUCE_-923924783_1</CLIENT_NAME>
<CLIENT_MACHINE>127.0.0.1</CLIENT_MACHINE> <CLIENT_MACHINE>127.0.0.1</CLIENT_MACHINE>
<OVERWRITE>true</OVERWRITE> <OVERWRITE>true</OVERWRITE>
<PERMISSION_STATUS> <PERMISSION_STATUS>
@ -318,8 +320,9 @@
<GROUPNAME>supergroup</GROUPNAME> <GROUPNAME>supergroup</GROUPNAME>
<MODE>420</MODE> <MODE>420</MODE>
</PERMISSION_STATUS> </PERMISSION_STATUS>
<RPC_CLIENTID>a4dc081c-6d6f-42d6-af5b-d260228f1aad</RPC_CLIENTID> <ERASURE_CODING_POLICY_ID>0</ERASURE_CODING_POLICY_ID>
<RPC_CALLID>27</RPC_CALLID> <RPC_CLIENTID>cab1aa2d-e08a-4d2f-8216-76e167eccd94</RPC_CLIENTID>
<RPC_CALLID>57</RPC_CALLID>
</DATA> </DATA>
</RECORD> </RECORD>
<RECORD> <RECORD>
@ -329,9 +332,9 @@
<LENGTH>0</LENGTH> <LENGTH>0</LENGTH>
<INODEID>0</INODEID> <INODEID>0</INODEID>
<PATH>/file_create</PATH> <PATH>/file_create</PATH>
<REPLICATION>1</REPLICATION> <REPLICATION>3</REPLICATION>
<MTIME>1511309632530</MTIME> <MTIME>1512607197726</MTIME>
<ATIME>1511309632528</ATIME> <ATIME>1512607197723</ATIME>
<BLOCKSIZE>512</BLOCKSIZE> <BLOCKSIZE>512</BLOCKSIZE>
<CLIENT_NAME/> <CLIENT_NAME/>
<CLIENT_MACHINE/> <CLIENT_MACHINE/>
@ -402,10 +405,10 @@
<LENGTH>0</LENGTH> <LENGTH>0</LENGTH>
<SRC>/file_create</SRC> <SRC>/file_create</SRC>
<DST>/file_moved</DST> <DST>/file_moved</DST>
<TIMESTAMP>1511309632561</TIMESTAMP> <TIMESTAMP>1512607197754</TIMESTAMP>
<OPTIONS>TO_TRASH</OPTIONS> <OPTIONS>TO_TRASH</OPTIONS>
<RPC_CLIENTID>a4dc081c-6d6f-42d6-af5b-d260228f1aad</RPC_CLIENTID> <RPC_CLIENTID>cab1aa2d-e08a-4d2f-8216-76e167eccd94</RPC_CLIENTID>
<RPC_CALLID>35</RPC_CALLID> <RPC_CALLID>65</RPC_CALLID>
</DATA> </DATA>
</RECORD> </RECORD>
<RECORD> <RECORD>
@ -416,10 +419,10 @@
<INODEID>16390</INODEID> <INODEID>16390</INODEID>
<PATH>/file_concat_target</PATH> <PATH>/file_concat_target</PATH>
<REPLICATION>1</REPLICATION> <REPLICATION>1</REPLICATION>
<MTIME>1511309632566</MTIME> <MTIME>1512607197759</MTIME>
<ATIME>1511309632566</ATIME> <ATIME>1512607197759</ATIME>
<BLOCKSIZE>512</BLOCKSIZE> <BLOCKSIZE>512</BLOCKSIZE>
<CLIENT_NAME>DFSClient_NONMAPREDUCE_2134933941_1</CLIENT_NAME> <CLIENT_NAME>DFSClient_NONMAPREDUCE_-923924783_1</CLIENT_NAME>
<CLIENT_MACHINE>127.0.0.1</CLIENT_MACHINE> <CLIENT_MACHINE>127.0.0.1</CLIENT_MACHINE>
<OVERWRITE>true</OVERWRITE> <OVERWRITE>true</OVERWRITE>
<PERMISSION_STATUS> <PERMISSION_STATUS>
@ -427,8 +430,9 @@
<GROUPNAME>supergroup</GROUPNAME> <GROUPNAME>supergroup</GROUPNAME>
<MODE>420</MODE> <MODE>420</MODE>
</PERMISSION_STATUS> </PERMISSION_STATUS>
<RPC_CLIENTID>a4dc081c-6d6f-42d6-af5b-d260228f1aad</RPC_CLIENTID> <ERASURE_CODING_POLICY_ID>0</ERASURE_CODING_POLICY_ID>
<RPC_CALLID>37</RPC_CALLID> <RPC_CLIENTID>cab1aa2d-e08a-4d2f-8216-76e167eccd94</RPC_CLIENTID>
<RPC_CALLID>67</RPC_CALLID>
</DATA> </DATA>
</RECORD> </RECORD>
<RECORD> <RECORD>
@ -533,8 +537,8 @@
<INODEID>0</INODEID> <INODEID>0</INODEID>
<PATH>/file_concat_target</PATH> <PATH>/file_concat_target</PATH>
<REPLICATION>1</REPLICATION> <REPLICATION>1</REPLICATION>
<MTIME>1511309632593</MTIME> <MTIME>1512607197800</MTIME>
<ATIME>1511309632566</ATIME> <ATIME>1512607197759</ATIME>
<BLOCKSIZE>512</BLOCKSIZE> <BLOCKSIZE>512</BLOCKSIZE>
<CLIENT_NAME/> <CLIENT_NAME/>
<CLIENT_MACHINE/> <CLIENT_MACHINE/>
@ -569,10 +573,10 @@
<INODEID>16391</INODEID> <INODEID>16391</INODEID>
<PATH>/file_concat_0</PATH> <PATH>/file_concat_0</PATH>
<REPLICATION>1</REPLICATION> <REPLICATION>1</REPLICATION>
<MTIME>1511309632596</MTIME> <MTIME>1512607197803</MTIME>
<ATIME>1511309632596</ATIME> <ATIME>1512607197803</ATIME>
<BLOCKSIZE>512</BLOCKSIZE> <BLOCKSIZE>512</BLOCKSIZE>
<CLIENT_NAME>DFSClient_NONMAPREDUCE_2134933941_1</CLIENT_NAME> <CLIENT_NAME>DFSClient_NONMAPREDUCE_-923924783_1</CLIENT_NAME>
<CLIENT_MACHINE>127.0.0.1</CLIENT_MACHINE> <CLIENT_MACHINE>127.0.0.1</CLIENT_MACHINE>
<OVERWRITE>true</OVERWRITE> <OVERWRITE>true</OVERWRITE>
<PERMISSION_STATUS> <PERMISSION_STATUS>
@ -580,8 +584,9 @@
<GROUPNAME>supergroup</GROUPNAME> <GROUPNAME>supergroup</GROUPNAME>
<MODE>420</MODE> <MODE>420</MODE>
</PERMISSION_STATUS> </PERMISSION_STATUS>
<RPC_CLIENTID>a4dc081c-6d6f-42d6-af5b-d260228f1aad</RPC_CLIENTID> <ERASURE_CODING_POLICY_ID>0</ERASURE_CODING_POLICY_ID>
<RPC_CALLID>46</RPC_CALLID> <RPC_CLIENTID>cab1aa2d-e08a-4d2f-8216-76e167eccd94</RPC_CLIENTID>
<RPC_CALLID>76</RPC_CALLID>
</DATA> </DATA>
</RECORD> </RECORD>
<RECORD> <RECORD>
@ -686,8 +691,8 @@
<INODEID>0</INODEID> <INODEID>0</INODEID>
<PATH>/file_concat_0</PATH> <PATH>/file_concat_0</PATH>
<REPLICATION>1</REPLICATION> <REPLICATION>1</REPLICATION>
<MTIME>1511309632618</MTIME> <MTIME>1512607197837</MTIME>
<ATIME>1511309632596</ATIME> <ATIME>1512607197803</ATIME>
<BLOCKSIZE>512</BLOCKSIZE> <BLOCKSIZE>512</BLOCKSIZE>
<CLIENT_NAME/> <CLIENT_NAME/>
<CLIENT_MACHINE/> <CLIENT_MACHINE/>
@ -722,10 +727,10 @@
<INODEID>16392</INODEID> <INODEID>16392</INODEID>
<PATH>/file_concat_1</PATH> <PATH>/file_concat_1</PATH>
<REPLICATION>1</REPLICATION> <REPLICATION>1</REPLICATION>
<MTIME>1511309632620</MTIME> <MTIME>1512607197839</MTIME>
<ATIME>1511309632620</ATIME> <ATIME>1512607197839</ATIME>
<BLOCKSIZE>512</BLOCKSIZE> <BLOCKSIZE>512</BLOCKSIZE>
<CLIENT_NAME>DFSClient_NONMAPREDUCE_2134933941_1</CLIENT_NAME> <CLIENT_NAME>DFSClient_NONMAPREDUCE_-923924783_1</CLIENT_NAME>
<CLIENT_MACHINE>127.0.0.1</CLIENT_MACHINE> <CLIENT_MACHINE>127.0.0.1</CLIENT_MACHINE>
<OVERWRITE>true</OVERWRITE> <OVERWRITE>true</OVERWRITE>
<PERMISSION_STATUS> <PERMISSION_STATUS>
@ -733,8 +738,9 @@
<GROUPNAME>supergroup</GROUPNAME> <GROUPNAME>supergroup</GROUPNAME>
<MODE>420</MODE> <MODE>420</MODE>
</PERMISSION_STATUS> </PERMISSION_STATUS>
<RPC_CLIENTID>a4dc081c-6d6f-42d6-af5b-d260228f1aad</RPC_CLIENTID> <ERASURE_CODING_POLICY_ID>0</ERASURE_CODING_POLICY_ID>
<RPC_CALLID>55</RPC_CALLID> <RPC_CLIENTID>cab1aa2d-e08a-4d2f-8216-76e167eccd94</RPC_CLIENTID>
<RPC_CALLID>85</RPC_CALLID>
</DATA> </DATA>
</RECORD> </RECORD>
<RECORD> <RECORD>
@ -839,8 +845,8 @@
<INODEID>0</INODEID> <INODEID>0</INODEID>
<PATH>/file_concat_1</PATH> <PATH>/file_concat_1</PATH>
<REPLICATION>1</REPLICATION> <REPLICATION>1</REPLICATION>
<MTIME>1511309632643</MTIME> <MTIME>1512607197878</MTIME>
<ATIME>1511309632620</ATIME> <ATIME>1512607197839</ATIME>
<BLOCKSIZE>512</BLOCKSIZE> <BLOCKSIZE>512</BLOCKSIZE>
<CLIENT_NAME/> <CLIENT_NAME/>
<CLIENT_MACHINE/> <CLIENT_MACHINE/>
@ -873,13 +879,13 @@
<TXID>67</TXID> <TXID>67</TXID>
<LENGTH>0</LENGTH> <LENGTH>0</LENGTH>
<TRG>/file_concat_target</TRG> <TRG>/file_concat_target</TRG>
<TIMESTAMP>1511309632648</TIMESTAMP> <TIMESTAMP>1512607197882</TIMESTAMP>
<SOURCES> <SOURCES>
<SOURCE1>/file_concat_0</SOURCE1> <SOURCE1>/file_concat_0</SOURCE1>
<SOURCE2>/file_concat_1</SOURCE2> <SOURCE2>/file_concat_1</SOURCE2>
</SOURCES> </SOURCES>
<RPC_CLIENTID>a4dc081c-6d6f-42d6-af5b-d260228f1aad</RPC_CLIENTID> <RPC_CLIENTID>cab1aa2d-e08a-4d2f-8216-76e167eccd94</RPC_CLIENTID>
<RPC_CALLID>63</RPC_CALLID> <RPC_CALLID>93</RPC_CALLID>
</DATA> </DATA>
</RECORD> </RECORD>
<RECORD> <RECORD>
@ -890,10 +896,10 @@
<INODEID>16393</INODEID> <INODEID>16393</INODEID>
<PATH>/file_create</PATH> <PATH>/file_create</PATH>
<REPLICATION>1</REPLICATION> <REPLICATION>1</REPLICATION>
<MTIME>1511309632651</MTIME> <MTIME>1512607197885</MTIME>
<ATIME>1511309632651</ATIME> <ATIME>1512607197885</ATIME>
<BLOCKSIZE>512</BLOCKSIZE> <BLOCKSIZE>512</BLOCKSIZE>
<CLIENT_NAME>DFSClient_NONMAPREDUCE_2134933941_1</CLIENT_NAME> <CLIENT_NAME>DFSClient_NONMAPREDUCE_-923924783_1</CLIENT_NAME>
<CLIENT_MACHINE>127.0.0.1</CLIENT_MACHINE> <CLIENT_MACHINE>127.0.0.1</CLIENT_MACHINE>
<OVERWRITE>true</OVERWRITE> <OVERWRITE>true</OVERWRITE>
<PERMISSION_STATUS> <PERMISSION_STATUS>
@ -901,8 +907,9 @@
<GROUPNAME>supergroup</GROUPNAME> <GROUPNAME>supergroup</GROUPNAME>
<MODE>420</MODE> <MODE>420</MODE>
</PERMISSION_STATUS> </PERMISSION_STATUS>
<RPC_CLIENTID>a4dc081c-6d6f-42d6-af5b-d260228f1aad</RPC_CLIENTID> <ERASURE_CODING_POLICY_ID>0</ERASURE_CODING_POLICY_ID>
<RPC_CALLID>65</RPC_CALLID> <RPC_CLIENTID>cab1aa2d-e08a-4d2f-8216-76e167eccd94</RPC_CLIENTID>
<RPC_CALLID>95</RPC_CALLID>
</DATA> </DATA>
</RECORD> </RECORD>
<RECORD> <RECORD>
@ -974,8 +981,8 @@
<INODEID>0</INODEID> <INODEID>0</INODEID>
<PATH>/file_create</PATH> <PATH>/file_create</PATH>
<REPLICATION>1</REPLICATION> <REPLICATION>1</REPLICATION>
<MTIME>1511309632667</MTIME> <MTIME>1512607197909</MTIME>
<ATIME>1511309632651</ATIME> <ATIME>1512607197885</ATIME>
<BLOCKSIZE>512</BLOCKSIZE> <BLOCKSIZE>512</BLOCKSIZE>
<CLIENT_NAME/> <CLIENT_NAME/>
<CLIENT_MACHINE/> <CLIENT_MACHINE/>
@ -1002,10 +1009,10 @@
<DATA> <DATA>
<TXID>76</TXID> <TXID>76</TXID>
<SRC>/file_create</SRC> <SRC>/file_create</SRC>
<CLIENTNAME>DFSClient_NONMAPREDUCE_2134933941_1</CLIENTNAME> <CLIENTNAME>DFSClient_NONMAPREDUCE_-923924783_1</CLIENTNAME>
<CLIENTMACHINE>127.0.0.1</CLIENTMACHINE> <CLIENTMACHINE>127.0.0.1</CLIENTMACHINE>
<NEWLENGTH>512</NEWLENGTH> <NEWLENGTH>512</NEWLENGTH>
<TIMESTAMP>1511309632671</TIMESTAMP> <TIMESTAMP>1512607197912</TIMESTAMP>
</DATA> </DATA>
</RECORD> </RECORD>
<RECORD> <RECORD>
@ -1016,15 +1023,15 @@
<INODEID>16394</INODEID> <INODEID>16394</INODEID>
<PATH>/file_symlink</PATH> <PATH>/file_symlink</PATH>
<VALUE>/file_concat_target</VALUE> <VALUE>/file_concat_target</VALUE>
<MTIME>1511309632686</MTIME> <MTIME>1512607197921</MTIME>
<ATIME>1511309632686</ATIME> <ATIME>1512607197921</ATIME>
<PERMISSION_STATUS> <PERMISSION_STATUS>
<USERNAME>lei</USERNAME> <USERNAME>lei</USERNAME>
<GROUPNAME>supergroup</GROUPNAME> <GROUPNAME>supergroup</GROUPNAME>
<MODE>511</MODE> <MODE>511</MODE>
</PERMISSION_STATUS> </PERMISSION_STATUS>
<RPC_CLIENTID>a4dc081c-6d6f-42d6-af5b-d260228f1aad</RPC_CLIENTID> <RPC_CLIENTID>cab1aa2d-e08a-4d2f-8216-76e167eccd94</RPC_CLIENTID>
<RPC_CALLID>72</RPC_CALLID> <RPC_CALLID>102</RPC_CALLID>
</DATA> </DATA>
</RECORD> </RECORD>
<RECORD> <RECORD>
@ -1034,11 +1041,11 @@
<LENGTH>0</LENGTH> <LENGTH>0</LENGTH>
<INODEID>16395</INODEID> <INODEID>16395</INODEID>
<PATH>/hard-lease-recovery-test</PATH> <PATH>/hard-lease-recovery-test</PATH>
<REPLICATION>1</REPLICATION> <REPLICATION>3</REPLICATION>
<MTIME>1511309632689</MTIME> <MTIME>1512607197925</MTIME>
<ATIME>1511309632689</ATIME> <ATIME>1512607197925</ATIME>
<BLOCKSIZE>512</BLOCKSIZE> <BLOCKSIZE>512</BLOCKSIZE>
<CLIENT_NAME>DFSClient_NONMAPREDUCE_2134933941_1</CLIENT_NAME> <CLIENT_NAME>DFSClient_NONMAPREDUCE_-923924783_1</CLIENT_NAME>
<CLIENT_MACHINE>127.0.0.1</CLIENT_MACHINE> <CLIENT_MACHINE>127.0.0.1</CLIENT_MACHINE>
<OVERWRITE>true</OVERWRITE> <OVERWRITE>true</OVERWRITE>
<PERMISSION_STATUS> <PERMISSION_STATUS>
@ -1046,8 +1053,9 @@
<GROUPNAME>supergroup</GROUPNAME> <GROUPNAME>supergroup</GROUPNAME>
<MODE>420</MODE> <MODE>420</MODE>
</PERMISSION_STATUS> </PERMISSION_STATUS>
<RPC_CLIENTID>a4dc081c-6d6f-42d6-af5b-d260228f1aad</RPC_CLIENTID> <ERASURE_CODING_POLICY_ID>0</ERASURE_CODING_POLICY_ID>
<RPC_CALLID>73</RPC_CALLID> <RPC_CLIENTID>cab1aa2d-e08a-4d2f-8216-76e167eccd94</RPC_CLIENTID>
<RPC_CALLID>103</RPC_CALLID>
</DATA> </DATA>
</RECORD> </RECORD>
<RECORD> <RECORD>
@ -1103,21 +1111,30 @@
<OPCODE>OP_REASSIGN_LEASE</OPCODE> <OPCODE>OP_REASSIGN_LEASE</OPCODE>
<DATA> <DATA>
<TXID>84</TXID> <TXID>84</TXID>
<LEASEHOLDER>DFSClient_NONMAPREDUCE_2134933941_1</LEASEHOLDER> <LEASEHOLDER>DFSClient_NONMAPREDUCE_-923924783_1</LEASEHOLDER>
<PATH>/hard-lease-recovery-test</PATH> <PATH>/hard-lease-recovery-test</PATH>
<NEWHOLDER>HDFS_NameNode-2017-11-21 16:13:54,700-0800</NEWHOLDER> <NEWHOLDER>HDFS_NameNode-2017-12-06 16:39:59,951-0800</NEWHOLDER>
</DATA>
</RECORD>
<RECORD>
<OPCODE>OP_REASSIGN_LEASE</OPCODE>
<DATA>
<TXID>85</TXID>
<LEASEHOLDER>HDFS_NameNode-2017-12-06 16:39:59,951-0800</LEASEHOLDER>
<PATH>/hard-lease-recovery-test</PATH>
<NEWHOLDER>HDFS_NameNode-2017-12-06 16:40:01,959-0800</NEWHOLDER>
</DATA> </DATA>
</RECORD> </RECORD>
<RECORD> <RECORD>
<OPCODE>OP_CLOSE</OPCODE> <OPCODE>OP_CLOSE</OPCODE>
<DATA> <DATA>
<TXID>85</TXID> <TXID>86</TXID>
<LENGTH>0</LENGTH> <LENGTH>0</LENGTH>
<INODEID>0</INODEID> <INODEID>0</INODEID>
<PATH>/hard-lease-recovery-test</PATH> <PATH>/hard-lease-recovery-test</PATH>
<REPLICATION>1</REPLICATION> <REPLICATION>3</REPLICATION>
<MTIME>1511309634880</MTIME> <MTIME>1512607202974</MTIME>
<ATIME>1511309632689</ATIME> <ATIME>1512607197925</ATIME>
<BLOCKSIZE>512</BLOCKSIZE> <BLOCKSIZE>512</BLOCKSIZE>
<CLIENT_NAME/> <CLIENT_NAME/>
<CLIENT_MACHINE/> <CLIENT_MACHINE/>
@ -1137,7 +1154,7 @@
<RECORD> <RECORD>
<OPCODE>OP_ADD_CACHE_POOL</OPCODE> <OPCODE>OP_ADD_CACHE_POOL</OPCODE>
<DATA> <DATA>
<TXID>86</TXID> <TXID>87</TXID>
<POOLNAME>pool1</POOLNAME> <POOLNAME>pool1</POOLNAME>
<OWNERNAME>lei</OWNERNAME> <OWNERNAME>lei</OWNERNAME>
<GROUPNAME>staff</GROUPNAME> <GROUPNAME>staff</GROUPNAME>
@ -1145,65 +1162,65 @@
<LIMIT>9223372036854775807</LIMIT> <LIMIT>9223372036854775807</LIMIT>
<MAXRELATIVEEXPIRY>2305843009213693951</MAXRELATIVEEXPIRY> <MAXRELATIVEEXPIRY>2305843009213693951</MAXRELATIVEEXPIRY>
<DEFAULTREPLICATION>1</DEFAULTREPLICATION> <DEFAULTREPLICATION>1</DEFAULTREPLICATION>
<RPC_CLIENTID>a4dc081c-6d6f-42d6-af5b-d260228f1aad</RPC_CLIENTID> <RPC_CLIENTID>cab1aa2d-e08a-4d2f-8216-76e167eccd94</RPC_CLIENTID>
<RPC_CALLID>80</RPC_CALLID> <RPC_CALLID>138</RPC_CALLID>
</DATA> </DATA>
</RECORD> </RECORD>
<RECORD> <RECORD>
<OPCODE>OP_MODIFY_CACHE_POOL</OPCODE> <OPCODE>OP_MODIFY_CACHE_POOL</OPCODE>
<DATA> <DATA>
<TXID>87</TXID> <TXID>88</TXID>
<POOLNAME>pool1</POOLNAME> <POOLNAME>pool1</POOLNAME>
<LIMIT>99</LIMIT> <LIMIT>99</LIMIT>
<RPC_CLIENTID>a4dc081c-6d6f-42d6-af5b-d260228f1aad</RPC_CLIENTID> <RPC_CLIENTID>cab1aa2d-e08a-4d2f-8216-76e167eccd94</RPC_CLIENTID>
<RPC_CALLID>81</RPC_CALLID> <RPC_CALLID>139</RPC_CALLID>
</DATA> </DATA>
</RECORD> </RECORD>
<RECORD> <RECORD>
<OPCODE>OP_ADD_CACHE_DIRECTIVE</OPCODE> <OPCODE>OP_ADD_CACHE_DIRECTIVE</OPCODE>
<DATA> <DATA>
<TXID>88</TXID> <TXID>89</TXID>
<ID>1</ID> <ID>1</ID>
<PATH>/path</PATH> <PATH>/path</PATH>
<REPLICATION>1</REPLICATION> <REPLICATION>1</REPLICATION>
<POOL>pool1</POOL> <POOL>pool1</POOL>
<EXPIRATION>2305844520523329692</EXPIRATION> <EXPIRATION>2305844521820897941</EXPIRATION>
<RPC_CLIENTID>a4dc081c-6d6f-42d6-af5b-d260228f1aad</RPC_CLIENTID> <RPC_CLIENTID>cab1aa2d-e08a-4d2f-8216-76e167eccd94</RPC_CLIENTID>
<RPC_CALLID>82</RPC_CALLID> <RPC_CALLID>140</RPC_CALLID>
</DATA> </DATA>
</RECORD> </RECORD>
<RECORD> <RECORD>
<OPCODE>OP_MODIFY_CACHE_DIRECTIVE</OPCODE> <OPCODE>OP_MODIFY_CACHE_DIRECTIVE</OPCODE>
<DATA> <DATA>
<TXID>89</TXID> <TXID>90</TXID>
<ID>1</ID> <ID>1</ID>
<REPLICATION>2</REPLICATION> <REPLICATION>2</REPLICATION>
<RPC_CLIENTID>a4dc081c-6d6f-42d6-af5b-d260228f1aad</RPC_CLIENTID> <RPC_CLIENTID>cab1aa2d-e08a-4d2f-8216-76e167eccd94</RPC_CLIENTID>
<RPC_CALLID>83</RPC_CALLID> <RPC_CALLID>141</RPC_CALLID>
</DATA> </DATA>
</RECORD> </RECORD>
<RECORD> <RECORD>
<OPCODE>OP_REMOVE_CACHE_DIRECTIVE</OPCODE> <OPCODE>OP_REMOVE_CACHE_DIRECTIVE</OPCODE>
<DATA> <DATA>
<TXID>90</TXID> <TXID>91</TXID>
<ID>1</ID> <ID>1</ID>
<RPC_CLIENTID>a4dc081c-6d6f-42d6-af5b-d260228f1aad</RPC_CLIENTID> <RPC_CLIENTID>cab1aa2d-e08a-4d2f-8216-76e167eccd94</RPC_CLIENTID>
<RPC_CALLID>84</RPC_CALLID> <RPC_CALLID>142</RPC_CALLID>
</DATA> </DATA>
</RECORD> </RECORD>
<RECORD> <RECORD>
<OPCODE>OP_REMOVE_CACHE_POOL</OPCODE> <OPCODE>OP_REMOVE_CACHE_POOL</OPCODE>
<DATA> <DATA>
<TXID>91</TXID> <TXID>92</TXID>
<POOLNAME>pool1</POOLNAME> <POOLNAME>pool1</POOLNAME>
<RPC_CLIENTID>a4dc081c-6d6f-42d6-af5b-d260228f1aad</RPC_CLIENTID> <RPC_CLIENTID>cab1aa2d-e08a-4d2f-8216-76e167eccd94</RPC_CLIENTID>
<RPC_CALLID>85</RPC_CALLID> <RPC_CALLID>143</RPC_CALLID>
</DATA> </DATA>
</RECORD> </RECORD>
<RECORD> <RECORD>
<OPCODE>OP_SET_ACL</OPCODE> <OPCODE>OP_SET_ACL</OPCODE>
<DATA> <DATA>
<TXID>92</TXID> <TXID>93</TXID>
<SRC>/file_concat_target</SRC> <SRC>/file_concat_target</SRC>
<ENTRY> <ENTRY>
<SCOPE>ACCESS</SCOPE> <SCOPE>ACCESS</SCOPE>
@ -1236,55 +1253,42 @@
<RECORD> <RECORD>
<OPCODE>OP_SET_XATTR</OPCODE> <OPCODE>OP_SET_XATTR</OPCODE>
<DATA> <DATA>
<TXID>93</TXID> <TXID>94</TXID>
<SRC>/file_concat_target</SRC> <SRC>/file_concat_target</SRC>
<XATTR> <XATTR>
<NAMESPACE>USER</NAMESPACE> <NAMESPACE>USER</NAMESPACE>
<NAME>a1</NAME> <NAME>a1</NAME>
<VALUE>0x313233</VALUE> <VALUE>0x313233</VALUE>
</XATTR> </XATTR>
<RPC_CLIENTID>a4dc081c-6d6f-42d6-af5b-d260228f1aad</RPC_CLIENTID> <RPC_CLIENTID>cab1aa2d-e08a-4d2f-8216-76e167eccd94</RPC_CLIENTID>
<RPC_CALLID>87</RPC_CALLID> <RPC_CALLID>145</RPC_CALLID>
</DATA> </DATA>
</RECORD> </RECORD>
<RECORD> <RECORD>
<OPCODE>OP_SET_XATTR</OPCODE> <OPCODE>OP_SET_XATTR</OPCODE>
<DATA>
<TXID>94</TXID>
<SRC>/file_concat_target</SRC>
<XATTR>
<NAMESPACE>USER</NAMESPACE>
<NAME>a2</NAME>
<VALUE>0x373839</VALUE>
</XATTR>
<RPC_CLIENTID>a4dc081c-6d6f-42d6-af5b-d260228f1aad</RPC_CLIENTID>
<RPC_CALLID>88</RPC_CALLID>
</DATA>
</RECORD>
<RECORD>
<OPCODE>OP_REMOVE_XATTR</OPCODE>
<DATA> <DATA>
<TXID>95</TXID> <TXID>95</TXID>
<SRC>/file_concat_target</SRC> <SRC>/file_concat_target</SRC>
<XATTR> <XATTR>
<NAMESPACE>USER</NAMESPACE> <NAMESPACE>USER</NAMESPACE>
<NAME>a2</NAME> <NAME>a2</NAME>
<VALUE>0x373839</VALUE>
</XATTR> </XATTR>
<RPC_CLIENTID>a4dc081c-6d6f-42d6-af5b-d260228f1aad</RPC_CLIENTID> <RPC_CLIENTID>cab1aa2d-e08a-4d2f-8216-76e167eccd94</RPC_CLIENTID>
<RPC_CALLID>89</RPC_CALLID> <RPC_CALLID>146</RPC_CALLID>
</DATA> </DATA>
</RECORD> </RECORD>
<RECORD> <RECORD>
<OPCODE>OP_ADD_ERASURE_CODING_POLICY</OPCODE> <OPCODE>OP_REMOVE_XATTR</OPCODE>
<DATA> <DATA>
<TXID>96</TXID> <TXID>96</TXID>
<CODEC>rs</CODEC> <SRC>/file_concat_target</SRC>
<DATAUNITS>3</DATAUNITS> <XATTR>
<PARITYUNITS>2</PARITYUNITS> <NAMESPACE>USER</NAMESPACE>
<CELLSIZE>8192</CELLSIZE> <NAME>a2</NAME>
<EXTRAOPTIONS>0</EXTRAOPTIONS> </XATTR>
<RPC_CLIENTID>a4dc081c-6d6f-42d6-af5b-d260228f1aad</RPC_CLIENTID> <RPC_CLIENTID>cab1aa2d-e08a-4d2f-8216-76e167eccd94</RPC_CLIENTID>
<RPC_CALLID>90</RPC_CALLID> <RPC_CALLID>147</RPC_CALLID>
</DATA> </DATA>
</RECORD> </RECORD>
<RECORD> <RECORD>
@ -1292,6 +1296,19 @@
<DATA> <DATA>
<TXID>97</TXID> <TXID>97</TXID>
<CODEC>rs</CODEC> <CODEC>rs</CODEC>
<DATAUNITS>3</DATAUNITS>
<PARITYUNITS>2</PARITYUNITS>
<CELLSIZE>8192</CELLSIZE>
<EXTRAOPTIONS>0</EXTRAOPTIONS>
<RPC_CLIENTID>cab1aa2d-e08a-4d2f-8216-76e167eccd94</RPC_CLIENTID>
<RPC_CALLID>148</RPC_CALLID>
</DATA>
</RECORD>
<RECORD>
<OPCODE>OP_ADD_ERASURE_CODING_POLICY</OPCODE>
<DATA>
<TXID>98</TXID>
<CODEC>rs</CODEC>
<DATAUNITS>6</DATAUNITS> <DATAUNITS>6</DATAUNITS>
<PARITYUNITS>10</PARITYUNITS> <PARITYUNITS>10</PARITYUNITS>
<CELLSIZE>4096</CELLSIZE> <CELLSIZE>4096</CELLSIZE>
@ -1300,82 +1317,285 @@
<KEY>dummyKey</KEY> <KEY>dummyKey</KEY>
<VALUE>dummyValue</VALUE> <VALUE>dummyValue</VALUE>
</EXTRAOPTION> </EXTRAOPTION>
<RPC_CLIENTID>a4dc081c-6d6f-42d6-af5b-d260228f1aad</RPC_CLIENTID> <RPC_CLIENTID>cab1aa2d-e08a-4d2f-8216-76e167eccd94</RPC_CLIENTID>
<RPC_CALLID>91</RPC_CALLID> <RPC_CALLID>149</RPC_CALLID>
</DATA>
</RECORD>
<RECORD>
<OPCODE>OP_ENABLE_ERASURE_CODING_POLICY</OPCODE>
<DATA>
<TXID>98</TXID>
<POLICYNAME>RS-3-2-8k</POLICYNAME>
<RPC_CLIENTID>a4dc081c-6d6f-42d6-af5b-d260228f1aad</RPC_CLIENTID>
<RPC_CALLID>92</RPC_CALLID>
</DATA> </DATA>
</RECORD> </RECORD>
<RECORD> <RECORD>
<OPCODE>OP_ENABLE_ERASURE_CODING_POLICY</OPCODE> <OPCODE>OP_ENABLE_ERASURE_CODING_POLICY</OPCODE>
<DATA> <DATA>
<TXID>99</TXID> <TXID>99</TXID>
<POLICYNAME>RS-6-10-4k</POLICYNAME> <POLICYNAME>RS-3-2-8k</POLICYNAME>
<RPC_CLIENTID>a4dc081c-6d6f-42d6-af5b-d260228f1aad</RPC_CLIENTID> <RPC_CLIENTID>cab1aa2d-e08a-4d2f-8216-76e167eccd94</RPC_CLIENTID>
<RPC_CALLID>93</RPC_CALLID> <RPC_CALLID>150</RPC_CALLID>
</DATA> </DATA>
</RECORD> </RECORD>
<RECORD> <RECORD>
<OPCODE>OP_DISABLE_ERASURE_CODING_POLICY</OPCODE> <OPCODE>OP_ENABLE_ERASURE_CODING_POLICY</OPCODE>
<DATA> <DATA>
<TXID>100</TXID> <TXID>100</TXID>
<POLICYNAME>RS-3-2-8k</POLICYNAME> <POLICYNAME>RS-6-10-4k</POLICYNAME>
<RPC_CLIENTID>a4dc081c-6d6f-42d6-af5b-d260228f1aad</RPC_CLIENTID> <RPC_CLIENTID>cab1aa2d-e08a-4d2f-8216-76e167eccd94</RPC_CLIENTID>
<RPC_CALLID>94</RPC_CALLID> <RPC_CALLID>151</RPC_CALLID>
</DATA> </DATA>
</RECORD> </RECORD>
<RECORD> <RECORD>
<OPCODE>OP_DISABLE_ERASURE_CODING_POLICY</OPCODE> <OPCODE>OP_DISABLE_ERASURE_CODING_POLICY</OPCODE>
<DATA> <DATA>
<TXID>101</TXID> <TXID>101</TXID>
<POLICYNAME>RS-6-10-4k</POLICYNAME> <POLICYNAME>RS-3-2-8k</POLICYNAME>
<RPC_CLIENTID>a4dc081c-6d6f-42d6-af5b-d260228f1aad</RPC_CLIENTID> <RPC_CLIENTID>cab1aa2d-e08a-4d2f-8216-76e167eccd94</RPC_CLIENTID>
<RPC_CALLID>95</RPC_CALLID> <RPC_CALLID>152</RPC_CALLID>
</DATA> </DATA>
</RECORD> </RECORD>
<RECORD> <RECORD>
<OPCODE>OP_REMOVE_ERASURE_CODING_POLICY</OPCODE> <OPCODE>OP_DISABLE_ERASURE_CODING_POLICY</OPCODE>
<DATA> <DATA>
<TXID>102</TXID> <TXID>102</TXID>
<POLICYNAME>RS-3-2-8k</POLICYNAME> <POLICYNAME>RS-6-10-4k</POLICYNAME>
<RPC_CLIENTID>a4dc081c-6d6f-42d6-af5b-d260228f1aad</RPC_CLIENTID> <RPC_CLIENTID>cab1aa2d-e08a-4d2f-8216-76e167eccd94</RPC_CLIENTID>
<RPC_CALLID>96</RPC_CALLID> <RPC_CALLID>153</RPC_CALLID>
</DATA> </DATA>
</RECORD> </RECORD>
<RECORD> <RECORD>
<OPCODE>OP_REMOVE_ERASURE_CODING_POLICY</OPCODE> <OPCODE>OP_REMOVE_ERASURE_CODING_POLICY</OPCODE>
<DATA> <DATA>
<TXID>103</TXID> <TXID>103</TXID>
<POLICYNAME>RS-3-2-8k</POLICYNAME>
<RPC_CLIENTID>cab1aa2d-e08a-4d2f-8216-76e167eccd94</RPC_CLIENTID>
<RPC_CALLID>154</RPC_CALLID>
</DATA>
</RECORD>
<RECORD>
<OPCODE>OP_REMOVE_ERASURE_CODING_POLICY</OPCODE>
<DATA>
<TXID>104</TXID>
<POLICYNAME>RS-6-10-4k</POLICYNAME> <POLICYNAME>RS-6-10-4k</POLICYNAME>
<RPC_CLIENTID>a4dc081c-6d6f-42d6-af5b-d260228f1aad</RPC_CLIENTID> <RPC_CLIENTID>cab1aa2d-e08a-4d2f-8216-76e167eccd94</RPC_CLIENTID>
<RPC_CALLID>97</RPC_CALLID> <RPC_CALLID>155</RPC_CALLID>
</DATA>
</RECORD>
<RECORD>
<OPCODE>OP_MKDIR</OPCODE>
<DATA>
<TXID>105</TXID>
<LENGTH>0</LENGTH>
<INODEID>16396</INODEID>
<PATH>/ec</PATH>
<TIMESTAMP>1512607204077</TIMESTAMP>
<PERMISSION_STATUS>
<USERNAME>lei</USERNAME>
<GROUPNAME>supergroup</GROUPNAME>
<MODE>493</MODE>
</PERMISSION_STATUS>
</DATA>
</RECORD>
<RECORD>
<OPCODE>OP_ENABLE_ERASURE_CODING_POLICY</OPCODE>
<DATA>
<TXID>106</TXID>
<POLICYNAME>RS-3-2-1024k</POLICYNAME>
<RPC_CLIENTID>cab1aa2d-e08a-4d2f-8216-76e167eccd94</RPC_CLIENTID>
<RPC_CALLID>157</RPC_CALLID>
</DATA>
</RECORD>
<RECORD>
<OPCODE>OP_ENABLE_ERASURE_CODING_POLICY</OPCODE>
<DATA>
<TXID>107</TXID>
<POLICYNAME>RS-6-3-1024k</POLICYNAME>
<RPC_CLIENTID>cab1aa2d-e08a-4d2f-8216-76e167eccd94</RPC_CLIENTID>
<RPC_CALLID>158</RPC_CALLID>
</DATA>
</RECORD>
<RECORD>
<OPCODE>OP_SET_XATTR</OPCODE>
<DATA>
<TXID>108</TXID>
<SRC>/ec</SRC>
<XATTR>
<NAMESPACE>SYSTEM</NAMESPACE>
<NAME>hdfs.erasurecoding.policy</NAME>
<VALUE>0x0000000c52532d362d332d313032346b</VALUE>
</XATTR>
<RPC_CLIENTID>cab1aa2d-e08a-4d2f-8216-76e167eccd94</RPC_CLIENTID>
<RPC_CALLID>159</RPC_CALLID>
</DATA>
</RECORD>
<RECORD>
<OPCODE>OP_ADD</OPCODE>
<DATA>
<TXID>109</TXID>
<LENGTH>0</LENGTH>
<INODEID>16397</INODEID>
<PATH>/ec/replicated</PATH>
<REPLICATION>3</REPLICATION>
<MTIME>1512607204088</MTIME>
<ATIME>1512607204088</ATIME>
<BLOCKSIZE>512</BLOCKSIZE>
<CLIENT_NAME>DFSClient_NONMAPREDUCE_-923924783_1</CLIENT_NAME>
<CLIENT_MACHINE>127.0.0.1</CLIENT_MACHINE>
<OVERWRITE>true</OVERWRITE>
<PERMISSION_STATUS>
<USERNAME>lei</USERNAME>
<GROUPNAME>supergroup</GROUPNAME>
<MODE>420</MODE>
</PERMISSION_STATUS>
<ERASURE_CODING_POLICY_ID>0</ERASURE_CODING_POLICY_ID>
<RPC_CLIENTID>cab1aa2d-e08a-4d2f-8216-76e167eccd94</RPC_CLIENTID>
<RPC_CALLID>160</RPC_CALLID>
</DATA>
</RECORD>
<RECORD>
<OPCODE>OP_ALLOCATE_BLOCK_ID</OPCODE>
<DATA>
<TXID>110</TXID>
<BLOCK_ID>1073741838</BLOCK_ID>
</DATA>
</RECORD>
<RECORD>
<OPCODE>OP_SET_GENSTAMP_V2</OPCODE>
<DATA>
<TXID>111</TXID>
<GENSTAMPV2>1015</GENSTAMPV2>
</DATA>
</RECORD>
<RECORD>
<OPCODE>OP_ADD_BLOCK</OPCODE>
<DATA>
<TXID>112</TXID>
<PATH>/ec/replicated</PATH>
<BLOCK>
<BLOCK_ID>1073741838</BLOCK_ID>
<NUM_BYTES>0</NUM_BYTES>
<GENSTAMP>1015</GENSTAMP>
</BLOCK>
<RPC_CLIENTID/>
<RPC_CALLID>-2</RPC_CALLID>
</DATA>
</RECORD>
<RECORD>
<OPCODE>OP_CLOSE</OPCODE>
<DATA>
<TXID>113</TXID>
<LENGTH>0</LENGTH>
<INODEID>0</INODEID>
<PATH>/ec/replicated</PATH>
<REPLICATION>3</REPLICATION>
<MTIME>1512607204118</MTIME>
<ATIME>1512607204088</ATIME>
<BLOCKSIZE>512</BLOCKSIZE>
<CLIENT_NAME/>
<CLIENT_MACHINE/>
<OVERWRITE>false</OVERWRITE>
<BLOCK>
<BLOCK_ID>1073741838</BLOCK_ID>
<NUM_BYTES>10</NUM_BYTES>
<GENSTAMP>1015</GENSTAMP>
</BLOCK>
<PERMISSION_STATUS>
<USERNAME>lei</USERNAME>
<GROUPNAME>supergroup</GROUPNAME>
<MODE>420</MODE>
</PERMISSION_STATUS>
</DATA>
</RECORD>
<RECORD>
<OPCODE>OP_ADD</OPCODE>
<DATA>
<TXID>114</TXID>
<LENGTH>0</LENGTH>
<INODEID>16398</INODEID>
<PATH>/ec/RS-3-2</PATH>
<REPLICATION>1</REPLICATION>
<MTIME>1512607204120</MTIME>
<ATIME>1512607204120</ATIME>
<BLOCKSIZE>512</BLOCKSIZE>
<CLIENT_NAME>DFSClient_NONMAPREDUCE_-923924783_1</CLIENT_NAME>
<CLIENT_MACHINE>127.0.0.1</CLIENT_MACHINE>
<OVERWRITE>true</OVERWRITE>
<PERMISSION_STATUS>
<USERNAME>lei</USERNAME>
<GROUPNAME>supergroup</GROUPNAME>
<MODE>420</MODE>
</PERMISSION_STATUS>
<ERASURE_CODING_POLICY_ID>2</ERASURE_CODING_POLICY_ID>
<RPC_CLIENTID>cab1aa2d-e08a-4d2f-8216-76e167eccd94</RPC_CLIENTID>
<RPC_CALLID>166</RPC_CALLID>
</DATA>
</RECORD>
<RECORD>
<OPCODE>OP_ALLOCATE_BLOCK_ID</OPCODE>
<DATA>
<TXID>115</TXID>
<BLOCK_ID>-9223372036854775792</BLOCK_ID>
</DATA>
</RECORD>
<RECORD>
<OPCODE>OP_SET_GENSTAMP_V2</OPCODE>
<DATA>
<TXID>116</TXID>
<GENSTAMPV2>1016</GENSTAMPV2>
</DATA>
</RECORD>
<RECORD>
<OPCODE>OP_ADD_BLOCK</OPCODE>
<DATA>
<TXID>117</TXID>
<PATH>/ec/RS-3-2</PATH>
<BLOCK>
<BLOCK_ID>-9223372036854775792</BLOCK_ID>
<NUM_BYTES>0</NUM_BYTES>
<GENSTAMP>1016</GENSTAMP>
</BLOCK>
<RPC_CLIENTID/>
<RPC_CALLID>-2</RPC_CALLID>
</DATA>
</RECORD>
<RECORD>
<OPCODE>OP_CLOSE</OPCODE>
<DATA>
<TXID>118</TXID>
<LENGTH>0</LENGTH>
<INODEID>0</INODEID>
<PATH>/ec/RS-3-2</PATH>
<REPLICATION>1</REPLICATION>
<MTIME>1512607204229</MTIME>
<ATIME>1512607204120</ATIME>
<BLOCKSIZE>512</BLOCKSIZE>
<CLIENT_NAME/>
<CLIENT_MACHINE/>
<OVERWRITE>false</OVERWRITE>
<BLOCK>
<BLOCK_ID>-9223372036854775792</BLOCK_ID>
<NUM_BYTES>6</NUM_BYTES>
<GENSTAMP>1016</GENSTAMP>
</BLOCK>
<PERMISSION_STATUS>
<USERNAME>lei</USERNAME>
<GROUPNAME>supergroup</GROUPNAME>
<MODE>420</MODE>
</PERMISSION_STATUS>
</DATA> </DATA>
</RECORD> </RECORD>
<RECORD> <RECORD>
<OPCODE>OP_ROLLING_UPGRADE_START</OPCODE> <OPCODE>OP_ROLLING_UPGRADE_START</OPCODE>
<DATA> <DATA>
<TXID>104</TXID> <TXID>119</TXID>
<STARTTIME>1511309635904</STARTTIME> <STARTTIME>1512607204230</STARTTIME>
</DATA> </DATA>
</RECORD> </RECORD>
<RECORD> <RECORD>
<OPCODE>OP_ROLLING_UPGRADE_FINALIZE</OPCODE> <OPCODE>OP_ROLLING_UPGRADE_FINALIZE</OPCODE>
<DATA> <DATA>
<TXID>105</TXID> <TXID>120</TXID>
<FINALIZETIME>1511309635904</FINALIZETIME> <FINALIZETIME>1512607204233</FINALIZETIME>
</DATA> </DATA>
</RECORD> </RECORD>
<RECORD> <RECORD>
<OPCODE>OP_END_LOG_SEGMENT</OPCODE> <OPCODE>OP_END_LOG_SEGMENT</OPCODE>
<DATA> <DATA>
<TXID>106</TXID> <TXID>121</TXID>
</DATA> </DATA>
</RECORD> </RECORD>
</EDITS> </EDITS>