Agile++: When Agile Goes Well

If you see anything about LMAX - the Disruptor, Continuous Delivery, or even the selection criteria for hiring developers, you'll see that LMAX is pretty keen on Agile. However, no-one's documented the Agile process there, as far as I know. Although I personally had it on my todo list, I never had the motivation, the hook to do it. And I realised eventually that's because I'm not sure it's a process that would work very well for another team, in another company, working in another business.

Continue reading "Agile++: When Agile Goes Well"

JavaOne 2011

So, I'm off to JavaOne next week!

This is an unexpected and very pleasant surprise. I'll be there with Martin (of the Disruptor fame), and Martijn (that's not going to get confusing at all). Martin will be talking about the Disruptor on Thursday, and Martijn is busy talking about... everything. Most importantly for the LJC he's representing us in our shiny new JCP Executive Committee role.

I'm really looking forward to meeting pretty much anyone and everyone who'll talk to me. It's the first international conference I've been to and I'm hoping to meet people I wouldn't normally get a chance to see in London. It's also really cool to be able to represent both LMAX and the London Java Community. Hopefully it won't lead to some sort of split personality syndrome.

Almost more excitingly, I'll be doing a spot of shopping in New York on the way there and back. Because, well, it would be rude to fly over to the States and not drop in on my old home.

Maybe I'll get a chance to catch up with some of you in one of those amazing cities...?

Dissecting the Disruptor: Demystifying Memory Barriers

My recent slow-down in posting is because I've been trying to write a post explaining memory barriers and their applicability in the Disruptor. The problem is, no matter how much I read and no matter how many times I ask the ever-patient Martin and Mike questions trying to clarify some point, I just don't intuitively grasp the subject. I guess I don't have the deep background knowledge required to fully understand.

So, rather than make an idiot of myself trying to explain something I don't really get, I'm going to try and cover, at an abstract / massive-simplification level, what I do understand in the area. Martin has written a post going into memory barriers in some detail, so hopefully I can get away with skimming the subject.

Continue reading "Dissecting the Disruptor: Demystifying Memory Barriers"

Dissecting the Disruptor: Why it’s so fast (part two) – Magic cache line padding

We mention the phrase Mechanical Sympathy quite a lot, in fact it's even Martin's blog title. It's about understanding how the underlying hardware operates and programming in a way that works with that, not against it.

We get a number of comments and questions about the mysterious cache line padding in the RingBuffer, and I referred to it in the last post. Since this lends itself to pretty pictures, it's the next thing I thought I would tackle.

Continue reading "Dissecting the Disruptor: Why it’s so fast (part two) – Magic cache line padding"