Jeff Mesnil
Weblog · About

Infinispan, Distributed Execution, and Messaging

March 30, 2012

Galder Zamarreño, a colleague from Red Hat, presented Infinispan yesterday at AlpesJUG.

Watching his presentation reminded me of a conversation I had with an ex-colleague about messaging and distributed execution frameworks.

I have contributed to several messaging servers over the years, mainly on HornetQ. During my previous job in a Web media company, I also used Hadoop Map/Reduce for Big Data processing.

With Big Data, the amount of data is so important that you can not process everything sequentially. Instead you parallelize the execution on several nodes. In practice, this implies to distribute the execution: the execution code (the mapper and reducer tasks) moves to the data nodes - where the data to process is stored - and runs locally.

With Messaging, you can achieve the opposite: to distribute the data. Messages containing the data are sent to consumers that will process them. In many cases, the data transported inside the messages is not the data to process; it can be an event or contains the location of the data to process. Nonetheless, the result is the same: the execution code will not moved, it will fetch the data and process it on its own node.

  • Messaging moves the data close to the execution code.
  • Distributed Execution moves the execution code close to the data.

If I understood Galder correctly, Infinispan proposes the two approaches:

Messaging is a model that is widely used in entreprise applications and may become mainstream on the Web with the support of WebSockets by all Web browsers.
Distributed execution framework like Hadoop Map/Reduce or Twitter Storm will become mainstream as the amount of generated data to process and analyze (on the Web or behind firewalls for entreprise softwares) will continue to grow.

Infinispan seems to hit a sweet spot by providing the two models and the ability to mix and match them. I am looking forward to seeing what's next for Infinispan and the best ways to leverage it...

⇨ Red Hat Hits $1 Billion In Revenue

March 29, 2012

For the full fiscal year 2012, total revenue was $1.13 billion, an increase of 25% over the prior year, and subscription revenue was $965.6 million, up 25% year-over-year.

It is possible to make money with Open Source.

⇨ A New Computer (For Lightroom)

March 28, 2012

Tim Bray want to buy a new laptop that can run Lightroom:

I take pictures. I use Lightroom to process them. I like it. The current camera emits DNGs that average between 20-25M, and I take them dozens or hundreds at a time. Lightroom 4 is, um, not faster than Lightroom 3 and I see no evidence that Adobe knows how to make any future version faster. Lightroom on the current machine is just barely fast enough, where "just barely" means "not really".

I have the same problem: my old MacBook is slowly dying and can no longer run Lightroom 3 (or Xcode for that matter) in an usable fashion. I download the trial version of Lightroom 4 and it is worse.

I am looking to upgrade to a new Apple laptop. My ideal machine would be a 13-Inch MacBook with Retina Display, SSD (+ external HDD), at least 8Go and the latest Intel processors. I am waiting for the next generation of MacBook Air and Pro to be released to check if one of their models matches my expectations. However, I will monitor comments on Tim's post in case the next Apple laptops do not change that much.

In the mean time, I am stacking up photos until I can post process them...

⇨ Joe Armstrong On Defensive Programming

March 27, 2012

Note this method of structuring cannot be done in a sequential language - since there is only one thread of control - thus in a sequential language all error handling MUST be done within the process itself.
That's why you have to program defensively in a sequential language - you get one thread of control and one chance to fix your error.

Joe Armstrong

I can not warm up to Erlang language and syntax but there is no denying that the Erlang worker/observer model is much more simpler and simple to figure out that code which mixes business logic and error handling.

(via @debasishg)

⇨ Tom's Hardware Reviews Fedora 16 and GNOME Shell

March 20, 2012

Fedora 16 is appropriate for my developer job but still not recommendable to friends and family.

I have installed Fedora 16 on my corporate laptop and like it better that the latest Ubuntu with Unity. However, I still feel that both environments have regressed and are further away from Mac OS X for the user experience.

The foundations of Fedora 16 are solid, let's hope the next version will build on top of it to provide a useful and enjoyable UX.

⇨ Introduction to Objective C Literals By Big Nerd Ranch

March 19, 2012

In Part 1:

What is an "Objective-C Literal"? It's a chunk of code that references a specific Cocoa object, creating it if necessary. Objective-C has had literals for NSStrings since the beginning of time [...].
The new literals for NSNumbers, NSArrays, and NSDictionaries take a similar approach

In Part 2:

The new collection-access syntax is a welcome change, making it very convenient to dig into collections. What's even better is that our own classes can play in this world.
There are two flavors of convenient collection access: scalar indexing which is used by NSArray, and object indexing which is used by NSDictionary.

With these features, Objective-C becomes more expressive and takes the best syntactic sugars from dynamic languages like Ruby and Python. More expressiveness with less syntax noise.