[ 
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)

Reply via email to