Sunday January 08, 2006 | cn=Directory Manager All about Directory Server |
What's happening with SLAMD?If you are at all interested in performance testing Directory Server or other network applications, or if you have read much of my earlier posts, then you're aware of The SLAMD Distributed Load Generation Engine. You may also note that the last release of any kind was in June and that the SLAMD site doesn't change all that much. If you are subscribed to the SLAMD-Commit@SLAMD.com mailing list, then perhaps you've seen some of the stuff that's been going on since then. However, since it's sometimes hard to see the forest for the trees, and it's even harder to see stuff that hasn't been committed yet, then I thought I would give a brief overview of what's coming in the next release, which should be version 2.0.0.The biggest change is the switch from a configuration directory to an embedded database, using the Berkeley DB Java Edition. Right now, SLAMD 1.x requires an LDAPv3 directory server, like the Sun Java System Directory Server or OpenLDAP, in order to store its configuration and all job information. For people that use SLAMD in order to test a Directory Server, or for testing something that requires a Directory Server like Access Manager or Portal Server, then this is no big deal. But if you're using it to test something else and you're not in the habit of using directory servers, then it can be more complex than some people want. By using an embedded database, the complexity can be almost completely hidden from the user. It also allows for better extensibility for the future, since using a Directory Server requires updates to the schema in order to support new attributes for new features, whereas this is not necessary for an embedded database. The code for using the embedded database has actually already been implemented, and if you check out SLAMD from the CVS head, then you will be using that code. Note that the new database format is not backward compatible with the existing format, although there is a method to migrate data from a SLAMD 1.x configuration directory into the new SLAMD 2.x database. However, this is a one-way conversion so any jobs run with the SLAMD 2.x version of the code won't be accessible to SLAMD 1.x servers. Moving forward into the future, the design used for the database should be flexible enough to avoid the need for another big change like this. The other major change between SLAMD 1.x and 2.x will be the protocol used to communicate between the SLAMD server and the various types of clients. Although the SLAMD 1.x protocol works quite well, it was not designed to be as extensible as necessary to add new features. Therefore, with a couple of exceptions that took quite a bit of work to implement, everything that a SLAMD 1.8.2 client can do could be done by a SLAMD 1.0 client (and in fact, quite a bit earlier than that). I've been able to come a long way just by implementing what have primarily been server-side enhancements, but it's time to be able to have new features on the client side as well, and to make it possible to have a much more extensible protocol so that another major redesign won't be necessary. The code for the new protocol has mostly been written and checked into the repository. However, it's not actually in use because none of the client code has been updated to make use of it rather than the SLAMD 1.x protocol. I've spent a little time working on a new client to use the new protocol, but I've been a little distracted of late and therefore haven't been able to devote a whole lot of time to it. But once that work is done, then I'll probably release an alpha version of SLAMD 2.0 shortly thereafter. All of the other changes that have been made so far are much less significant. The most interesting ones include:
It's likely that most of the other improvements in SLAMD 2.0.0 will be pretty minor. I've still got some big ideas that will be coming in the future, but the flexibility of the new protocol will allow me to push them out to SLAMD 2.0.1 or SLAMD 2.1 without having to worry about backward compatibility as much as was necessary in the past. As for the big question as to when SLAMD 2.x will be available, that's still to be determined, but the generic answer is "as soon as I'm comfortable with what's in it and it's gone through enough testing that I feel it's stable enough". Some of that uncertainty is simply because SLAMD is something that I work on in my spare time, and I don't usually have a whole lot of that. I will admit that I didn't get as much work done on it as I would have liked during the recent Christmas break, but writing the code for the new protocol took me quite a bit less time than I expected so that's at least a little bit of a trade-off. And of course if you want to see what's there now, it should be possible to build it for yourself from what's checked in, and if you find any bugs, then I'll do my best to fix them as quickly as possible. It may not have all the bells and whistles that I hope it will have in the not-too-distant future, but it should be functional and hopefully a little better than what's available in SLAMD 1.8.2. However, I'd still caution you that if you've got some big testing to do, then it might be safer to stick with what's officially released. Posted by cn_equals_directory_manager ( Jan 08 2006, 11:57:53 PM CST ) Permalink Comments [2] Post a Comment: Comments are closed for this entry. |
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Posted by Wayne Abbott on January 09, 2006 at 09:53 AM CST #
Posted by Jaime Cardoso on January 09, 2006 at 11:48 AM CST #