Uploaded image for project: 'Flink'
  1. Flink
  2. FLINK-8715

RocksDB does not propagate reconfiguration of serializer to the states

    XMLWordPrintableJSON

Details

    • Bug
    • Status: Resolved
    • Blocker
    • Resolution: Fixed
    • 1.3.2
    • 1.5.0
    • None

    Description

      Any changes to the serializer done in #ensureCompability are lost during the state creation.

      In particular, https://github.com/apache/flink/blob/master/flink-state-backends/flink-statebackend-rocksdb/src/main/java/org/apache/flink/contrib/streaming/state/RocksDBValueState.java#L68 always uses a fresh copy of the StateDescriptor.

      An easy fix is to pass the reconfigured serializer as an additional parameter in https://github.com/apache/flink/blob/master/flink-state-backends/flink-statebackend-rocksdb/src/main/java/org/apache/flink/contrib/streaming/state/RocksDBKeyedStateBackend.java#L1681 , which can be retrieved through the side-output of getColumnFamily

      kvStateInformation.get(stateDesc.getName()).f1.getStateSerializer()
      

      I encountered it in 1.3.2 but the code in the master seems unchanged (hence the pointer into master). I encountered it in ValueState, but I suspect the same issue can be observed for all kinds of RocksDB states.

      Attachments

        Issue Links

          Activity

            People

              tzulitai Tzu-Li (Gordon) Tai
              arvid Arvid Heise
              Votes:
              0 Vote for this issue
              Watchers:
              8 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved: