Skip to content

Flink 1.18: RocksDB state backend, recovery and rescaling #186

Description

@Flanderzz

Shipped

PR #198 ships the Flink 1.18 RocksDB package/factory adapters, native incremental checkpoint support and canonical savepoint projection through released host APIs. The native snapshot encoding remains shared across lines. Failed and aborted snapshot cleanup shipped in #196. Both lines pass the Java backend/operator suites and unchanged upstream state suites; the 1.18 baseline is 1,120 passed and 16 upstream skips, including 18 native and 12 expected-fallback contracted executions.

The 1.18 canonical path temporarily projects native partitions into a heap backend so explicit key-group identities survive the released API. Unwrapped stock RocksDB and changelog configurations that cannot preserve this contract decline at planning time. See backend coverage.

Remaining work

  • Prove CLAIM and NO_CLAIM restore ownership explicitly on both lines, including a subsequent checkpoint and disposal of source/restored handles without deleting live shared files.
  • Assert managed-memory leases are released on backend close and failure paths.
  • Complete the per-stateful-operator rescaling matrix in both directions, at least 1 to 2 and 2 to 1, checking that every key group appears exactly once and native leak accounting stays clean.

Use released Flink APIs and preserve the native snapshot layout. Keep evidence and per-line limitations in docs/backends/rocksdb.md. Real cross-line cluster upgrades remain tracked by #188.

Split from #182. This issue stays open for the ownership, lease and complete rescaling proof above.

Reconciled verification

Verified on main 89da01cdad7342c4d825e36eaf4e8dc73bc7af9f: CI and upstream suites both completed successfully, with 47 successful jobs in total. Results were rechecked on September 20, 2026. Existing checkpoint, canonical restore, cleanup and selected rescaling regressions are shipped. They do not complete the explicit CLAIM/NO_CLAIM ownership and lease-disposal assertions or the complete bidirectional per-operator rescaling matrix above. This is a remaining validation gap, not a finding that those implementation paths are broken.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions