Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

Cliff Click makes a good post [1] discussing the LMAX/Disruptor architecture and how it can give large performance gains in specific circumstances (such as those generally encountered by LMAX). In particular, Disruptor works best when there is a one-to-one ratio of disruptor threads and cpu cores. Great to see Cliff rolling up his sleeves and looking into this stuff from LMAX.

Additionally Cliff points out that there really needs to be some kind of standard CPU/Socket affinity API for VMs so that the relevant threads can share L3/L2 cache and reduce bus saturation. The Managed Runtime Initiative [2] is an interesting early effort to address this and other VM common concerns.

Edit: Looks like memory latency (not bus saturation) is the big issue if producer and consumer threads end up on different CPU sockets, hence Cliff's call for an explicit CPU/socket affinity API.

[1] http://www.azulsystems.com/blog/cliff/2011-09-23-a-pair-of-s... (scroll down to Disruptor section)

[2] http://www.managedruntime.org/



Too bad there's been essentially zero activity on MRI for over a year.


A good posting showing the effect of setting thread affinity for version 1.0 of the Disruptor.

http://java.dzone.com/articles/java-threads-steroids




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: