2016-07-28 75 views
2

我想知道是否使用某種增量增量/差異機制複製了服務Farbic中的actor狀態,或者是否爲每個更改複製了完整狀態。增量actor狀態複製?

假設我們有一個具有非常大的狀態有效載荷的演員,比如100KB。我們還要說一個計數器值嵌入在該狀態中。計數器在高頻時改變,而其餘狀態在非常低的頻率上改變。

在這種情況下,如果爲每次更改都複製完整狀態並且我們應該考慮另一種設計,那將是浪費。

但是,如果Service Farbric能夠進行增量複製,那麼這種方法可能會很有吸引力。

有沒有人知道這方面的細節?

也許服務結構在複製過程中對串行化狀態使用二進制增量/差異算法,或者狀態更改可能是按照狀態名稱遞增?

回答

2

這是每個州的名稱。如果您查看方法IActorStateProvider.SaveStateAsync方法,您會看到它接受ActorStateChange的列表。持久提供者(KvsActorStateProvider)序列化該列表中的每個值(除非是刪除),並更新商店。

+0

只是那種我正在尋找的答案。謝謝! –