SLAMD Distributed
Load Generation Engine
Version 2.0.0-alpha1

Future Plans for SLAMD

Some enhancements planned for future versions of SLAMD are listed below. If you have ideas for other features that could be added, then send them to the SLAMD-Discuss@SLAMD.com mailing list (see this page for information on subscribing to the SLAMD mailing lists) or use the java.net issue tracking system.

  • Replace the Directory Backend

    SLAMD currently uses an LDAP directory server (e.g., the Sun ONE Directory) as its backend for storing all configuration and job data. However, this requires someone using SLAMD to have a directory server installed and configured and to have at least a basic knowledge of how to interact with it. It would be nice to replace the backend with an embedded database (e.g., Berkeley DB Java Edition) that does not need to be installed or configured outside of SLAMD and that requires little to no interaction by the SLAMD administrator.


  • Comparing Different Job Types

    At the present time, it is only possible to make comparisons between jobs of the same type. In the future, there should be a way to make comparisons between related statistics of different job types. Such an implementation would require a means of establishing a mapping between related parameters in different job types so that they may be compared.


  • More Flexible Access Control

    SLAMD currently offers a number of access control features that can be used to customize the features that users can access through the administrative interface. However, those access control features apply to the server as a whole. The server does not offer an ability to restrict access to features at a more granular level (e.g., a user can only delete or move the jobs that he or she has scheduled). A more powerful and flexible access control model could make this possible.


  • Nested Job Folders

    Currently, all job folders defined in the SLAMD server are considered peers. In many cases it would be beneficial to nest job folders so that they can be more appropriately organized.


  • Job Groups

    If SLAMD is used to perform a sequence of tests at regular intervals (e.g., tracking performance of daily builds of a network application), it could be beneficial to define that sequence of jobs as a job group that could be scheduled and managed as a single entity.


  • Chroot Mode for Shared Servers

    If a single SLAMD server is to be shared by many people, it would be nice to provide a chroot mode in which each user only sees his or her own jobs. This is dependent upon the rewrite of the access control mechanism in the server.


  • Job Versioning

    Currently, the SLAMD server offers the ability to transfer job classes to clients if they do not have a copy of a scheduled job, but unfortunately it does not have the ability to re-transfer the job class whenever a new version is installed on the server. It would be nice if a job class could include version information so that the client could determine if it needs to get a new version from the server.


  • Transfer of Non-Job Classes

    While the SLAMD server does offer the ability to transfer job class files to clients, it does not provide the ability to transfer other classes that may be needed to run jobs. This would be a nice complement to the ability to transfer job classes.


  • Job-Specific Control of In-Progress Reporting

    Whether a client will report in-progress statistics for a given job currently depends upon two factors: whether the client has been configured to enable in-progress statistics reporting and whether the job being executed has been configured to support this capability. However, there are times in which it would be useful to enable in-progress reporting on a per-job basis without the need to reconfigure the client between jobs. This could be done by adding the ability for the user scheduling the job to indicate whether in-progress reporting should be used.


  • Job-Specific Resource Monitors

    Whenever a job requests that a particular resource monitor client be used, that client will collect data for all resource statistics that have been enabled on that client. However, in some cases it may be desirable to only capture and report certain resource statistics for a job. It would be useful to be able to choose which statistics to include when requesting the resource monitor client.


  • Allow a Job to Report Resource Statistics

    At the present time, only a resource monitor client has the ability to collect and report system resource statistics to the SLAMD server. However, there are cases in which it would be useful for a job to be able to collect and report this information as well, especially for jobs that obtain information from external sources (e.g., the Directory Server Model job, which runs in a simulated system that cannot be monitored via traditional methods).


  • Cron-Like Capabilities

    It would be very useful to have the capability to periodically execute code within the SLAMD server itself to perform various administrative tasks. This could, for example, be used to schedule recurring jobs, perform regular backups, clean up old job data that may no longer be useful, etc. It would also be useful to attach this capability to certain events that may occur (e.g., execute x whenever job y completes).







If you wish to submit a request for a future enhancement, please consider the following criteria:
  • No new feature will be added that will restrict the kinds of network applications that SLAMD may be used to test. Although its primary use to date has been load generation and performance analysis of LDAP directory servers, it should be possible to write jobs to test any kind of network application that communicates using TCP or UDP. No change will be allowed that could limit this ability.

  • No change will be considered that requires native code. SLAMD is written entirely in Java, and no feature that requires code other than Java will be allowed.

  • No change will be considered that will restrict the ability to access the adminstrative interface through any kind of Web browser, including text-based browsers like lynx. Absolutely no JavaScript or any other kind of client-side scripting will be allowed. No HTML will be allowed that is not in complaince with the HTML 4.01 specification.

  • Changes that could break backward compatibility will generally be considered only for major version (i.e., 1.x.x to 2.x.x) upgrades. They will be avoided where possible, but some highly-desirable features (e.g., time skew detection) require updates to the client-server protocol, and others (e.g., replacing the directory backend) will require a data format change. For cases in which data format changes may be required, an upgrade mechanism should be made available.