STREAMING_STATE_TRANSFER , as its name implies, allows a streaming
state transfer between two channel instances.
Major advantage of this approach is that transfering application state to a
joining member of a group does not entail loading of the complete application
state into memory. Application state, for example, might be located entirely
on some form of disk based storage. The default STATE_TRANSFER
requires this state to be loaded entirely into memory before being transferred
to a group member while STREAMING_STATE_TRANSFER does not.
Thus STREAMING_STATE_TRANSFER protocol is able to transfer
application state that is very large (>1Gb) without a likelihood of such transfer
resulting in OutOfMemoryException.
Channel instance can be configured with either STREAMING_STATE_TRANSFER
or STATE_TRANSFER but not both protocols at the same time.
In order to process streaming state transfer an application has to implement
ExtendedMessageListener if it is using channel in a push style
mode or it has to process StreamingSetStateEvent and
StreamingGetStateEvent if it is using channel in a pull style mode.
author: Vladimir Blagojevic See Also: org.jgroups.ExtendedMessageListener See Also: org.jgroups.StreamingGetStateEvent See Also: org.jgroups.StreamingSetStateEvent See Also: org.jgroups.protocols.pbcast.STATE_TRANSFER since: 2.4 version: $Id$ |