-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://reviews.apache.org/r/61058/#review181840
-----------------------------------------------------------




3rdparty/libprocess/src/event_queue.hpp
Lines 328 (patched)
<https://reviews.apache.org/r/61058/#comment257610>

    I don't think this queue matches the requirements for an actor system. This 
queue uses sub-queues as a performance optimization and the ordering between 
the different queues is not guaranteed. The assumption here is, that causal 
ordering only needs to be maintained per thread. In an actor system however, 
there is no guarantee on which thread an actor will run. Think of following 
scenario:
    
    Actor A receives a burst of messages and takes some time to process them.
    
    Actor B receives a message gets dispatched to Thread 1 and sends a message 
to Actor A. The queue of Actor B is now empty, so it donates the thread back to 
the pool. 
    
    Actor A is still busy processing the messages it received earlier and did 
not process the message that Actor B sent.
    
    Actor B receives another message and gets dispatched to Thread 2. It now 
sends another message to Actor A. 
    
    Now Actor A received 2 messages from Actor B from 2 different threads. The 
moodycamel queue does not guarantee the order of those messages. This violates 
the arrival ordering defined in the actor model and makes it impossible to 
reason about message ordering between two actors.


- Dario Rexin


On July 29, 2017, 8:52 p.m., Benjamin Hindman wrote:
> 
> -----------------------------------------------------------
> This is an automatically generated e-mail. To reply, visit:
> https://reviews.apache.org/r/61058/
> -----------------------------------------------------------
> 
> (Updated July 29, 2017, 8:52 p.m.)
> 
> 
> Review request for mesos and Benjamin Mahler.
> 
> 
> Bugs: MESOS-7798
>     https://issues.apache.org/jira/browse/MESOS-7798
> 
> 
> Repository: mesos
> 
> 
> Description
> -------
> 
> Added a lock-free event queue.
> 
> 
> Diffs
> -----
> 
>   3rdparty/libprocess/configure.ac cb2cf4f32be5cbdf9df1e32f9aaf2bbba0a5ae03 
>   3rdparty/libprocess/src/event_queue.hpp PRE-CREATION 
>   3rdparty/libprocess/src/process.cpp 
> b268cdad776a3ca2a87cbe60eb098bde2a70667c 
> 
> 
> Diff: https://reviews.apache.org/r/61058/diff/3/
> 
> 
> Testing
> -------
> 
> make check
> 
> 
> Thanks,
> 
> Benjamin Hindman
> 
>

Reply via email to