Status
Discussion thread | https://lists.apache.org/list.html?dev@flink.apache.org |
---|---|
Vote thread | |
JIRA: | https://issues.apache.org/jira/browse/FLINK-18255 |
Released | 1.19 |
Current state: [One of "Under Discussion", "Accepted", "Rejected"]
Discussion thread: here (<- link to https://mail-archives.apache.org/mod_mbox/flink-dev/)
JIRA: here (<- link to https://issues.apache.org/jira/browse/FLINK-18255)
Released: <1.19>
Please keep the discussion on the mailing list rather than commenting on the wiki (wiki discussions get unwieldy fast).
Motivation
As described in FLINK-18255[1] , several user-facing classes in flink-statebackend-rocksdb module don't have any API annotations, not even @PublicEvolving. These should be added to clarify their usage.
[1] https://issues.apache.org/jira/browse/FLINK-18255
Public Interfaces & Proposed Changes
This FLIP will add API annotations for Rocksdb StateBackend user-facing classes. The classes listed below are not annotated currently, and I propose that they are annotated as listed below on the right.
Class (in flink-statebackend-rocksdb module) | annotation that need be added |
---|---|
ConfigurableRocksDBOptionsFactory | @PublicEvolving |
RocksDBConfigurableOptions | @PublicEvolving |
RocksDBNativeMetricOptions | @PublicEvolving |
RocksDBOptions | @PublicEvolving |
RocksDBOptionsFactory | @PublicEvolving |
RocksDBStateBackendFactory | @PublicEvolving |
SingleStateIterator | @Internal |
RocksDBRestoreOperation | @Internal |
RocksDBStateDownloader | @Internal |
RocksDBStateUploader | @Internal |
Moreover, EmbeddedRocksDBStateBackend and EmbeddedRocksDBStateBackendFactory have beed marked as @PublicEvolving , so this FLIP don't need to consider them.
Compatibility, Deprecation, and Migration Plan
As declared in the "Flink API Compatibility Guarantee"[2], any API without annotations is considered internal to Flink, with no guarantees being provided. Therefore, marking the classes which don't have annotations previously as @PublicEvolving does not break compatibility rules for existing users.
Rejected Alternatives
None.