Class OMKeyCommitRequest

All Implemented Interfaces:
RequestAuditor
Direct Known Subclasses:
OMKeyCommitRequestWithFSO

public class OMKeyCommitRequest extends OMKeyRequest
Handles CommitKey request.
  • Constructor Details

    • OMKeyCommitRequest

      public OMKeyCommitRequest(org.apache.hadoop.ozone.protocol.proto.OzoneManagerProtocolProtos.OMRequest omRequest, org.apache.hadoop.ozone.om.helpers.BucketLayout bucketLayout)
  • Method Details

    • preExecute

      public org.apache.hadoop.ozone.protocol.proto.OzoneManagerProtocolProtos.OMRequest preExecute(OzoneManager ozoneManager) throws IOException
      Description copied from class: OMClientRequest
      Perform pre-execute steps on a OMRequest. Called from the RPC context, and generates a OMRequest object which has all the information that will be either persisted in RocksDB or returned to the caller once this operation is executed.
      Overrides:
      preExecute in class OMClientRequest
      Returns:
      OMRequest that will be serialized and handed off to Ratis for consensus.
      Throws:
      IOException
    • validateAndUpdateCache

      public OMClientResponse validateAndUpdateCache(OzoneManager ozoneManager, ExecutionContext context)
      Description copied from class: OMClientRequest
      Validate the OMRequest and update the cache. This step should verify that the request can be executed, perform any authorization steps and update the in-memory cache. This step does not persist the changes to the database. To coders and reviewers, CAUTION: Do NOT bring external dependencies into this method, doing so could potentially cause divergence in OM DB states in HA. If you have to, be extremely careful. e.g. Do NOT invoke ACL check inside validateAndUpdateCache, which can use Ranger plugin that relies on external DB.
      Specified by:
      validateAndUpdateCache in class OMClientRequest
      Returns:
      the response that will be returned to the client.
    • getOmKeyLocationInfos

      @Nonnull protected List<org.apache.hadoop.ozone.om.helpers.OmKeyLocationInfo> getOmKeyLocationInfos(OzoneManager ozoneManager, org.apache.hadoop.ozone.protocol.proto.OzoneManagerProtocolProtos.KeyArgs commitKeyArgs)
    • processResult

      protected void processResult(org.apache.hadoop.ozone.protocol.proto.OzoneManagerProtocolProtos.CommitKeyRequest commitKeyRequest, String volumeName, String bucketName, String keyName, OMMetrics omMetrics, Exception exception, org.apache.hadoop.ozone.om.helpers.OmKeyInfo omKeyInfo, OMClientRequest.Result result)
      Process result of om request execution.
      Parameters:
      commitKeyRequest - commit key request
      volumeName - volume name
      bucketName - bucket name
      keyName - key name
      omMetrics - om metrics
      exception - exception trace
      omKeyInfo - omKeyInfo
      result - stores the result of the execution
    • disallowCommitKeyWithECReplicationConfig

      public static org.apache.hadoop.ozone.protocol.proto.OzoneManagerProtocolProtos.OMRequest disallowCommitKeyWithECReplicationConfig(org.apache.hadoop.ozone.protocol.proto.OzoneManagerProtocolProtos.OMRequest req, ValidationContext ctx) throws org.apache.hadoop.ozone.om.exceptions.OMException
      Throws:
      org.apache.hadoop.ozone.om.exceptions.OMException
    • blockCommitKeyWithBucketLayoutFromOldClient

      public static org.apache.hadoop.ozone.protocol.proto.OzoneManagerProtocolProtos.OMRequest blockCommitKeyWithBucketLayoutFromOldClient(org.apache.hadoop.ozone.protocol.proto.OzoneManagerProtocolProtos.OMRequest req, ValidationContext ctx) throws IOException
      Validates key commit requests. We do not want to allow older clients to commit keys associated with buckets which use non LEGACY layouts.
      Parameters:
      req - - the request to validate
      ctx - - the validation context
      Returns:
      the validated request
      Throws:
      org.apache.hadoop.ozone.om.exceptions.OMException - if the request is invalid
      IOException
    • disallowHsync

      public static org.apache.hadoop.ozone.protocol.proto.OzoneManagerProtocolProtos.OMRequest disallowHsync(org.apache.hadoop.ozone.protocol.proto.OzoneManagerProtocolProtos.OMRequest req, ValidationContext ctx) throws org.apache.hadoop.ozone.om.exceptions.OMException
      Throws:
      org.apache.hadoop.ozone.om.exceptions.OMException
    • disallowRecovery

      public static org.apache.hadoop.ozone.protocol.proto.OzoneManagerProtocolProtos.OMRequest disallowRecovery(org.apache.hadoop.ozone.protocol.proto.OzoneManagerProtocolProtos.OMRequest req, ValidationContext ctx) throws org.apache.hadoop.ozone.om.exceptions.OMException
      Validates key commit requests. We do not want to allow clients to perform lease recovery requests until the cluster has finalized the HBase support feature.
      Parameters:
      req - - the request to validate
      ctx - - the validation context
      Returns:
      the validated request
      Throws:
      org.apache.hadoop.ozone.om.exceptions.OMException - if the request is invalid
    • validateAtomicRewrite

      protected void validateAtomicRewrite(org.apache.hadoop.ozone.om.helpers.OmKeyInfo existing, org.apache.hadoop.ozone.om.helpers.OmKeyInfo toCommit, Map<String,String> auditMap) throws org.apache.hadoop.ozone.om.exceptions.OMException
      Throws:
      org.apache.hadoop.ozone.om.exceptions.OMException