我想知道 Service Farbic 中的 Actor 状态是否使用某种增量增量/差异机制进行复制,或者是否针对每次更改复制完整状态。
假设我们有一个具有相当大状态负载的 Actor,比如 100KB。我们还假设该状态中嵌入了一个计数器值。计数器以高频率改变,而其余状态以非常低的频率改变。
在这种情况下,如果每次更改都复制完整状态,那将是浪费,我们可能应该考虑另一种设计。
但是,如果 Service Farbric 能够进行增量复制,那么这种方法可能会很有吸引力。
有人知道这方面的详情吗?
也许 Service Fabric 在复制期间对序列化状态使用二进制增量/差异算法,或者状态更改可能是按状态名称递增的?
最佳答案
这是每个州的名称。如果您查看 IActorStateProvider.SaveStateAsync
方法,您将看到它接受 ActorStateChange
列表。持久化提供程序 (KvsActorStateProvider
) 序列化该列表中的每个值(删除的情况除外),并更新存储。
关于replication - 增量参与者状态复制?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38633148/