Skip to content
Draft
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 @@ -17,9 +17,17 @@

package org.apache.hadoop.ozone;

import java.util.Comparator;

/**
* Base class defining the version in the entire system.
*/
public interface Versioned {
Comparator<Versioned> VERSIONED_COMPARATOR = Comparator.comparingInt(Versioned::version);

int version();

static Comparator<Versioned> versionComparator() {
return VERSIONED_COMPARATOR;
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -52,8 +52,8 @@
import org.apache.hadoop.ozone.om.helpers.OzoneAclUtil;
import org.apache.hadoop.ozone.om.request.OMClientRequest;
import org.apache.hadoop.ozone.om.request.util.OmResponseUtil;
import org.apache.hadoop.ozone.om.request.validation.RequestFeatureValidator;
import org.apache.hadoop.ozone.om.request.validation.ValidationCondition;
import org.apache.hadoop.ozone.om.request.validation.OMClientVersionValidator;
import org.apache.hadoop.ozone.om.request.validation.OMLayoutVersionValidator;
import org.apache.hadoop.ozone.om.request.validation.ValidationContext;
import org.apache.hadoop.ozone.om.response.OMClientResponse;
import org.apache.hadoop.ozone.om.response.bucket.OMBucketCreateResponse;
Expand Down Expand Up @@ -405,8 +405,8 @@ public boolean checkQuotaBytesValid(OMMetadataManager metadataManager,

}

@RequestFeatureValidator(
conditions = ValidationCondition.CLUSTER_NEEDS_FINALIZATION,
@OMLayoutVersionValidator(
applyBefore = OMLayoutFeature.ERASURE_CODED_STORAGE_SUPPORT,
processingPhase = RequestProcessingPhase.PRE_PROCESS,
requestType = Type.CreateBucket
)
Expand All @@ -428,8 +428,8 @@ public static OMRequest disallowCreateBucketWithECReplicationConfig(
return req;
}

@RequestFeatureValidator(
conditions = ValidationCondition.CLUSTER_NEEDS_FINALIZATION,
@OMLayoutVersionValidator(
applyBefore = OMLayoutFeature.BUCKET_LAYOUT_SUPPORT,
processingPhase = RequestProcessingPhase.PRE_PROCESS,
requestType = Type.CreateBucket
)
Expand Down Expand Up @@ -469,8 +469,8 @@ public static OMRequest handleCreateBucketWithBucketLayoutDuringPreFinalize(
* write to them, instead of using the server default which may be in a layout
* they do not understand.
*/
@RequestFeatureValidator(
conditions = ValidationCondition.OLDER_CLIENT_REQUESTS,
@OMClientVersionValidator(
applyBefore = ClientVersion.BUCKET_LAYOUT_SUPPORT,
processingPhase = RequestProcessingPhase.PRE_PROCESS,
requestType = Type.CreateBucket
)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -30,6 +30,7 @@
import org.apache.hadoop.hdds.utils.db.TableIterator;
import org.apache.hadoop.hdds.utils.db.cache.CacheKey;
import org.apache.hadoop.hdds.utils.db.cache.CacheValue;
import org.apache.hadoop.ozone.ClientVersion;
import org.apache.hadoop.ozone.OzoneConsts;
import org.apache.hadoop.ozone.audit.AuditLogger;
import org.apache.hadoop.ozone.audit.OMAction;
Expand All @@ -45,8 +46,7 @@
import org.apache.hadoop.ozone.om.helpers.SnapshotInfo;
import org.apache.hadoop.ozone.om.request.OMClientRequest;
import org.apache.hadoop.ozone.om.request.util.OmResponseUtil;
import org.apache.hadoop.ozone.om.request.validation.RequestFeatureValidator;
import org.apache.hadoop.ozone.om.request.validation.ValidationCondition;
import org.apache.hadoop.ozone.om.request.validation.OMClientVersionValidator;
import org.apache.hadoop.ozone.om.request.validation.ValidationContext;
import org.apache.hadoop.ozone.om.response.OMClientResponse;
import org.apache.hadoop.ozone.om.response.bucket.OMBucketDeleteResponse;
Expand Down Expand Up @@ -275,8 +275,8 @@ private boolean bucketContainsSnapshotInCache(
* @return the validated request
* @throws OMException if the request is invalid
*/
@RequestFeatureValidator(
conditions = ValidationCondition.OLDER_CLIENT_REQUESTS,
@OMClientVersionValidator(
applyBefore = ClientVersion.BUCKET_LAYOUT_SUPPORT,
processingPhase = RequestProcessingPhase.PRE_PROCESS,
requestType = Type.DeleteBucket
)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -44,8 +44,7 @@
import org.apache.hadoop.ozone.om.helpers.OmVolumeArgs;
import org.apache.hadoop.ozone.om.request.OMClientRequest;
import org.apache.hadoop.ozone.om.request.util.OmResponseUtil;
import org.apache.hadoop.ozone.om.request.validation.RequestFeatureValidator;
import org.apache.hadoop.ozone.om.request.validation.ValidationCondition;
import org.apache.hadoop.ozone.om.request.validation.OMLayoutVersionValidator;
import org.apache.hadoop.ozone.om.request.validation.ValidationContext;
import org.apache.hadoop.ozone.om.response.OMClientResponse;
import org.apache.hadoop.ozone.om.response.bucket.OMBucketSetPropertyResponse;
Expand Down Expand Up @@ -352,8 +351,8 @@ public boolean checkQuotaNamespaceValid(OmVolumeArgs omVolumeArgs,
return true;
}

@RequestFeatureValidator(
conditions = ValidationCondition.CLUSTER_NEEDS_FINALIZATION,
@OMLayoutVersionValidator(
applyBefore = OMLayoutFeature.ERASURE_CODED_STORAGE_SUPPORT,
processingPhase = RequestProcessingPhase.PRE_PROCESS,
requestType = Type.SetBucketProperty
)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -31,6 +31,7 @@
import java.util.List;
import java.util.Map;
import java.util.Objects;
import org.apache.hadoop.ozone.ClientVersion;
import org.apache.hadoop.ozone.OmUtils;
import org.apache.hadoop.ozone.audit.AuditLogger;
import org.apache.hadoop.ozone.audit.OMAction;
Expand All @@ -44,8 +45,8 @@
import org.apache.hadoop.ozone.om.helpers.OmKeyInfo;
import org.apache.hadoop.ozone.om.request.key.OMKeyRequest;
import org.apache.hadoop.ozone.om.request.util.OmResponseUtil;
import org.apache.hadoop.ozone.om.request.validation.RequestFeatureValidator;
import org.apache.hadoop.ozone.om.request.validation.ValidationCondition;
import org.apache.hadoop.ozone.om.request.validation.OMClientVersionValidator;
import org.apache.hadoop.ozone.om.request.validation.OMLayoutVersionValidator;
import org.apache.hadoop.ozone.om.request.validation.ValidationContext;
import org.apache.hadoop.ozone.om.response.OMClientResponse;
import org.apache.hadoop.ozone.om.response.file.OMDirectoryCreateResponse;
Expand Down Expand Up @@ -262,8 +263,8 @@ private void logResult(CreateDirectoryRequest createDirectoryRequest,
}
}

@RequestFeatureValidator(
conditions = ValidationCondition.CLUSTER_NEEDS_FINALIZATION,
@OMLayoutVersionValidator(
applyBefore = OMLayoutFeature.ERASURE_CODED_STORAGE_SUPPORT,
processingPhase = RequestProcessingPhase.PRE_PROCESS,
requestType = Type.CreateDirectory
)
Expand Down Expand Up @@ -295,8 +296,8 @@ public static OMRequest disallowCreateDirectoryWithECReplicationConfig(
* @return the validated request
* @throws OMException if the request is invalid
*/
@RequestFeatureValidator(
conditions = ValidationCondition.OLDER_CLIENT_REQUESTS,
@OMClientVersionValidator(
applyBefore = ClientVersion.BUCKET_LAYOUT_SUPPORT,
processingPhase = RequestProcessingPhase.PRE_PROCESS,
requestType = Type.CreateDirectory
)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -35,6 +35,7 @@
import org.apache.hadoop.hdds.protocol.proto.HddsProtos;
import org.apache.hadoop.hdds.scm.container.common.helpers.ExcludeList;
import org.apache.hadoop.hdds.utils.UniqueId;
import org.apache.hadoop.ozone.ClientVersion;
import org.apache.hadoop.ozone.OmUtils;
import org.apache.hadoop.ozone.audit.OMAction;
import org.apache.hadoop.ozone.om.OMMetadataManager;
Expand All @@ -49,8 +50,8 @@
import org.apache.hadoop.ozone.om.helpers.OmKeyLocationInfo;
import org.apache.hadoop.ozone.om.request.key.OMKeyRequest;
import org.apache.hadoop.ozone.om.request.util.OmResponseUtil;
import org.apache.hadoop.ozone.om.request.validation.RequestFeatureValidator;
import org.apache.hadoop.ozone.om.request.validation.ValidationCondition;
import org.apache.hadoop.ozone.om.request.validation.OMClientVersionValidator;
import org.apache.hadoop.ozone.om.request.validation.OMLayoutVersionValidator;
import org.apache.hadoop.ozone.om.request.validation.ValidationContext;
import org.apache.hadoop.ozone.om.response.OMClientResponse;
import org.apache.hadoop.ozone.om.response.file.OMFileCreateResponse;
Expand Down Expand Up @@ -380,8 +381,8 @@ protected void checkAllParentsExist(KeyArgs keyArgs,
}
}

@RequestFeatureValidator(
conditions = ValidationCondition.CLUSTER_NEEDS_FINALIZATION,
@OMLayoutVersionValidator(
applyBefore = OMLayoutFeature.ERASURE_CODED_STORAGE_SUPPORT,
processingPhase = RequestProcessingPhase.PRE_PROCESS,
requestType = CreateFile
)
Expand Down Expand Up @@ -412,8 +413,8 @@ public static OMRequest disallowCreateFileWithECReplicationConfig(
* @return the validated request
* @throws OMException if the request is invalid
*/
@RequestFeatureValidator(
conditions = ValidationCondition.OLDER_CLIENT_REQUESTS,
@OMClientVersionValidator(
applyBefore = ClientVersion.BUCKET_LAYOUT_SUPPORT,
processingPhase = RequestProcessingPhase.PRE_PROCESS,
requestType = Type.CreateFile
)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -31,6 +31,7 @@
import org.apache.hadoop.hdds.scm.container.common.helpers.ExcludeList;
import org.apache.hadoop.hdds.utils.db.cache.CacheKey;
import org.apache.hadoop.hdds.utils.db.cache.CacheValue;
import org.apache.hadoop.ozone.ClientVersion;
import org.apache.hadoop.ozone.OzoneConsts;
import org.apache.hadoop.ozone.audit.AuditLogger;
import org.apache.hadoop.ozone.audit.OMAction;
Expand All @@ -45,8 +46,8 @@
import org.apache.hadoop.ozone.om.helpers.OmKeyLocationInfo;
import org.apache.hadoop.ozone.om.helpers.QuotaUtil;
import org.apache.hadoop.ozone.om.request.util.OmResponseUtil;
import org.apache.hadoop.ozone.om.request.validation.RequestFeatureValidator;
import org.apache.hadoop.ozone.om.request.validation.ValidationCondition;
import org.apache.hadoop.ozone.om.request.validation.OMClientVersionValidator;
import org.apache.hadoop.ozone.om.request.validation.OMLayoutVersionValidator;
import org.apache.hadoop.ozone.om.request.validation.ValidationContext;
import org.apache.hadoop.ozone.om.response.OMClientResponse;
import org.apache.hadoop.ozone.om.response.key.OMAllocateBlockResponse;
Expand Down Expand Up @@ -276,8 +277,8 @@ public OMClientResponse validateAndUpdateCache(OzoneManager ozoneManager, Execut
return omClientResponse;
}

@RequestFeatureValidator(
conditions = ValidationCondition.CLUSTER_NEEDS_FINALIZATION,
@OMLayoutVersionValidator(
applyBefore = OMLayoutFeature.ERASURE_CODED_STORAGE_SUPPORT,
processingPhase = RequestProcessingPhase.PRE_PROCESS,
requestType = Type.AllocateBlock
)
Expand Down Expand Up @@ -306,8 +307,8 @@ public static OMRequest disallowAllocateBlockWithECReplicationConfig(
* @return the validated request
* @throws OMException if the request is invalid
*/
@RequestFeatureValidator(
conditions = ValidationCondition.OLDER_CLIENT_REQUESTS,
@OMClientVersionValidator(
applyBefore = ClientVersion.BUCKET_LAYOUT_SUPPORT,
processingPhase = RequestProcessingPhase.PRE_PROCESS,
requestType = Type.AllocateBlock
)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -34,6 +34,7 @@
import java.util.Map;
import java.util.Objects;
import org.apache.commons.lang3.tuple.Pair;
import org.apache.hadoop.ozone.ClientVersion;
import org.apache.hadoop.ozone.OmUtils;
import org.apache.hadoop.ozone.OzoneConsts;
import org.apache.hadoop.ozone.OzoneManagerVersion;
Expand All @@ -55,8 +56,8 @@
import org.apache.hadoop.ozone.om.helpers.WithMetadata;
import org.apache.hadoop.ozone.om.request.util.OmKeyHSyncUtil;
import org.apache.hadoop.ozone.om.request.util.OmResponseUtil;
import org.apache.hadoop.ozone.om.request.validation.RequestFeatureValidator;
import org.apache.hadoop.ozone.om.request.validation.ValidationCondition;
import org.apache.hadoop.ozone.om.request.validation.OMClientVersionValidator;
import org.apache.hadoop.ozone.om.request.validation.OMLayoutVersionValidator;
import org.apache.hadoop.ozone.om.request.validation.ValidationContext;
import org.apache.hadoop.ozone.om.response.OMClientResponse;
import org.apache.hadoop.ozone.om.response.key.OMKeyCommitResponse;
Expand Down Expand Up @@ -505,8 +506,8 @@ protected void processResult(CommitKeyRequest commitKeyRequest,
}
}

@RequestFeatureValidator(
conditions = ValidationCondition.CLUSTER_NEEDS_FINALIZATION,
@OMLayoutVersionValidator(
applyBefore = OMLayoutFeature.ERASURE_CODED_STORAGE_SUPPORT,
processingPhase = RequestProcessingPhase.PRE_PROCESS,
requestType = Type.CommitKey
)
Expand Down Expand Up @@ -535,8 +536,8 @@ public static OMRequest disallowCommitKeyWithECReplicationConfig(
* @return the validated request
* @throws OMException if the request is invalid
*/
@RequestFeatureValidator(
conditions = ValidationCondition.OLDER_CLIENT_REQUESTS,
@OMClientVersionValidator(
applyBefore = ClientVersion.BUCKET_LAYOUT_SUPPORT,
processingPhase = RequestProcessingPhase.PRE_PROCESS,
requestType = Type.CommitKey
)
Expand All @@ -554,8 +555,8 @@ public static OMRequest blockCommitKeyWithBucketLayoutFromOldClient(
return req;
}

@RequestFeatureValidator(
conditions = ValidationCondition.CLUSTER_NEEDS_FINALIZATION,
@OMLayoutVersionValidator(
applyBefore = OMLayoutFeature.HBASE_SUPPORT,
processingPhase = RequestProcessingPhase.PRE_PROCESS,
requestType = Type.CommitKey
)
Expand Down Expand Up @@ -587,8 +588,8 @@ public static OMRequest disallowHsync(
* @return the validated request
* @throws OMException if the request is invalid
*/
@RequestFeatureValidator(
conditions = ValidationCondition.CLUSTER_NEEDS_FINALIZATION,
@OMLayoutVersionValidator(
applyBefore = OMLayoutFeature.HBASE_SUPPORT,
processingPhase = RequestProcessingPhase.PRE_PROCESS,
requestType = Type.CommitKey
)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -34,6 +34,7 @@
import org.apache.hadoop.hdds.protocol.proto.HddsProtos;
import org.apache.hadoop.hdds.scm.container.common.helpers.ExcludeList;
import org.apache.hadoop.hdds.utils.UniqueId;
import org.apache.hadoop.ozone.ClientVersion;
import org.apache.hadoop.ozone.OmUtils;
import org.apache.hadoop.ozone.OzoneManagerVersion;
import org.apache.hadoop.ozone.audit.OMAction;
Expand All @@ -51,8 +52,8 @@
import org.apache.hadoop.ozone.om.lock.OzoneLockStrategy;
import org.apache.hadoop.ozone.om.request.file.OMFileRequest;
import org.apache.hadoop.ozone.om.request.util.OmResponseUtil;
import org.apache.hadoop.ozone.om.request.validation.RequestFeatureValidator;
import org.apache.hadoop.ozone.om.request.validation.ValidationCondition;
import org.apache.hadoop.ozone.om.request.validation.OMClientVersionValidator;
import org.apache.hadoop.ozone.om.request.validation.OMLayoutVersionValidator;
import org.apache.hadoop.ozone.om.request.validation.ValidationContext;
import org.apache.hadoop.ozone.om.response.OMClientResponse;
import org.apache.hadoop.ozone.om.response.key.OMKeyCreateResponse;
Expand Down Expand Up @@ -178,7 +179,7 @@ public OMRequest preExecute(OzoneManager ozoneManager) throws IOException {

KeyArgs.Builder finalNewKeyArgs = newKeyArgs;
KeyArgs resolvedKeyArgs =
captureLatencyNs(perfMetrics.getCreateKeyResolveBucketAndAclCheckLatencyNs(),
captureLatencyNs(perfMetrics.getCreateKeyResolveBucketAndAclCheckLatencyNs(),
() -> resolveBucketAndCheckKeyAcls(finalNewKeyArgs.build(), ozoneManager,
IAccessAuthorizer.ACLType.CREATE));
newCreateKeyRequest =
Expand Down Expand Up @@ -358,7 +359,7 @@ public OMClientResponse validateAndUpdateCache(OzoneManager ozoneManager, Execut
} else {
perfMetrics.addCreateKeyFailureLatencyNs(createKeyLatency);
}

if (acquireLock) {
mergeOmLockDetails(ozoneLockStrategy
.releaseWriteLock(omMetadataManager, volumeName,
Expand Down Expand Up @@ -408,8 +409,8 @@ protected void logResult(CreateKeyRequest createKeyRequest,
}
}

@RequestFeatureValidator(
conditions = ValidationCondition.CLUSTER_NEEDS_FINALIZATION,
@OMLayoutVersionValidator(
applyBefore = OMLayoutFeature.ERASURE_CODED_STORAGE_SUPPORT,
processingPhase = RequestProcessingPhase.PRE_PROCESS,
requestType = Type.CreateKey
)
Expand Down Expand Up @@ -438,8 +439,8 @@ public static OMRequest disallowCreateKeyWithECReplicationConfig(
* @return the validated request
* @throws OMException if the request is invalid
*/
@RequestFeatureValidator(
conditions = ValidationCondition.OLDER_CLIENT_REQUESTS,
@OMClientVersionValidator(
applyBefore = ClientVersion.BUCKET_LAYOUT_SUPPORT,
processingPhase = RequestProcessingPhase.PRE_PROCESS,
requestType = Type.CreateKey
)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -29,6 +29,7 @@
import org.apache.hadoop.hdds.utils.db.Table;
import org.apache.hadoop.hdds.utils.db.cache.CacheKey;
import org.apache.hadoop.hdds.utils.db.cache.CacheValue;
import org.apache.hadoop.ozone.ClientVersion;
import org.apache.hadoop.ozone.OmUtils;
import org.apache.hadoop.ozone.OzoneConsts;
import org.apache.hadoop.ozone.audit.AuditLogger;
Expand All @@ -43,8 +44,7 @@
import org.apache.hadoop.ozone.om.helpers.OmBucketInfo;
import org.apache.hadoop.ozone.om.helpers.OmKeyInfo;
import org.apache.hadoop.ozone.om.request.util.OmResponseUtil;
import org.apache.hadoop.ozone.om.request.validation.RequestFeatureValidator;
import org.apache.hadoop.ozone.om.request.validation.ValidationCondition;
import org.apache.hadoop.ozone.om.request.validation.OMClientVersionValidator;
import org.apache.hadoop.ozone.om.request.validation.ValidationContext;
import org.apache.hadoop.ozone.om.response.OMClientResponse;
import org.apache.hadoop.ozone.om.response.key.OMKeyDeleteResponse;
Expand Down Expand Up @@ -247,8 +247,8 @@ public OMClientResponse validateAndUpdateCache(OzoneManager ozoneManager, Execut
* @return the validated request
* @throws OMException if the request is invalid
*/
@RequestFeatureValidator(
conditions = ValidationCondition.OLDER_CLIENT_REQUESTS,
@OMClientVersionValidator(
applyBefore = ClientVersion.BUCKET_LAYOUT_SUPPORT,
processingPhase = RequestProcessingPhase.PRE_PROCESS,
requestType = Type.DeleteKey
)
Expand Down
Loading