billierinaldi commented on a change in pull request #1925:
URL: https://github.com/apache/hadoop/pull/1925#discussion_r595255693
##########
File path:
hadoop-tools/hadoop-azure/src/main/java/org/apache/hadoop/fs/azurebfs/AzureBlobFileSystemStore.java
##########
@@ -702,15 +735,72 @@ public OutputStream openFileForWrite(final Path path,
final FileSystem.Statistic
isAppendBlob = true;
}
+ SelfRenewingLease lease = maybeCreateLease(relativePath);
+
return new AbfsOutputStream(
client,
statistics,
relativePath,
offset,
- populateAbfsOutputStreamContext(isAppendBlob));
+ populateAbfsOutputStreamContext(isAppendBlob, lease));
}
}
+ /**
+ * Acquire a lease on an ABFS file for a specified duration. This requires
the file to exist.
+ *
+ * @param path file name
+ * @param duration time lease will be held before expiring
+ * @return the acquired lease ID
+ * @throws AzureBlobFileSystemException on any exception while acquiring the
lease
+ */
+ public String acquireLease(final Path path, final int duration) throws
AzureBlobFileSystemException {
+ LOG.debug("lease path: {}", path);
+
+ final AbfsRestOperation op =
+ client.acquireLease(getRelativePath(path), duration);
+
+ return
op.getResult().getResponseHeader(HttpHeaderConfigurations.X_MS_LEASE_ID);
+ }
+
+ /**
Review comment:
I'm not sure what you mean. Do you mean that we shouldn't have an
acquireLease method in the store because leases will be acquired automatically?
----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
For queries about this service, please contact Infrastructure at:
[email protected]
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]