You are viewing a plain text version of this content. The canonical link for it is here.
Posted to common-commits@hadoop.apache.org by ra...@apache.org on 2018/01/24 07:32:31 UTC
[36/50] [abbrv] hadoop git commit: HDFS-12556: [SPS] : Block movement
analysis should be done in read lock.
HDFS-12556: [SPS] : Block movement analysis should be done in read lock.
Project: http://git-wip-us.apache.org/repos/asf/hadoop/repo
Commit: http://git-wip-us.apache.org/repos/asf/hadoop/commit/9318ad9b
Tree: http://git-wip-us.apache.org/repos/asf/hadoop/tree/9318ad9b
Diff: http://git-wip-us.apache.org/repos/asf/hadoop/diff/9318ad9b
Branch: refs/heads/HDFS-10285
Commit: 9318ad9b2a3ada4e9358e7d9ae4d39748876936f
Parents: 8fb4a3d
Author: Surendra Singh Lilhore <su...@apache.org>
Authored: Sat Oct 14 15:11:26 2017 +0530
Committer: Rakesh Radhakrishnan <ra...@apache.org>
Committed: Wed Jan 24 11:23:21 2018 +0530
----------------------------------------------------------------------
.../server/namenode/StoragePolicySatisfier.java | 27 +++++++++++++-------
.../TestPersistentStoragePolicySatisfier.java | 2 +-
2 files changed, 19 insertions(+), 10 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/hadoop/blob/9318ad9b/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/namenode/StoragePolicySatisfier.java
----------------------------------------------------------------------
diff --git a/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/namenode/StoragePolicySatisfier.java b/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/namenode/StoragePolicySatisfier.java
index a28a806..cbfba44 100644
--- a/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/namenode/StoragePolicySatisfier.java
+++ b/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/namenode/StoragePolicySatisfier.java
@@ -242,12 +242,25 @@ public class StoragePolicySatisfier implements Runnable {
ItemInfo itemInfo = storageMovementNeeded.get();
if (itemInfo != null) {
long trackId = itemInfo.getTrackId();
- BlockCollection blockCollection =
- namesystem.getBlockCollection(trackId);
- // Check blockCollectionId existence.
+ BlockCollection blockCollection;
+ BlocksMovingAnalysis status = null;
+ try {
+ namesystem.readLock();
+ blockCollection = namesystem.getBlockCollection(trackId);
+ // Check blockCollectionId existence.
+ if (blockCollection == null) {
+ // File doesn't exists (maybe got deleted), remove trackId from
+ // the queue
+ storageMovementNeeded.removeItemTrackInfo(itemInfo);
+ } else {
+ status =
+ analyseBlocksStorageMovementsAndAssignToDN(
+ blockCollection);
+ }
+ } finally {
+ namesystem.readUnlock();
+ }
if (blockCollection != null) {
- BlocksMovingAnalysis status =
- analyseBlocksStorageMovementsAndAssignToDN(blockCollection);
switch (status.status) {
// Just add to monitor, so it will be retried after timeout
case ANALYSIS_SKIPPED_FOR_RETRY:
@@ -283,10 +296,6 @@ public class StoragePolicySatisfier implements Runnable {
storageMovementNeeded.removeItemTrackInfo(itemInfo);
break;
}
- } else {
- // File doesn't exists (maybe got deleted), remove trackId from
- // the queue
- storageMovementNeeded.removeItemTrackInfo(itemInfo);
}
}
}
http://git-wip-us.apache.org/repos/asf/hadoop/blob/9318ad9b/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/server/namenode/TestPersistentStoragePolicySatisfier.java
----------------------------------------------------------------------
diff --git a/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/server/namenode/TestPersistentStoragePolicySatisfier.java b/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/server/namenode/TestPersistentStoragePolicySatisfier.java
index 5bce296..7165d06 100644
--- a/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/server/namenode/TestPersistentStoragePolicySatisfier.java
+++ b/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/server/namenode/TestPersistentStoragePolicySatisfier.java
@@ -72,7 +72,7 @@ public class TestPersistentStoragePolicySatisfier {
{StorageType.DISK, StorageType.ARCHIVE, StorageType.SSD}
};
- private final int timeout = 300000;
+ private final int timeout = 90000;
/**
* Setup environment for every test case.
---------------------------------------------------------------------
To unsubscribe, e-mail: common-commits-unsubscribe@hadoop.apache.org
For additional commands, e-mail: common-commits-help@hadoop.apache.org