Hi community, Apache Flink 1.8.0 has been released a few weeks ago, so naturally, it’s time to start thinking about what we want to aim for 1.9.0.
Kurt and I had collected some features that would be reasonable to consider including for the next release, based on talking with various people as well as observations from mailing list discussions and questions. Note that having specific features listed here does not mean that no other pull requests or topics will be reviewed. I am sure that there are other ongoing efforts that we missed here and will likely make it as an improvement or new feature in the next release. This discussion is merely for bootstrapping a discussion for 1.9, as well as to give contributors an idea of what the community is looking to focus on in the next couple of weeks. *Proposed features and focus* In the previous major release, Apache Flink 1.8.0, the community had prepared for some major Table & SQL additions from the Blink branch. With this in mind, for the next release, it would be great to wind up those efforts by merging in the Blink-based Table / SQL planner and runtime for 1.9. Following Stephan’s previous thread [1] in the mailing list about features in Blink, we should also start focusing on preparing for Blink’s other several enhancements for batch execution. This includes resource optimization, fine-grained failover, pluggable shuffle service, adapting stream operators for batch execution, as well as better integration with commonly used systems by batch executions such as Apache Hive. Moreover, besides efforts related to the Blink merge, we would also like us to work towards pushing forward some of the most discussed and anticipated features by the community. Most of these had discussions in the mailing lists that span multiple releases, and are also frequently brought up in community events such as Flink Forward. This includes features such as source event-time alignment and the source interface rework, a savepoint connector that allows users to manipulate and query state in savepoints, interactive programming, as well as terminating a job with a final savepoint. Last but not least, we have several existing contributions or discussions for the ecosystem surrounding Flink, which we think is also very valuable to try to merge in for 1.9. This includes a web UI rework (recently already merged), active K8s integration, Google PubSub connector, native support for the Protobuf format, Python support in the Table API, as well as reworking Flink’s support for machine learning. To wrap this up as a list of items, some of which already have JIRAs or mailing list threads to track them: - Merge Blink runner for Table & SQL [2] - Restructure flink-table to separate API from core runtime - Make table planners pluggable - Rework Table / SQL type system to integrate better with the SQL standard [3] - Merge Blink planner and runtime for Table / SQL - Further preparations for more batch execution optimization from Blink - Dedicated scheduler component [4] - Fine grained failover for batch [5] - Selectable input stream operator [6] - Pluggable Shuffle Service [7] - FLIP-30: Unified Catalog API & Hive metastore integration [8] - Heavily anticipated / discussed features in the community - FLIP-27: Source interface rework [9] - Savepoint connector [10] - FLIP-34: Terminate / Suspend job with savepoint [11] - FLIP-36: Interactive Programming [12] - Ecosystem - Web UI rework [13] - Active K8s integration [14] - Google PubSub connector [15] - First-class Protobuf support [16] - FLIP-38: Python support in Table API [17] - FLIP-39: Flink ML pipeline and libraries on top of Table API [18] *Suggested release timeline* Apache Flink 1.8.0 was released earlier this month, so based on our usual timely release schedule, we should aim for releasing 1.9.0 around mid to end July. Since it seems that this is going to be a fairly large release, to give the community enough testing time, I propose that the feature freeze to be near the end of June (8-9 weeks from now, probable June 28). This is of course a ballpark estimation for now; we should follow-up with a separate thread later in the release cycle to prepare contributors with an official feature freeze date. I’d also like to use this opportunity to propose myself and Kurt as the release managers for 1.9. AFAIK, we did not used to have 2 RMs for a single release in the past, but 1.9.0 is definitely quite ambitious so it would not hurt to have one more on board :) Cheers, Gordon [1] http://apache-flink-mailing-list-archive.1008284.n3.nabble.com/DISCUSS-Flink-1-6-features-td22632.html [2] https://issues.apache.org/jira/browse/FLINK-11439 [3] https://issues.apache.org/jira/browse/FLINK-12251 [4] https://issues.apache.org/jira/browse/FLINK-10429 [5] http://apache-flink-mailing-list-archive.1008284.n3.nabble.com/DISCUSS-Backtracking-for-failover-regions-td28293.html [6] http://apache-flink-mailing-list-archive.1008284.n3.nabble.com/DISCUSS-Enhance-Operator-API-to-Support-Dynamically-Selective-Reading-and-EndOfInput-Event-td26753.html [7] https://issues.apache.org/jira/browse/FLINK-10653 [8] https://issues.apache.org/jira/browse/FLINK-11275 [9] http://apache-flink-mailing-list-archive.1008284.n3.nabble.com/DISCUSS-FLIP-27-Refactor-Source-Interface-td24952i20.html [10] https://issues.apache.org/jira/browse/FLINK-12047 [11] http://apache-flink-mailing-list-archive.1008284.n3.nabble.com/DISCUSS-FLIP-33-Terminate-Suspend-Job-with-Savepoint-td26927.html [12] https://cwiki.apache.org/confluence/display/FLINK/FLIP-36%3A+Support+Interactive+Programming+in+Flink [13] https://issues.apache.org/jira/browse/FLINK-10705 [14] https://issues.apache.org/jira/browse/FLINK-9953 [15] https://issues.apache.org/jira/browse/FLINK-9311 [16] https://issues.apache.org/jira/browse/FLINK-11333 [17] http://apache-flink-mailing-list-archive.1008284.n3.nabble.com/DISCUSS-FLIP-38-Support-python-language-in-flink-TableAPI-td28061.html [18] http://apache-flink-mailing-list-archive.1008284.n3.nabble.com/DISCUSS-FLIP-39-Flink-ML-pipeline-and-ML-libs-td28633.html