This is an automated email from the ASF dual-hosted git repository.

shunping pushed a commit to branch fadvice
in repository https://gitbox.apache.org/repos/asf/beam.git


The following commit(s) were added to refs/heads/fadvice by this push:
     new e684df8816e Override default fadvice to SEQUENTIAL
e684df8816e is described below

commit e684df8816ee4a16282e333ef6bc1bf33c131c24
Author: Shunping Huang <[email protected]>
AuthorDate: Wed Jul 22 19:01:02 2026 -0400

    Override default fadvice to SEQUENTIAL
    
    This fixes the regression introduced by gcs-connector v3.
---
 .../org/apache/beam/sdk/extensions/gcp/options/GcsOptions.java    | 8 +++++++-
 .../apache/beam/sdk/extensions/gcp/options/GcsOptionsTest.java    | 4 ++--
 2 files changed, 9 insertions(+), 3 deletions(-)

diff --git 
a/sdks/java/extensions/google-cloud-platform-core/src/main/java/org/apache/beam/sdk/extensions/gcp/options/GcsOptions.java
 
b/sdks/java/extensions/google-cloud-platform-core/src/main/java/org/apache/beam/sdk/extensions/gcp/options/GcsOptions.java
index 35cba02f7c1..eb070b5b0c5 100644
--- 
a/sdks/java/extensions/google-cloud-platform-core/src/main/java/org/apache/beam/sdk/extensions/gcp/options/GcsOptions.java
+++ 
b/sdks/java/extensions/google-cloud-platform-core/src/main/java/org/apache/beam/sdk/extensions/gcp/options/GcsOptions.java
@@ -60,7 +60,13 @@ public interface GcsOptions extends ApplicationNameOptions, 
GcpOptions, Pipeline
   class GcsReadOptionsFactory implements 
DefaultValueFactory<GoogleCloudStorageReadOptions> {
     @Override
     public GoogleCloudStorageReadOptions create(PipelineOptions options) {
-      return GoogleCloudStorageReadOptions.DEFAULT;
+      // In gcs-connector v3, GoogleCloudStorageReadOptions.DEFAULT changed 
fadvise from SEQUENTIAL
+      // to AUTO. Beam workloads default to SEQUENTIAL to preserve expected 
sequential read
+      // throughput and caching behavior.
+      return GoogleCloudStorageReadOptions.DEFAULT
+          .toBuilder()
+          .setFadvise(GoogleCloudStorageReadOptions.Fadvise.SEQUENTIAL)
+          .build();
     }
   }
 
diff --git 
a/sdks/java/extensions/google-cloud-platform-core/src/test/java/org/apache/beam/sdk/extensions/gcp/options/GcsOptionsTest.java
 
b/sdks/java/extensions/google-cloud-platform-core/src/test/java/org/apache/beam/sdk/extensions/gcp/options/GcsOptionsTest.java
index de460ca0986..11e85d796be 100644
--- 
a/sdks/java/extensions/google-cloud-platform-core/src/test/java/org/apache/beam/sdk/extensions/gcp/options/GcsOptionsTest.java
+++ 
b/sdks/java/extensions/google-cloud-platform-core/src/test/java/org/apache/beam/sdk/extensions/gcp/options/GcsOptionsTest.java
@@ -86,7 +86,7 @@ public class GcsOptionsTest {
     GcsOptions options = PipelineOptionsFactory.as(GcsOptions.class);
     GoogleCloudStorageReadOptions readOptions =
         GoogleCloudStorageReadOptions.builder()
-            .setFadvise(GoogleCloudStorageReadOptions.Fadvise.SEQUENTIAL)
+            .setFadvise(GoogleCloudStorageReadOptions.Fadvise.RANDOM)
             .setFastFailOnNotFoundEnabled(false)
             .setMinRangeRequestSize(12345L)
             .build();
@@ -102,7 +102,7 @@ public class GcsOptionsTest {
 
     assertNotNull(deserializedReadOptions);
     assertEquals(
-        GoogleCloudStorageReadOptions.Fadvise.SEQUENTIAL, 
deserializedReadOptions.getFadvise());
+        GoogleCloudStorageReadOptions.Fadvise.RANDOM, 
deserializedReadOptions.getFadvise());
     assertFalse(deserializedReadOptions.isFastFailOnNotFoundEnabled());
     assertEquals(12345L, deserializedReadOptions.getMinRangeRequestSize());
   }

Reply via email to