HDFS-15848. Snapshot Operations: Add debug logs at the entry point. Contributed by Bhavik Patel.
This commit is contained in:
parent
0f6ba5e031
commit
ecd3335187
@ -36,6 +36,8 @@
|
|||||||
import org.apache.hadoop.hdfs.util.ReadOnlyList;
|
import org.apache.hadoop.hdfs.util.ReadOnlyList;
|
||||||
import org.apache.hadoop.util.ChunkedArrayList;
|
import org.apache.hadoop.util.ChunkedArrayList;
|
||||||
import org.apache.hadoop.util.Time;
|
import org.apache.hadoop.util.Time;
|
||||||
|
import org.slf4j.Logger;
|
||||||
|
import org.slf4j.LoggerFactory;
|
||||||
|
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
@ -43,6 +45,9 @@
|
|||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
class FSDirSnapshotOp {
|
class FSDirSnapshotOp {
|
||||||
|
public static final Logger LOG =
|
||||||
|
LoggerFactory.getLogger(FSDirSnapshotOp.class);
|
||||||
|
|
||||||
/** Verify if the snapshot name is legal. */
|
/** Verify if the snapshot name is legal. */
|
||||||
static void verifySnapshotName(FSDirectory fsd, String snapshotName,
|
static void verifySnapshotName(FSDirectory fsd, String snapshotName,
|
||||||
String path)
|
String path)
|
||||||
@ -118,7 +123,7 @@ static String createSnapshot(
|
|||||||
}
|
}
|
||||||
fsd.getEditLog().logCreateSnapshot(snapshotRoot, snapshotName,
|
fsd.getEditLog().logCreateSnapshot(snapshotRoot, snapshotName,
|
||||||
logRetryCache, now);
|
logRetryCache, now);
|
||||||
|
LOG.info("Created Snapshot for SnapshotRoot {}", snapshotRoot);
|
||||||
return snapshotPath;
|
return snapshotPath;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -141,6 +146,8 @@ static void renameSnapshot(FSDirectory fsd, FSPermissionChecker pc,
|
|||||||
}
|
}
|
||||||
fsd.getEditLog().logRenameSnapshot(path, snapshotOldName,
|
fsd.getEditLog().logRenameSnapshot(path, snapshotOldName,
|
||||||
snapshotNewName, logRetryCache, now);
|
snapshotNewName, logRetryCache, now);
|
||||||
|
LOG.info("Snapshot renamed from {} to {} for SnapshotRoot {}",
|
||||||
|
snapshotOldName, snapshotNewName, path);
|
||||||
}
|
}
|
||||||
|
|
||||||
static SnapshottableDirectoryStatus[] getSnapshottableDirListing(
|
static SnapshottableDirectoryStatus[] getSnapshottableDirListing(
|
||||||
@ -271,6 +278,8 @@ static INode.BlocksMapUpdateInfo deleteSnapshot(
|
|||||||
final INode.BlocksMapUpdateInfo collectedBlocks = deleteSnapshot(
|
final INode.BlocksMapUpdateInfo collectedBlocks = deleteSnapshot(
|
||||||
fsd, snapshotManager, iip, snapshotName, now, snapshotRoot,
|
fsd, snapshotManager, iip, snapshotName, now, snapshotRoot,
|
||||||
logRetryCache);
|
logRetryCache);
|
||||||
|
LOG.info("Snapshot {} deleted for SnapshotRoot {}",
|
||||||
|
snapshotName, snapshotName);
|
||||||
return collectedBlocks;
|
return collectedBlocks;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1899,6 +1899,8 @@ public DataEncryptionKey getDataEncryptionKey() throws IOException {
|
|||||||
public String createSnapshot(String snapshotRoot, String snapshotName)
|
public String createSnapshot(String snapshotRoot, String snapshotName)
|
||||||
throws IOException {
|
throws IOException {
|
||||||
checkNNStartup();
|
checkNNStartup();
|
||||||
|
LOG.debug("*DIR* NameNode.createSnapshot: Path {} and SnapshotName {}",
|
||||||
|
snapshotRoot, snapshotName);
|
||||||
if (!checkPathLength(snapshotRoot)) {
|
if (!checkPathLength(snapshotRoot)) {
|
||||||
throw new IOException("createSnapshot: Pathname too long. Limit "
|
throw new IOException("createSnapshot: Pathname too long. Limit "
|
||||||
+ MAX_PATH_LENGTH + " characters, " + MAX_PATH_DEPTH + " levels.");
|
+ MAX_PATH_LENGTH + " characters, " + MAX_PATH_DEPTH + " levels.");
|
||||||
@ -1925,6 +1927,8 @@ public String createSnapshot(String snapshotRoot, String snapshotName)
|
|||||||
public void deleteSnapshot(String snapshotRoot, String snapshotName)
|
public void deleteSnapshot(String snapshotRoot, String snapshotName)
|
||||||
throws IOException {
|
throws IOException {
|
||||||
checkNNStartup();
|
checkNNStartup();
|
||||||
|
LOG.debug("*DIR* NameNode.deleteSnapshot: Path {} and SnapshotName {}",
|
||||||
|
snapshotRoot, snapshotName);
|
||||||
if (snapshotName == null || snapshotName.isEmpty()) {
|
if (snapshotName == null || snapshotName.isEmpty()) {
|
||||||
throw new IOException("The snapshot name is null or empty.");
|
throw new IOException("The snapshot name is null or empty.");
|
||||||
}
|
}
|
||||||
@ -1964,6 +1968,9 @@ public void disallowSnapshot(String snapshot) throws IOException {
|
|||||||
public void renameSnapshot(String snapshotRoot, String snapshotOldName,
|
public void renameSnapshot(String snapshotRoot, String snapshotOldName,
|
||||||
String snapshotNewName) throws IOException {
|
String snapshotNewName) throws IOException {
|
||||||
checkNNStartup();
|
checkNNStartup();
|
||||||
|
LOG.debug("*DIR* NameNode.renameSnapshot: Snapshot Path {}, " +
|
||||||
|
"snapshotOldName {}, snapshotNewName {}", snapshotRoot,
|
||||||
|
snapshotOldName, snapshotNewName);
|
||||||
if (snapshotNewName == null || snapshotNewName.isEmpty()) {
|
if (snapshotNewName == null || snapshotNewName.isEmpty()) {
|
||||||
throw new IOException("The new snapshot name is null or empty.");
|
throw new IOException("The new snapshot name is null or empty.");
|
||||||
}
|
}
|
||||||
|
@ -457,7 +457,8 @@ public String createSnapshot(final LeaseManager leaseManager,
|
|||||||
// requests.
|
// requests.
|
||||||
throw new SnapshotException(
|
throw new SnapshotException(
|
||||||
"Failed to create the snapshot. The FileSystem has run out of " +
|
"Failed to create the snapshot. The FileSystem has run out of " +
|
||||||
"snapshot IDs and ID rollover is not supported.");
|
"snapshot IDs and ID rollover is not supported " +
|
||||||
|
"and the max snapshot limit is: " + maxSnapshotLimit);
|
||||||
}
|
}
|
||||||
int n = numSnapshots.get();
|
int n = numSnapshots.get();
|
||||||
checkFileSystemSnapshotLimit(n);
|
checkFileSystemSnapshotLimit(n);
|
||||||
|
Loading…
x
Reference in New Issue
Block a user