Native s3 Filesystem Blog#860
Conversation
| slug: "announcing-native-s3-fs" | ||
| url: "/2026/06/14/announcing-native-s3-fs/" | ||
| authors: | ||
| - gabor: |
There was a problem hiding this comment.
Are there github names?
|
cc @davidradl if you have some time, since you're native 🙂 |
|
|
||
| Apache Flink relies on the underlying filesystem for much of its work: reading and writing application data, materializing streaming sinks, and storing checkpoints and savepoints for recovery. For years, S3 support in Flink meant choosing between two Hadoop-based plugins, each with its own trade-offs and configuration quirks. With Flink 2.3, there is a better option. | ||
|
|
||
| Today we're introducing `flink-s3-fs-native`, A ground-up, Hadoop-free S3 filesystem built specifically for Flink. It ships as an experimental opt-in plugin in Flink 2.3, is already running in production at scale at major technology companies, and delivers measurable, reproducible performance gains. |
There was a problem hiding this comment.
I wonder if the op-in plugin could be turned into a hyperlink to a section that describes it.
|
|
||
| | | | | ||
| |---|---| | ||
| | **~2x faster checkpoints** | 48.8 s average vs 90.1 s with the Presto plugin; up to 4.5x at small state sizes | |
There was a problem hiding this comment.
maybe point to the test section with a hyper link
| | **~2x faster checkpoints** | 48.8 s average vs 90.1 s with the Presto plugin; up to 4.5x at small state sizes | | ||
| | **Drop-in replacement** | Swap the JAR, keep your existing `flink-conf.yaml`, restart your cluster | | ||
| | **No Hadoop dependency** | ~13 MB JAR vs ~30–93 MB; no CVE triage on Hadoop transitive dependencies | | ||
| | **AWS SDK v2** | Async-first I/O; AWS SDK v1 entered maintenance mode December 2025 | |
There was a problem hiding this comment.
hyper links for the AWS things and end date would be helpful.
|
|
||
| Both share a common base layer that adapts a Hadoop `FileSystem` into a Flink `FileSystem`. This adaptation layer adds indirection, limits Flink-specific optimizations, and ties the implementation to Hadoop's configuration model and SDK lifecycle. | ||
|
|
||
| As a result, you could have exactly-once sinks or a lighter read path, but not both. In addition, you are carrying Hadoop dependency hell. |
|
|
||
| ### Test environment | ||
|
|
||
| The benchmark ran on Amazon EKS (ap-south-1) with a Flink 2.1.1 cluster composed of 1 JobManager (2 GB memory, 1 core) and 2 TaskManagers (6 GB memory, 1.5 cores, 4 task slots each) for a total parallelism of 8. The workload targeted 20 GB of RocksDB state with full, non-incremental checkpoints every 60 seconds in EXACTLY_ONCE mode. The test ran for approximately 77 minutes. Configurations for both plugins were identical except for the plugin JAR itself. |
There was a problem hiding this comment.
Add a caveat that users performance might differ.
Can we point to the payloads - so users can run exactly this benchmark?
| - **Enhanced observability** : S3 operation metrics (latency, retry counts, throughput) exposed through Flink's metric system, giving platform teams visibility into S3 I/O behavior. | ||
| - **Stream-based S3 read/write** : Improving memory efficiency for large object operations. | ||
|
|
||
| **Phase 2: Recommended default.** Once stability is proven across a broad set of community deployments, the native plugin will be promoted to the recommended default for new Flink installations. Documentation, quickstarts, and tutorials will be updated accordingly. |
There was a problem hiding this comment.
how will be know that "proven across a broad set of community deployments" has happened.
|
|
||
| **Phase 2: Recommended default.** Once stability is proven across a broad set of community deployments, the native plugin will be promoted to the recommended default for new Flink installations. Documentation, quickstarts, and tutorials will be updated accordingly. | ||
|
|
||
| **Phase 3: Legacy deprecation.** The Hadoop and Presto plugins will be formally deprecated with a defined support window before removal. |
There was a problem hiding this comment.
we could deprecate in phase 1. As we do not intend to enhance these connectors.
|
|
||
| `flink-s3-fs-native` is part of Apache Flink and is developed in the open. The module lives at `flink-filesystems/flink-s3-fs-native` in the [Flink repository](https://github.com/apache/flink). | ||
|
|
||
| The migration is safe and requires minimal deployment changes. If your team is already evaluating or running this in production, we want to hear from you. Your feedback directly shapes the path from experimental to default. |
There was a problem hiding this comment.
Maybe be explicit as to how to contact us about this. Is there a tag that should be used in a dev list post?
No description provided.