Protocol buffers 确保flink中protobuf状态对象的状态模式演化
我试图找出如何为protobuf状态启用模式演化。我们的flink程序是用Scala 2.11编写的,我们使用flink 1.10.1和scalapb生成protobuf代码。RocksDB用作状态后端 我正在为包含4个双字段的protobuf消息编写一个Protocol buffers 确保flink中protobuf状态对象的状态模式演化,protocol-buffers,apache-flink,Protocol Buffers,Apache Flink,我试图找出如何为protobuf状态启用模式演化。我们的flink程序是用Scala 2.11编写的,我们使用flink 1.10.1和scalapb生成protobuf代码。RocksDB用作状态后端 我正在为包含4个双字段的protobuf消息编写一个TypeSerializer。这将是一个PoC,因此我为此选择的消息格式非常简单 弗林克的这一方面似乎没有得到充分的记录。在TypeSerializer中,除了snapshotConfiguration之外,我尽我所能实现了所有必需的方法。中途
TypeSerializer
。这将是一个PoC,因此我为此选择的消息格式非常简单
弗林克的这一方面似乎没有得到充分的记录。在TypeSerializer
中,除了snapshotConfiguration
之外,我尽我所能实现了所有必需的方法。中途我在java API文档中发现了ProtobufSerializer
,ProtobufTypeSerializer
和ProtobufTypeSerializerSnapshot
类,这些类在文章中根本没有提到
现在,具体问题:
快照配置
方法?我在这里画了一个空白,特别是在序列化程序快照中包含哪些内容,以便能够确定序列化程序之间的兼容性(TypeSerializerSnapshot#resolveSchemaCompatibility
)TypeSerializer
getLength
是否正确。我假设4个double需要4 x 24=96字节,但protobuf消息即使在4个double的情况下也不是恒定长度TypeSerializer
方法会发生什么?在我的例子中,他们抛出了一个异常。如果isImmutableType=true
,它们是否被调用