Wednesday, January 3, 2018

Digest for comp.programming.threads@googlegroups.com - 1 update in 1 topic

Intelli2 <intelli2@mama.com>: Jan 02 02:07PM -0500

Hello..
 
 
Read this about the LMAX Disruptor, it is not a general purpose
mechanism, it is not suited for all applications.
 
"You can see this in the way that producers add values to the ring: they
first reserve a slot, then later publish it. If there are two
publishers, and one pauses in the middle (e.g. because the operating
system or virtual machine does a context switch), it stalls all
consumers. A second example is that if you want to distribute work
across a pool of threads, the Disruptor can't help. The FAQ suggests
distributing work modulo the number of workers, but what happens when
one work unit is much more expensive than others for some reason? It
ends up stalling all the future work assigned to that task.
ArrayBlockingQueue, which they clobber in their benchmarks, is much more
forgiving.
 
My point is that even though their ring buffer is very well designed and
tuned for high performance, it isn't an appropriate choice for all
applications. However, if you have producer/consumer queues in your
code, you probably should look to see if Disruptors will match your
needs, and anyone interested in high performance code should read their
paper and/or blog posts."
 
Read more here:
 
http://www.evanjones.ca/lmax-disruptor.html
 
 
This is why i have come with my scalable C++ FIFO queues here:
 
https://sites.google.com/site/aminer68/scalable-fifo-queues-for-c
 
 
And I am actually finishing implemeting my new inventions that are a
scalable Waifree FIFO queue and a scalable Lockfree FIFO queue.
 
 
Please stay tuned !
 
Thank you,
Amine Moulay Ramdane.
You received this digest because you're subscribed to updates for this group. You can change your settings on the group membership page.
To unsubscribe from this group and stop receiving emails from it send an email to comp.programming.threads+unsubscribe@googlegroups.com.

No comments: