[ https://issues.apache.org/jira/browse/BEAM-1190?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15767812#comment-15767812 ]
Daniel Halperin commented on BEAM-1190: --------------------------------------- Here are my general concerns: * How do we distinguish this event from files getting deleted between expand and read time, which is obviously an error. * How do we ensure consistency? Aka, suppose I produce 3 shards of a file returned by a list on an eventually-list-consistent filesystem, and when we try to open them at runtime the file does not exist. How can we distinguish whether the file was deleted before expand-glob, after expand-glob but before any reading, after reading some shards but not others, etc? * If the filesystem (or the part of the filesystem used by the user) is not eventually consistent, this is clearly a bad thing to do. So this would somehow have to be filesystem+glob aware. So I would prefer a solution like giving [BEAM-60] which will give the user code they can execute at expand-the-glob time. That's where the user can put in the "stat the file and make sure it's there, or remove it" code, if they want such. For your proposal: * Will it inspect the properties of the Filesystem to ensure it is eventually consistent for the expanded glob? * Do we plan to add a mandatory stat at glob-expand time? That seems like the only correct place to add this logic -- otherwise, we can't tell from files that legitimately did exist at expand time, but were deleted in error at runtime. * How do we plan to allow the user to opt into this behavior? I think putting the user explicitly in the loop is the right thing to do, either through one of the two JIRA issues I linked earlier. I am not yet persuaded that changing default behavior is the right answer. > FileBasedSource should ignore files that matched the glob but don't exist > ------------------------------------------------------------------------- > > Key: BEAM-1190 > URL: https://issues.apache.org/jira/browse/BEAM-1190 > Project: Beam > Issue Type: Bug > Components: sdk-java-core > Reporter: Eugene Kirpichov > Assignee: Eugene Kirpichov > > See user issue: > http://stackoverflow.com/questions/41251741/coping-with-eventual-consistency-of-gcs-bucket-listing > We should, after globbing the files in FileBasedSource, individually stat > every file and remove those that don't exist, to account for the possibility > that glob yielded non-existing files due to eventual consistency. -- This message was sent by Atlassian JIRA (v6.3.4#6332)