Package org.jgroups.protocols.pbcast
Class STATE_SOCK
java.lang.Object
org.jgroups.stack.Protocol
org.jgroups.protocols.pbcast.StreamingStateTransfer
org.jgroups.protocols.pbcast.STATE_SOCK
- All Implemented Interfaces:
Lifecycle,ProcessingQueue.Handler<Address>
STATE_SOCK has the state provider create a server socket to which the state
requester connects and from which the latter reads the state.
When implementing Receiver.getState(java.io.OutputStream), the state should be written in
sizeable chunks, because the underlying output stream sends 1 message / write over the socket. So if there are 1000
writes of 1 byte each, this would generate 1000 messages ! We suggest using a BufferedOutputStream
over the output stream handed to the application as argument of the callback.
When implementing the Receiver.setState(java.io.InputStream) callback, there is no need to use a
BufferedOutputStream, as the input stream handed to the application already buffers incoming data
internally.
- Since:
- 3.0
- See Also:
-
Nested Class Summary
Nested ClassesNested classes/interfaces inherited from class org.jgroups.protocols.pbcast.StreamingStateTransfer
StreamingStateTransfer.StateGetter, StreamingStateTransfer.StateHeader -
Field Summary
FieldsModifier and TypeFieldDescriptionprotected InetAddressprotected Stringprotected intprotected InetAddressprotected intprotected intprotected STATE_SOCK.StateProviderAcceptorRunnable that listens for state requests and spawns threads to serve those requests if socket transport is usedFields inherited from class org.jgroups.protocols.pbcast.StreamingStateTransfer
avg_state_size, buffer_size, flushProtocolInStack, max_pool, members, num_bytes_sent, num_state_reqs, pool_thread_keep_alive, state_provider, state_requesters, thread_poolFields inherited from class org.jgroups.stack.Protocol
after_creation_hook, down_prot, ergonomics, id, local_addr, log, policies, stack, stats, up_prot -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionprotected voidprotected STATE_SOCK.StateProviderAcceptorprotected Tuple<InputStream, Object> createStreamToProvider(Address provider, StreamingStateTransfer.StateHeader hdr) Creates an InputStream to the state provider to read the state.protected voidhandleConfig(Map<String, Object> config) protected voidhandleStateReq(Address requester) protected voidprotected voidvoidstop()Called on aJChannel.disconnect(); stops work (e.g.Methods inherited from class org.jgroups.protocols.pbcast.StreamingStateTransfer
closeBarrierAndSuspendStable, closeHoleFor, createStreamToRequester, createThreadPool, destroy, determineCoordinator, down, getAverageStateSize, getNumberOfStateBytesSent, getNumberOfStateRequests, getStateFromApplication, getThreadPoolCompletedTasks, getThreadPoolSize, handle, handle, handleEOF, handleException, handleStateChunk, handleStateRsp, init, isDigestNeeded, openBarrier, openBarrierAndResumeStable, punchHoleFor, requiredDownServices, resetStats, resumeStable, sendEof, sendException, setStateInApplication, start, up, up, up, useAsyncStateDeliveryMethods inherited from class org.jgroups.stack.Protocol
accept, addPolicy, addr, addr, afterCreationHook, down, down, enableStats, getAddress, getComponents, getDownProtocol, getDownServices, getId, getIdsAbove, getLevel, getLog, getName, getPolicies, getProtocolStack, getSocketFactory, getThreadFactory, getTransport, getUpProtocol, getUpServices, getValue, isErgonomics, level, parse, policies, providedDownServices, providedUpServices, removePolicy, requiredUpServices, resetStatistics, setAddress, setDownProtocol, setErgonomics, setId, setLevel, setPolicies, setProtocolStack, setSocketFactory, setUpProtocol, setValue, statsEnabled, toString
-
Field Details
-
bind_addr
-
external_addr
-
external_port
protected int external_port -
bind_interface_str
-
bind_port
protected int bind_port -
recv_buf_size
protected int recv_buf_size -
spawner
Runnable that listens for state requests and spawns threads to serve those requests if socket transport is used
-
-
Constructor Details
-
STATE_SOCK
public STATE_SOCK()
-
-
Method Details
-
stop
public void stop()Description copied from class:ProtocolCalled on aJChannel.disconnect(); stops work (e.g. by closing multicast socket). Will be called from top to bottom.- Specified by:
stopin interfaceLifecycle- Overrides:
stopin classStreamingStateTransfer
-
createAcceptor
- Throws:
Exception
-
modifyStateResponseHeader
- Overrides:
modifyStateResponseHeaderin classStreamingStateTransfer
-
createStreamToProvider
protected Tuple<InputStream,Object> createStreamToProvider(Address provider, StreamingStateTransfer.StateHeader hdr) throws Exception Description copied from class:StreamingStateTransferCreates an InputStream to the state provider to read the state. Return the input stream and a handback object as a tuple. The handback object is handed back to the subclass when done, or in case of an error (e.g. to clean up resources)- Specified by:
createStreamToProviderin classStreamingStateTransfer- Throws:
Exception
-
close
- Overrides:
closein classStreamingStateTransfer
-
handleStateReq
- Overrides:
handleStateReqin classStreamingStateTransfer- Throws:
Exception
-
handleViewChange
- Overrides:
handleViewChangein classStreamingStateTransfer
-
handleConfig
- Overrides:
handleConfigin classStreamingStateTransfer
-