[ https://issues.apache.org/jira/browse/FLINK-11141?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Congxian Qiu(klion26) reassigned FLINK-11141: --------------------------------------------- Assignee: (was: Congxian Qiu(klion26)) > Key generation for RocksDBMapState can theoretically be ambiguous > ----------------------------------------------------------------- > > Key: FLINK-11141 > URL: https://issues.apache.org/jira/browse/FLINK-11141 > Project: Flink > Issue Type: Bug > Components: Runtime / State Backends > Affects Versions: 1.5.5, 1.6.2, 1.7.0 > Reporter: Stefan Richter > Priority: Critical > > RocksDBMap state stores values in RocksDB under a composite key from the > serialized bytes of {{key-group-id|key|namespace|user-key}}. In this > composition, key, namespace, and user-key can either have fixed sized or > variable sized serialization formats. In cases of at least 2 variable > formats, ambiguity can be possible, e.g.: > abcd <-> efg > abc <-> defg > Our code takes care of this for all other states, where composite keys only > consist of key and namespace by checking for 2x variable size and appending > the serialized length to each byte sequence. > However, for map state there is no inclusion of the user-key in the check for > potential ambiguity, as well as for appending the size. This means that, in > theory, some combinations can produce colliding composite keys in RocksDB. > What is required is to include the user-key serializer in the check and > append the length there as well. > Please notice that this cannot be simply changed because it has implications > for backwards compatibility and requires some form of migration for the state > keys on restore. -- This message was sent by Atlassian JIRA (v7.6.3#76005)