Simplified block diagram

For the same of clarity, some things are simplified here, but it gives you a good idea of the overall layout.

User Interface

We try to let you do everything both through the web, and from a command line. Allows you to:

We use Django as a database abstraction layer, though at the moment, the results information doesn't use it.

The frontend injects jobs into the server by creating records into the frontend database (see below)

Databases and Results repository

There are two main databases (which use mysql), and results repository (which is just a directory tree).

For more information on how we handle jobs results, see here.

Server

The server consists of two main parts. All its state is stored in the databases described above.

The mysql database can live on a different machine than the dispatcher. There can be multiple dispatchers to spread the workload, though each can service a few thousand clients, so this is not normally necessary.

Client

The client does most of the work of running a job; this can be invoked manually on the client, or via the server - see RunningTests

Analysis backend / test.kernel.org

A set of analysis scripts that:

  1. Parse the results and populate the mysql database with data.

  2. Dynamically query the mysql database for data

May also provide links back to the results repository for data drill-down, if available via the web.

Job Flow Diagram

AutotestStructure (last edited 2008-01-22 22:21:52 by MartinBligh)