2016-12-20 3 views
1

Unsere Datenflussjobs werden von einem multiregionalen GCS-Bucket gelesen, der Dateien von Interesse enthält. Diese Dateien werden auch in einen Archiv-Bucket verschoben. Daher sehen wir manchmal, dass GCS-Listenoperationen Dateien zurückgeben, die verschoben wurden (wie es zu erwarten wäre, da es sich um eine letztendlich konsistente Operation handelt).Umgang mit eventueller Konsistenz der GCS-Bucket-Auflistung

Leider explodieren unsere Jobs als Ergebnis, wenn FileBasedSource s versuchen, diese "Geister" -Dateien zu lesen. Es scheint, dass sowohl das Dataflow SDK von Google als auch Apache Beam die Methoden zum Öffnen von GCS-Dateien (in FileBasedSource: createReader und startImpl) so eingerichtet haben, dass wir sie nicht überschreiben können.

Anders als keine Dateien zu verschieben, irgendwelche Empfehlungen zur Arbeit um diese? Diese Stack Overflow question zeigt an, dass andere ähnliche Probleme haben, aber es scheint, dass die Antwort "wie erwartet explodiert" ist.

+0

Ich habe meine Antwort bearbeitet, weil die GCS-Objektliste seither stark konsistent gemacht wurde. – jkff

Antwort

2

Derzeit sind Google Cloud Storage-Objektlistenvorgänge strongly consistent, sodass das ursprüngliche Problem nicht mehr zutrifft.

Es gilt immer noch, wenn ein eventuell konsistentes Dateisystem wie S3 verwendet wird. Siehe BEAM JIRA, um dieses Problem zu verfolgen.

+0

Danke dafür @jkff – ptf

+0

Danke für die Aktualisierung des aktuellen Status – ptf