This is an automated email from the ASF dual-hosted git repository.
Samrat002 pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/flink.git
The following commit(s) were added to refs/heads/master by this push:
new 4ee4e39ce72 [FLINK-40632][s3] Remove Experimental annotation from
native-s3-fs
4ee4e39ce72 is described below
commit 4ee4e39ce72c0fc65ffa17ef61acb5d084528173
Author: Samrat <[email protected]>
AuthorDate: Thu Sep 17 19:43:17 2026 +0530
[FLINK-40632][s3] Remove Experimental annotation from native-s3-fs
---
docs/content.zh/docs/deployment/filesystems/s3.md | 14 +++++---------
docs/content/docs/deployment/filesystems/s3.md | 14 +++++---------
.../flink/fs/s3native/NativeS3AFileSystemFactory.java | 3 ---
.../flink/fs/s3native/NativeS3FileSystemFactory.java | 2 --
.../fs/s3native/writer/NativeS3RecoverableWriter.java | 2 --
5 files changed, 10 insertions(+), 25 deletions(-)
diff --git a/docs/content.zh/docs/deployment/filesystems/s3.md
b/docs/content.zh/docs/deployment/filesystems/s3.md
index f8f7bad7a8e..45f87ec9c51 100644
--- a/docs/content.zh/docs/deployment/filesystems/s3.md
+++ b/docs/content.zh/docs/deployment/filesystems/s3.md
@@ -68,10 +68,10 @@ Note that these examples are *not* exhaustive and you can
use S3 in other places
Flink provides three independent S3 filesystem implementations:
-| Implementation | Checkpointing | FileSink | Notes |
-|---------------|:---:|:---:|-------|
-| **Native S3** (`flink-s3-fs-native`) | ✓ | ✓ | **Experimental** in Flink
2.3. Built on AWS SDK v2; no Hadoop dependency. |
-| **Presto S3** (`flink-s3-fs-presto`) | ✓ | x | Production-proven for
checkpointing. |
+| Implementation | Checkpointing | FileSink | Notes
|
+|---------------|:---:|:---:|--------------------------------------------------------------------------------------------|
+| **Native S3** (`flink-s3-fs-native`) | ✓ | ✓ | Built on AWS SDK v2; no
Hadoop dependency. Generally available since Flink 2.4. |
+| **Presto S3** (`flink-s3-fs-presto`) | ✓ | x | Production-proven for
checkpointing. |
| **Hadoop S3** (`flink-s3-fs-hadoop`) | ✓ | ✓ | Mature; the only stable
implementation that provides `RecoverableWriter` for the FileSink. |
Previously, users had to choose between Presto (recommended for checkpointing
throughput) and Hadoop (the only implementation with `RecoverableWriter`,
required by the [FileSink]({{< ref "docs/connectors/datastream/filesystem"
>}})). The Native S3 implementation unifies both capabilities in a single
plugin and measurements show significant checkpoint throughput improvements
over the Presto implementation.
@@ -149,11 +149,7 @@ The legacy configuration key `s3.path.style.access` is
still supported as a fall
## Implementation Details
-### Native S3 FileSystem (Experimental)
-
-{{< hint warning >}}
-**Experimental**: The Native S3 FileSystem is experimental in Flink 2.3. It is
functionally complete and has demonstrated strong performance in benchmarks.
-{{< /hint >}}
+### Native S3 FileSystem
The Native S3 FileSystem is a pure-Java implementation built on the AWS SDK v2
completely removing the dependency on Hadoop. It is registered under the
schemes *s3://* and *s3a://*. It provides a drop-in replacement for the Presto
and Hadoop implementations, supporting checkpointing, the [FileSink]({{< ref
"docs/connectors/datastream/filesystem" >}}) (via `RecoverableWriter`),
server-side encryption (SSE-S3, SSE-KMS), cross-account access via IAM role
assumption, entropy injection, and b [...]
diff --git a/docs/content/docs/deployment/filesystems/s3.md
b/docs/content/docs/deployment/filesystems/s3.md
index 36c2b55bad3..9f84f9e6349 100644
--- a/docs/content/docs/deployment/filesystems/s3.md
+++ b/docs/content/docs/deployment/filesystems/s3.md
@@ -68,10 +68,10 @@ Note that these examples are *not* exhaustive and you can
use S3 in other places
Flink provides three independent S3 filesystem implementations:
-| Implementation | Checkpointing | FileSink | Notes |
-|---------------|:---:|:---:|-------|
-| **Native S3** (`flink-s3-fs-native`) | ✓ | ✓ | **Experimental** in Flink
2.3. Built on AWS SDK v2; no Hadoop dependency. |
-| **Presto S3** (`flink-s3-fs-presto`) | ✓ | x | Production-proven for
checkpointing. |
+| Implementation | Checkpointing | FileSink | Notes
|
+|---------------|:---:|:---:|--------------------------------------------------------------------------------------------|
+| **Native S3** (`flink-s3-fs-native`) | ✓ | ✓ | Built on AWS SDK v2; no
Hadoop dependency. Generally available since Flink 2.4. |
+| **Presto S3** (`flink-s3-fs-presto`) | ✓ | x | Production-proven for
checkpointing. |
| **Hadoop S3** (`flink-s3-fs-hadoop`) | ✓ | ✓ | Mature; the only stable
implementation that provides `RecoverableWriter` for the FileSink. |
Previously, users had to choose between Presto (recommended for checkpointing
throughput) and Hadoop (the only implementation with `RecoverableWriter`,
required by the [FileSink]({{< ref "docs/connectors/datastream/filesystem"
>}})). The Native S3 implementation unifies both capabilities in a single
plugin and measurements show significant checkpoint throughput improvements
over the Presto implementation.
@@ -149,11 +149,7 @@ The legacy configuration key `s3.path.style.access` is
still supported as a fall
## Implementation Details
-### Native S3 FileSystem (Experimental)
-
-{{< hint warning >}}
-**Experimental**: The Native S3 FileSystem is experimental in Flink 2.3. It is
functionally complete and has demonstrated strong performance in benchmarks.
-{{< /hint >}}
+### Native S3 FileSystem
The Native S3 FileSystem is a pure-Java implementation built on the AWS SDK v2
completely removing the dependency on Hadoop. It is registered under the
schemes *s3://* and *s3a://*. It provides a drop-in replacement for the Presto
and Hadoop implementations, supporting checkpointing, the [FileSink]({{< ref
"docs/connectors/datastream/filesystem" >}}) (via `RecoverableWriter`),
server-side encryption (SSE-S3, SSE-KMS), cross-account access via IAM role
assumption, entropy injection, and b [...]
diff --git
a/flink-filesystems/flink-s3-fs-native/src/main/java/org/apache/flink/fs/s3native/NativeS3AFileSystemFactory.java
b/flink-filesystems/flink-s3-fs-native/src/main/java/org/apache/flink/fs/s3native/NativeS3AFileSystemFactory.java
index a91853ae440..d74d64677a0 100644
---
a/flink-filesystems/flink-s3-fs-native/src/main/java/org/apache/flink/fs/s3native/NativeS3AFileSystemFactory.java
+++
b/flink-filesystems/flink-s3-fs-native/src/main/java/org/apache/flink/fs/s3native/NativeS3AFileSystemFactory.java
@@ -18,8 +18,6 @@
package org.apache.flink.fs.s3native;
-import org.apache.flink.annotation.Experimental;
-
/**
* Factory for the native S3 file system registered for the {@code s3a://}
scheme.
*
@@ -29,7 +27,6 @@ import org.apache.flink.annotation.Experimental;
* <p>All configuration options are the same as for the {@code s3://} scheme.
See {@link
* NativeS3FileSystemFactory} for available options.
*/
-@Experimental
public class NativeS3AFileSystemFactory extends NativeS3FileSystemFactory {
@Override
diff --git
a/flink-filesystems/flink-s3-fs-native/src/main/java/org/apache/flink/fs/s3native/NativeS3FileSystemFactory.java
b/flink-filesystems/flink-s3-fs-native/src/main/java/org/apache/flink/fs/s3native/NativeS3FileSystemFactory.java
index 63f6ac118ee..55a48debfda 100644
---
a/flink-filesystems/flink-s3-fs-native/src/main/java/org/apache/flink/fs/s3native/NativeS3FileSystemFactory.java
+++
b/flink-filesystems/flink-s3-fs-native/src/main/java/org/apache/flink/fs/s3native/NativeS3FileSystemFactory.java
@@ -18,7 +18,6 @@
package org.apache.flink.fs.s3native;
-import org.apache.flink.annotation.Experimental;
import org.apache.flink.configuration.ConfigOption;
import org.apache.flink.configuration.ConfigOptions;
import org.apache.flink.configuration.Configuration;
@@ -61,7 +60,6 @@ import java.util.Map;
* @see NativeS3FileSystem
* @see org.apache.flink.core.fs.FileSystemFactory
*/
-@Experimental
public class NativeS3FileSystemFactory implements FileSystemFactory,
MetricsAware {
private static final Logger LOG =
LoggerFactory.getLogger(NativeS3FileSystemFactory.class);
diff --git
a/flink-filesystems/flink-s3-fs-native/src/main/java/org/apache/flink/fs/s3native/writer/NativeS3RecoverableWriter.java
b/flink-filesystems/flink-s3-fs-native/src/main/java/org/apache/flink/fs/s3native/writer/NativeS3RecoverableWriter.java
index ab84189a6a3..4440d004512 100644
---
a/flink-filesystems/flink-s3-fs-native/src/main/java/org/apache/flink/fs/s3native/writer/NativeS3RecoverableWriter.java
+++
b/flink-filesystems/flink-s3-fs-native/src/main/java/org/apache/flink/fs/s3native/writer/NativeS3RecoverableWriter.java
@@ -18,7 +18,6 @@
package org.apache.flink.fs.s3native.writer;
-import org.apache.flink.annotation.Experimental;
import org.apache.flink.core.fs.Path;
import org.apache.flink.core.fs.RecoverableFsDataOutputStream;
import org.apache.flink.core.fs.RecoverableWriter;
@@ -36,7 +35,6 @@ import java.util.concurrent.atomic.AtomicBoolean;
import static org.apache.flink.util.Preconditions.checkNotNull;
/** Recoverable writer for S3 using multipart uploads for exactly-once
semantics. */
-@Experimental
public class NativeS3RecoverableWriter implements RecoverableWriter,
AutoCloseable {
private static final Logger LOG =
LoggerFactory.getLogger(NativeS3RecoverableWriter.class);