I just got done reviewing the new load balancing framework that our distribution guys are working on. I'm the Product Manager, so you might wonder why I was doing anything like a technical overview :) - well, it turns out that the DST based load balancer that has been available for VisualWave the last few years was co-authored by me. It was a quick piece of work - one of our engineers (playing consultant) and I built it for a customer back in the late 90's - we had 6 weeks to do it, so it was never as nice as it should have been - there were some pretty nasty hacks in there.
That gave me something resembling the experience necessary to take a look at the new system. It was also the case that the other co-author was on vacation, and a third guy was still settling in from having a second child - so there I was, ready and willing to do my bit for the team.
First off, the nicest thing about this new work is:
- It's got documentation already! It's not only understandable, but it also explains the ins and outs of the strategies being used in the system - and why you probably shouldn't go for a least-busy approach (something I learned the hard way on that project)
- There are a large number of tests, supporting both single image simulations of load balancing, as well as actual multi-image load balancing. The tests will aid in long term maintenance - and they help newbies looking at the system for examples
So right off my job was easier than the old days, when I was testing the hack job. For that, there was minimal doc, and no tests. Testing meant setting up three computers, starting the images and load balancer, and seeing what happened. That's still a critical test to run - but having other tests allows you to look at sub-systems in isolation.
What does all of this mean for you? Well, the load balancer is built in Opentalk - but it's independent of Opentalk in terms of what it can balance. It means that in the 7.2 version of VW (November 2003), you'll see a load balancing system that you can use for projects that need to scale across multiple running Smalltalk images. For 7.3 you'll see failover capability added - which means you won't have to rely on homebrew systems for that anymore. In 7.3 or 7.4, you'll see DST start to move on top of the Opentalk system, which will provide a much needed update to the core distribution framework of that product - and also give our engineers one less framework to maintain. So keep your eyes peeled, and get involved in vw-dev or vwnc so that you can watch the work as it proceeds