Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -181,40 +181,38 @@ public static void logReconciled(ContainerData containerData, long oldDataChecks
/**
* Logged when a container is successfully moved from one data volume to another.
*
* @param containerId The ID of the moved container.
* @param containerData The container after it has been moved to the destination volume.
* @param sourceVolume The source volume path.
* @param destinationVolume The destination volume path.
* @param containerSize The size of data moved from container in bytes.
* @param timeTaken The time taken for the move in milliseconds.
*/
public static void logMoveSuccess(long containerId, StorageVolume sourceVolume,
public static void logMoveSuccess(ContainerData containerData, StorageVolume sourceVolume,
StorageVolume destinationVolume, long containerSize, long timeTaken) {
LOG.info(getMessage(containerId, sourceVolume, destinationVolume, containerSize, timeTaken));
LOG.info(getMessage(containerData,
"SrcVolume=" + sourceVolume,
"DestVolume=" + destinationVolume,
"Size=" + containerSize + " bytes",
"TimeTaken=" + timeTaken + " ms",
"Container is moved from SrcVolume to DestVolume"));
}
Comment thread
Gargi-jais11 marked this conversation as resolved.

private static String getMessage(ContainerData containerData,
String message) {
private static String getMessage(ContainerData containerData, String message) {
return String.join(FIELD_SEPARATOR, getMessage(containerData), message);
}

private static String getMessage(ContainerData containerData) {
private static String getMessage(ContainerData containerData, String... fields) {
return String.join(FIELD_SEPARATOR,
"ID=" + containerData.getContainerID(),
"Index=" + containerData.getReplicaIndex(),
"BCSID=" + containerData.getBlockCommitSequenceId(),
"State=" + containerData.getState(),
"Volume=" + containerData.getVolume(),
"DataChecksum=" + checksumToString(containerData.getDataChecksum()));
String.join(FIELD_SEPARATOR, fields));
}

private static String getMessage(long containerId, StorageVolume sourceVolume,
StorageVolume destinationVolume, long containerSize, long timeTaken) {
return String.join(FIELD_SEPARATOR,
"ID=" + containerId,
"SrcVolume=" + sourceVolume,
"DestVolume=" + destinationVolume,
"Size=" + containerSize + " bytes",
"TimeTaken=" + timeTaken + " ms",
"Container is moved from SrcVolume to DestVolume");
private static String getMessage(ContainerData containerData) {
return getMessage(containerData,
"Volume=" + containerData.getVolume(),
"DataChecksum=" + checksumToString(containerData.getDataChecksum()));
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -509,6 +509,7 @@ protected class DiskBalancerTask implements BackgroundTask {
public BackgroundTaskResult call() {
long startTime = Time.monotonicNow();
boolean moveSucceeded = true;
Container newContainer = null;
long containerId = containerData.getContainerID();
Container container = ozoneContainer.getContainerSet().getContainer(containerId);
boolean readLockReleased = false;
Expand Down Expand Up @@ -580,7 +581,7 @@ public BackgroundTaskResult call() {
}

// Import the container. importContainer will reset container back to original state
Container newContainer = ozoneContainer.getController().importContainer(tempContainerData);
newContainer = ozoneContainer.getController().importContainer(tempContainerData);

// Step 4: Update container for containerID and mark old container for deletion
// first, update the in-memory set to point to the new replica.
Expand Down Expand Up @@ -633,13 +634,13 @@ public BackgroundTaskResult call() {
if (!readLockReleased) {
container.readUnlock();
}
if (moveSucceeded) {
if (moveSucceeded && newContainer != null) {
// Add current old container to pendingDeletionContainers.
pendingDeletionContainers.put(System.currentTimeMillis() + replicaDeletionDelay, container);
ContainerLogger.logMoveSuccess(containerId, sourceVolume,
ContainerLogger.logMoveSuccess(newContainer.getContainerData(), sourceVolume,
destVolume, containerSize, Time.monotonicNow() - startTime);
}
postCall(moveSucceeded, startTime);
postCall(moveSucceeded && newContainer != null, startTime);

// pick one expired container from pendingDeletionContainers to delete
tryCleanupOnePendingDeletionContainer();
Expand Down