You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@gobblin.apache.org by GitBox <gi...@apache.org> on 2020/07/29 07:35:43 UTC

[GitHub] [incubator-gobblin] sv2000 commented on a change in pull request #3069: [GOBBLIN-1221] Preserve source file's ModTime by configuration

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