[ 
https://issues.apache.org/jira/browse/HDFS-7252?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Yi Liu updated HDFS-7252:
-------------------------
    Status: Patch Available  (was: Open)

> small refine for use of isInAnEZ in FSNamesystem
> ------------------------------------------------
>
>                 Key: HDFS-7252
>                 URL: https://issues.apache.org/jira/browse/HDFS-7252
>             Project: Hadoop HDFS
>          Issue Type: Improvement
>    Affects Versions: 2.6.0
>            Reporter: Yi Liu
>            Assignee: Yi Liu
>            Priority: Trivial
>         Attachments: HDFS-7252.001.patch
>
>
> In {{FSN#startFileInt}}, _EncryptionZoneManager#getEncryptionZoneForPath_ is 
> invoked 3 times (_dir.isInAnEZ(iip)_, _dir.getEZForPath(iip)_, 
> _dir.getKeyName(iip)_) in following code, actually we just need one.
> {code}
> if (dir.isInAnEZ(iip)) {
>           EncryptionZone zone = dir.getEZForPath(iip);
>           protocolVersion = chooseProtocolVersion(zone, supportedVersions);
>           suite = zone.getSuite();
>           ezKeyName = dir.getKeyName(iip);
>           Preconditions.checkNotNull(protocolVersion);
>           Preconditions.checkNotNull(suite);
>           Preconditions.checkArgument(!suite.equals(CipherSuite.UNKNOWN),
>               "Chose an UNKNOWN CipherSuite!");
>           Preconditions.checkNotNull(ezKeyName);
>         }
> {code}
> Also there are 2 times in following code, but just need one
> {code}
> if (dir.isInAnEZ(iip)) {
>       // The path is now within an EZ, but we're missing encryption parameters
>       if (suite == null || edek == null) {
>         throw new RetryStartFileException();
>       }
>       // Path is within an EZ and we have provided encryption parameters.
>       // Make sure that the generated EDEK matches the settings of the EZ.
>       String ezKeyName = dir.getKeyName(iip);
>       if (!ezKeyName.equals(edek.getEncryptionKeyName())) {
>         throw new RetryStartFileException();
>       }
>       feInfo = new FileEncryptionInfo(suite, version,
>           edek.getEncryptedKeyVersion().getMaterial(),
>           edek.getEncryptedKeyIv(),
>           ezKeyName, edek.getEncryptionKeyVersionName());
>       Preconditions.checkNotNull(feInfo);
>     }
> {code}



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to