activemq-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Colin MacNaughton (JIRA)" <j...@apache.org>
Subject [jira] Created: (AMQ-2115) activemq-flow: Enhancements/Refactoring to prototype, Network Flow Control, use of Dispatcher for RemoteConnections, non blocking i/o building blocks
Date Mon, 16 Feb 2009 05:13:00 GMT
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


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.


Mime
View raw message