> On Feb 14, 2016, at 9:54 PM, IWAMOTO Toshihiro <[email protected]> wrote:
<snip/>

> I think you can use eventlet.queue.PriorityQueue instead of these 3
> queues.  (see below)
> 
> Let us have:
> 
>       self.events = hub.PriorityQueue(128)
> 

No, this will not work.
If the priority queue becomes full, lower priority items blocked awaiting 
insertion ahead of higher priority items into the single queue *will* cause a 
priority inversion.

You *need* 3 queues, for the three different types of items, if you wish to 
avoid priority inversion as a result of blocking awaiting insertion.

> 
> And a single semaphore would do, if needed at all.
> 

Again - I can *assure* you, there is a bug in eventlet queues, that *requires* 
the semaphore.
Under heavy load, there are missed wakeups.

<snip/>
>> +            if ev is None:
>> +                try:
>> +                    ev, state = 
>> self.pi_events.get(timeout=self._event_get_timeout)
> 
> 
> This will harm responsiveness.
> 

In my testing, it does not.
Responsiveness (to PacketIn events) would *only* be harmed in the case where 
events other than PacketIn *greatly* outnumber the number of PacketIn events. 
In my experience, PacketIns *tend* to outnumber all other events, when they are 
being used by the controller application.

If it is the timeout that you are concerned about - the timeout is only awaited 
*if* there are no PacketIn events present. The hub is free to schedule other 
greenlets during this time, and the arrival of a PacketIn event in the queue 
before the end of the timeout will result in the greenlet being unblocked.

Please explain the basis for your assertion that this will "harm 
responsiveness," and I will gladly explain my logic for why it will not.

I emphatically do *not* agree, however, with the use of a single PriorityQueue.
Priority inversion *will* result, as soon as the number of events being 
processed exceeds the capacity of the queue.

Best,
Victor
--
Victor J. Orlikowski <> vjo@[cs.]duke.edu


------------------------------------------------------------------------------
Site24x7 APM Insight: Get Deep Visibility into Application Performance
APM + Mobile APM + RUM: Monitor 3 App instances at just $35/Month
Monitor end-to-end web transactions and take corrective actions now
Troubleshoot faster and improve end-user experience. Signup Now!
http://pubads.g.doubleclick.net/gampad/clk?id=272487151&iu=/4140
_______________________________________________
Ryu-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/ryu-devel

Reply via email to