HDFS-5775. Merge change r1558599 from trunk.
git-svn-id: https://svn.apache.org/repos/asf/hadoop/common/branches/branch-2@1568451 13f79535-47bb-0310-9956-ffa450edef68
This commit is contained in:
parent
8f9e6d8fa0
commit
696859201f
|
@ -66,6 +66,9 @@ Release 2.4.0 - UNRELEASED
|
|||
HDFS-5768. Consolidate the serialization code in DelegationTokenSecretManager
|
||||
(Haohui Mai via brandonli)
|
||||
|
||||
HDFS-5775. Consolidate the code for serialization in CacheManager
|
||||
(Haohui Mai via brandonli)
|
||||
|
||||
OPTIMIZATIONS
|
||||
|
||||
HDFS-5790. LeaseManager.findPath is very slow when many leases need recovery
|
||||
|
|
|
@ -160,6 +160,8 @@ public final class CacheManager {
|
|||
*/
|
||||
private final ReentrantLock crmLock = new ReentrantLock();
|
||||
|
||||
private final SerializerCompat serializerCompat = new SerializerCompat();
|
||||
|
||||
/**
|
||||
* The CacheReplicationMonitor.
|
||||
*/
|
||||
|
@ -937,11 +939,9 @@ public final class CacheManager {
|
|||
* @param sdPath path of the storage directory
|
||||
* @throws IOException
|
||||
*/
|
||||
public void saveState(DataOutputStream out, String sdPath)
|
||||
public void saveStateCompat(DataOutputStream out, String sdPath)
|
||||
throws IOException {
|
||||
out.writeLong(nextDirectiveId);
|
||||
savePools(out, sdPath);
|
||||
saveDirectives(out, sdPath);
|
||||
serializerCompat.save(out, sdPath);
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -950,7 +950,18 @@ public final class CacheManager {
|
|||
* @param in DataInput from which to restore state
|
||||
* @throws IOException
|
||||
*/
|
||||
public void loadState(DataInput in) throws IOException {
|
||||
public void loadStateCompat(DataInput in) throws IOException {
|
||||
serializerCompat.load(in);
|
||||
}
|
||||
|
||||
private final class SerializerCompat {
|
||||
private void save(DataOutputStream out, String sdPath) throws IOException {
|
||||
out.writeLong(nextDirectiveId);
|
||||
savePools(out, sdPath);
|
||||
saveDirectives(out, sdPath);
|
||||
}
|
||||
|
||||
private void load(DataInput in) throws IOException {
|
||||
nextDirectiveId = in.readLong();
|
||||
// pools need to be loaded first since directives point to their parent pool
|
||||
loadPools(in);
|
||||
|
@ -1050,6 +1061,7 @@ public final class CacheManager {
|
|||
}
|
||||
prog.endStep(Phase.LOADING_FSIMAGE, step);
|
||||
}
|
||||
}
|
||||
|
||||
public void waitForRescanIfNeeded() {
|
||||
crmLock.lock();
|
||||
|
|
|
@ -897,7 +897,7 @@ public class FSImageFormat {
|
|||
if (!LayoutVersion.supports(Feature.CACHING, imgVersion)) {
|
||||
return;
|
||||
}
|
||||
namesystem.getCacheManager().loadState(in);
|
||||
namesystem.getCacheManager().loadStateCompat(in);
|
||||
}
|
||||
|
||||
private int getLayoutVersion() {
|
||||
|
@ -1203,7 +1203,7 @@ public class FSImageFormat {
|
|||
context.checkCancelled();
|
||||
sourceNamesystem.saveSecretManagerStateCompat(out, sdPath);
|
||||
context.checkCancelled();
|
||||
sourceNamesystem.getCacheManager().saveState(out, sdPath);
|
||||
sourceNamesystem.getCacheManager().saveStateCompat(out, sdPath);
|
||||
context.checkCancelled();
|
||||
out.flush();
|
||||
context.checkCancelled();
|
||||
|
|
Loading…
Reference in New Issue