Hi Mageshwaran, SEGMENT_SIZE must be power of 2 in order to fit into max long (in case that message xid reaches 2^64). But that is just an implementation detail.
Queue segments are arrays and amount of used instances is driven by demand from consumer (e.g.: ofplugin outbound mechanism). By low traffic there might be only 2 segment instances used. As soon as the first one is full then the overlaying outbound queue takes the second one. And as soon as all messages in the first segment are done (confirmed, failed or covered by subsequent barrier) then the first segment gets recycled. The original message reference is erased upon being sent and corresponding callback reference is erased upon completion/failure fired. This makes segment entries (OutboundQueueEntry) friendly to garbage collector. In nutshell : Segments are cheap. And as soon as a OF message is subject to rpc (or some asynchronous mechanism) then it is essential to detect when device finished processing it. In my opinion - until there is no profiling data pointing at memory leak around outbound queue and segments I would postpone any optimization. Especially when based on setups with low utilization. Regarding the RpcResponseKey - this is the old way of getting device reply within a hardcoded interval. It is still used before the outbound queue mechanism is plugged in (between connection established and protocol handshake finish). Regards, Michal ________________________________ From: [email protected] <[email protected]> on behalf of Anil Vishnoi <[email protected]> Sent: Monday, February 20, 2017 22:35 To: Mageshwaran Vaithianathan Cc: [email protected]; [email protected] Subject: Re: [openflowjava-dev] [openflowplugin-dev] StackedSegment SEGMENT_SIZE = 4096 +openflowjava On Wed, Feb 15, 2017 at 2:20 AM, Mageshwaran Vaithianathan <[email protected]<mailto:[email protected]>> wrote: Hello Team, Can you please let me know the reason for setting the SEGMENT_SIZE to 4096 in StackedSegment.java? . What will be the appropriate use-case for the same. "/openflowjava/openflow-protocol-impl/src/main/java/org/opendaylight/openflowjava/protocol/impl/core/connection/StackedSegment.java" I am observing that the queue is not getting completely utilised always. My understanding is only those mesages which expects a Reply from the switch will be using this segment for the RpcResponseKey. Is this interpretation correct? Best Regards Mageshwaran Vaithianathan _______________________________________________ openflowplugin-dev mailing list [email protected]<mailto:[email protected]> https://lists.opendaylight.org/mailman/listinfo/openflowplugin-dev -- Thanks Anil
_______________________________________________ openflowplugin-dev mailing list [email protected] https://lists.opendaylight.org/mailman/listinfo/openflowplugin-dev
