Posted on 2008-11-03 13:34:00.0 by Tim Fox
[ View original post ]
The whole team has had their heads down since my last post, hard at work on JBM 2.0, so I thought I'd give a little update.
We are making great progress. I have been mainly working on session replication and failover, and this is 90% in place.
JBM 2.0 will boast ultra fast, 100% transparent failover from one node to another in even of server failure. How fast? Well in my tests I can failover 500 sessions in around 100ms :) (yes, that's milliseconds).
Although the speed of failover really depends on how fast you can detect the connection has failed. With a TCP connection, if someone pulls the cable you won't get an exception immediately since TCP is a reliable protocol. So we need to rely on "pinging" (a.k.a. heart-beats) to make sure the connection is there.
I am currently testing the hell out of the failover code. In my test set, I start and stop multiple sessions, exercise the full API, on multiple threads concurrently, then fail the connection at random times and assert the session carries on as if nothing has happened on the backup node. Rinse and repeat a few thousand times.
So, what else has been happening?
Clebert has implemented "very large message" support. This allows JBM to send and consumer huge (multi-gigabyte) messages without the server itself requiring large amounts of RAM. This is done by sending the message in chunks from the client, then storing on disk in chunks on the server, then sending back to the client in chunks and re-assembling on the client.
Andy has been doing some good stuff, amongst other things, with "wildcard routing". Which allows you to subscribe to a topic with a wildcard. E.g. I can subscribe to a topic "news.*" and will receive all messages sent to news.uk and news.usa etc.
And last, but by no means least. We have a new team member :)
Howard Gao joins us from Beijing, China, where in the past he has worked with Iona and Borland. Howard is initially specialising on the 1.4 branch.