Network IO Interface
has been edited by Aidan Skinner
(Jun 24, 2009).
(View changes)
Content:
- Problem statement
- memory usage - unbounded Mina buffers
- Overall solution
- fix buffer sizes
- ability to delay processing events in network buffer
- ability to limit incoming network traffic back to client
- Areas which need to be addressed
- one heap per session vs total job heap
- push back on processing network traffic to client
- client needs to handle pause in network processing without filling up
- Specific changes to address those areas
- broker does not retain frames outside of the network buffer.
- brokers network buffers are of a fixed, configurable, size.
- client does not retain frames outside of the network buffer
- client network writes block if the buffer is full
- see Producer flow control for more details of the higher level aspects of this, IO work is purely focussed on the network layer, not the AMQP semantics.
- Current requirements which need to be carried forward
- Buffer size tuning
- TCP nodelay toggle
- SSL - link level encryption, what about cert validation etc?
- Protect-io
- Multi-io
- Write biasing
- Plugability
- Define interface
- Decouple protocol handling from transport
- Allow arbitrary plugins to be loaded at runtime ?
|
|
---------------------------------------------------------------------
Apache Qpid - AMQP Messaging Implementation
Project: http://qpid.apache.org
Use/Interact: mailto:commits-subscr...@qpid.apache.org