[
https://issues.apache.org/activemq/browse/AMQ-2115?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Colin MacNaughton updated AMQ-2115:
-----------------------------------
Attachment: nonblockingdisp.txt
Patch file.
> activemq-flow: Enhancements/Refactoring to prototype, Network Flow Control,
> use of Dispatcher for RemoteConnections, non blocking i/o building blocks
> -----------------------------------------------------------------------------------------------------------------------------------------------------
>
> Key: AMQ-2115
> URL: https://issues.apache.org/activemq/browse/AMQ-2115
> Project: ActiveMQ
> Issue Type: Improvement
> Affects Versions: incubation
> Environment: n/a
> Reporter: Colin MacNaughton
> Fix For: incubation
>
> Attachments: nonblockingdisp.txt
>
>
> Along with some other refactoring, these changes are an incremental step
> towards support a non blocking i/o environment conducive to single/low thread
> count broker.
> Listing of changes:
> 1. Introduced org.apache.activemq.transport.DispatchableTransport and
> DispatchableTransportServer. These can be provided a dispatcher and operate
> in a non blocking fashion. They need to be backed by a FlowController to
> avoid overflow.
> 2. Changed PipeTransportFactory to operate in non blocking fashion by
> implementing above interfaces.
> 3. Added copy of org.apache.activemq.transport.nio package which are being
> refactored so they can be used with above interfaces.
> 4. Modified RemoteProducer, RemoteConsumer and BrokerConnection to extend
> RemoteConnection to take advantage of common network level changes described
> below.
> 5. Changed RemoteConnection to incorporate network WindowLimiter which assert
> flow control via protocol instead of relying on transport level flow control.
> Also updated RemoteConnection to take a Dispatcher. Deleted
> AbstractTestConnection.
> 6. Changed FlowController and PriorityFlowController not to implement
> IFlowSink. Instead introduced org.apache.activemq.SingleFlowRelay which wraps
> the FlowController and acts as a Sink/Source that does not queue messages
> that it is passing through, this now acts as the output sink for
> RemoteConnection.
> 7. Modified test.proto ProtocolBuffers definition to include new FlowControl
> message used to communicate space released by the flow controller in support
> of using protocol based flowcontrol instead of transport based flow control.
> 8. Introduced org.apache.activemq.wireformat.StatefulWireformat which allows
> stateful non blocking marshalling/unmarshalling. Changed
> ProtoWireFormatFactory.TestWireformat to implement this so that non blocking
> i/o can be achieved.
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.