On Fri, Feb 21, 2014 at 11:42 PM, Oleg Zabluda <[email protected]> wrote: > Dmitry, previously, you said that MPMC queue is an anti-pattern: > https://groups.google.com/forum/#!msg/comp.programming.threads/AYgyIH-pVz4/DTrviZjEUq0J > > And yet it keeps coming up in this newsgroup (with comments by you) and is > present on 1024cores. Why is that?
Hi, Well, it's not completely black-white. There are legitimate use cases for MPMC. One such case was discussed here recently, basically you have a moderate contention case and MPMC queue allows you to significantly simplify system structure. Another case is e.g. Go channels, where semantics require you to provide an MPMC queue, but you can do your best to make it fast and scalable. However, all scalable fine-grained schedulers use SCMP deques/MPSC queues sacrificing system complexity. What I meant is that you should not start with dropping in an MPMC queue into design, and then trying to solve scalability problem by optimizing the queue implementation. And that is what people frequently do expecting that "lock-free magic" will magically solve all problems. -- --- You received this message because you are subscribed to the Google Groups "Scalable Synchronization Algorithms" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. To view this discussion on the web visit https://groups.google.com/d/msgid/lock-free/CAEeQi3se-U2KsHbfQ--5_uT4B8CEiLyYCuL6PJ%3D3DSeWNR3zbA%40mail.gmail.com. For more options, visit https://groups.google.com/groups/opt_out.
