增量演员状态复制?
Incremental actor state replication?
我想知道 Service Farbic 中的 actor 状态是否使用某种增量 delta/diff 机制进行复制,或者是否为每次更改复制完整状态。
假设我们有一个具有相当大状态负载的 actor,比如 100KB。我们还假设在该状态中嵌入了一个计数器值。计数器以高频变化,而其余状态以非常低的频率变化。
在这种情况下,如果为每个更改复制完整状态将是一种浪费,我们可能应该考虑另一种设计。
但是,如果 Service Farbric 能够进行增量复制,那么这种方法可能会很有吸引力。
有人知道这方面的详情吗?
也许 Service Fabric 在复制期间对序列化状态使用二进制 delta/diff 算法,或者状态更改可能是每个 state name?
这是每个州的名称。如果您查看 IActorStateProvider.SaveStateAsync
方法,您会看到它接受 ActorStateChange
的列表。持久提供程序 (KvsActorStateProvider
) 序列化该列表中的每个值(删除的情况除外),并更新存储。
我想知道 Service Farbic 中的 actor 状态是否使用某种增量 delta/diff 机制进行复制,或者是否为每次更改复制完整状态。
假设我们有一个具有相当大状态负载的 actor,比如 100KB。我们还假设在该状态中嵌入了一个计数器值。计数器以高频变化,而其余状态以非常低的频率变化。
在这种情况下,如果为每个更改复制完整状态将是一种浪费,我们可能应该考虑另一种设计。
但是,如果 Service Farbric 能够进行增量复制,那么这种方法可能会很有吸引力。
有人知道这方面的详情吗?
也许 Service Fabric 在复制期间对序列化状态使用二进制 delta/diff 算法,或者状态更改可能是每个 state name?
这是每个州的名称。如果您查看 IActorStateProvider.SaveStateAsync
方法,您会看到它接受 ActorStateChange
的列表。持久提供程序 (KvsActorStateProvider
) 序列化该列表中的每个值(删除的情况除外),并更新存储。