Hey,
Complete state transfer, as you might be aware, consists of transferring transient
(in-memory) state, associated state (pojo reference map) and persistent state (state
fetched from cacheloader). All three states are part of the stream passed between state
recipient and state receiver.
Current implementation does not follow all-or-nothing approach when it comes to potential
failures. Let me elaborate. At state recipient we get a stream that contains all three
states demarcated by special node markers and possibly some error markers if state
generation at state provider threw exception(s). If we encounter error markers during
stream reading we clear appropriate part of the cache at integration Fqn. Thus during
transient state reading if we encounter error markers we clear transient state at state
recipient cache node. Similarly if we encounter error markers during persistent state
reading we clear underlying cacheloader recipient.
As things stand right now we try to read persistent state from stream even though
transient or associated transfer part of the stream contained error marker(s) and were
thus not integrated in recipients cache.
Should we keep the current approach and, if not, what are you arguments against the
current approach?
View the original post :
http://www.jboss.com/index.html?module=bb&op=viewtopic&p=3971361#...
Reply to the post :
http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&a...