erlang for data ops

I gave this short presentation at the London Erlang User Group meetup yesterday.

akka

Erlang's influence reigns supreme :-) Looks like I might be able to reuse some erl skills on the JVM.

A supervisor is a regular Actor that is responsible for starting, stopping and monitoring its child Actors. The basic idea of a supervisor is that it should keep its child Actors alive by restarting them when necessary. This makes for a completely different view on how to write fault-tolerant servers. Instead of trying all things possible to prevent an error from happening, this approach embraces failure. It shifts the view to look at errors as something natural and something that will happen and instead of trying to prevent it; embrace it. Just “let it crash” and reset the service to a stable state through restart.

Links:

selective receives

Many programming languages these days support actors, and that's a good thing. Erlang has been designed around this model and Scala borrows heavily from Erlang's approach. The main idea is simple: every process/thread/super-lightweight thread etc. has a mailbox and may send/receive messages. But pattern matching on a queue gets slower and slower as the message queue length increases, especially if you are not consuming all messages.

Here are a few links to blogs discussing the issue:

inversion of control

what a year! I have been too busy/lazy/engrossed to write. Too many ups and downs. I have been trying too hard. So has my software done! I'm preparing an improved release of pg51g focused on in-place, cross-database diffs. This take is closer to Fabien's original approach. I have been using it in production for a few weeks and I'm a lot happier performance-wise. There's a nice little web service, too. In Erlang, of course!