You are viewing a plain text version of this content. The canonical link for it is here.
Posted to hdfs-issues@hadoop.apache.org by "Yi Liu (JIRA)" <ji...@apache.org> on 2014/10/15 04:46:33 UTC
[jira] [Updated] (HDFS-7252) small refine for use of isInAnEZ in
FSNamesystem
[ https://issues.apache.org/jira/browse/HDFS-7252?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Yi Liu updated HDFS-7252:
-------------------------
Attachment: HDFS-7252.001.patch
> 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)