The Driver Framework Architecture

The Faban driver framework utilizes a distributed architecture allowing distributing the driver workload to multiple machines. It uses the J2SE RMI facilities for all remote communication. Being able to distribute driver load across systems is important as in sophisticated workloads the driver can become the bottleneck.

Driver Framework Components

The following diagram shows the significant components of the driver: 

Diagram showing the Faban Driver Architecture

Process Architecture

Single-Process Driver

The single-process driver shines for it's simplicity. It can be run using a single Java process which controls the benchmark execution from beginning to end. The registry is not needed for the single process driver. Both the master and agent run inside a single process visible to the operating system. This simplicity also makes it extremely easy to run the single-process driver in a debugging environment such as an IDE and makes it useful for testing components of more complex drivers in such an environment.

The single-process driver is started by starting the master. If the master does not find the registry, it will assume a single-process driver is intended. The master will start a single agent in-process and drive the benchmark directly from this driver process. 

The single-process driver is limited to one running driver and one agent in the benchmark, hence single-process. If the benchmark has multiple drivers, only one driver can be enabled in the configuration file. If the driver configurations are not specified, the defining driver is the default driver. The defining driver is the driver that contains the BenchmarkDefinition annotation and is referred with the “definition” attribute on the configuration file.

Multi-Process Driver

The multi-process driver uses the full potential of the Faban driver framework. It allows components of the benchmark to scale across multiple processes and, typically, across multiple systems.  The multi-process driver requires separate starting of all the Faban driver framework processes.

To start the multi-process driver, you'll need the start the registry, all the agents, and the master, consequently.  The registry and the master needs to be started on the same system. This is called the master system. The master system may run any number of agents or may not run any of the agents at all. In other words, the master system may or may not drive the load by itself. The Faban harness, when used, generally helps reduce the complexity of the registry, agents, and master startup. and control sequences.