sv2000 commented on a change in pull request #3069:
URL: https://github.com/apache/incubator-gobblin/pull/3069#discussion_r461238397



##########
File path: 
gobblin-data-management/src/main/java/org/apache/gobblin/data/management/copy/publisher/CopyDataPublisher.java
##########
@@ -185,9 +185,39 @@ public void handleUnpublishedWorkUnits(Collection<? 
extends WorkUnitState> state
     return datasetRoots;
   }
 
+  /**
+   * Unlike other preserving attributes of files (ownership, group, etc.), 
which is preserved in writer,
+   * some of the attributes have to be set during publish phase like ModTime,
+   * and versionStrategy (usually relevant to modTime as well), since they are 
subject to change with Publish(rename)
+   */
+  private void preserveFileAttrInPublisher(CopyableFile copyableFile) throws 
IOException {
+    // Preserving File ModTime, keep the accessing time of the target file.
+    if 
(copyableFile.getPreserve().preserve(PreserveAttributes.Option.MOD_TIME)) {
+      fs.setTimes(copyableFile.getDestination(), 
copyableFile.getOriginTimestamp(),
+          fs.getFileStatus(copyableFile.getDestination()).getAccessTime());

Review comment:
       Why not add accessTime as a field in CopyableFile and populate it when 
CopyableFiles are computed? We can avoid the fs.getFileStatus() RPC call here. 
Also, not sure whether we should preserve the file "accessTime" from the 
source. We might be better off setting this to -1.  




----------------------------------------------------------------
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:
us...@infra.apache.org


Reply via email to