Overview
The main task of the Glidein Factory is to advertise itself, listen for requests from frontend clients and submit glideins. Look at the picture below for a schematic view.
A single glidein factory can handle multiple kinds of glideins, also
called glidein entry points (as they usually point to
different Grid resources). For each entry point, it will advertise a
different class-ad.
Similarly, each request from a frontend
client will affect a single entry point; a frontend will need to
advertise several requests in order to have glideins submitted to all
the desirable resources.
The Glidein Factory philosophy
The main idea behind a Glidein Factory is to make the life of a frontend as easy as possible. And to do that, the factory needs to abstract as much as possible.
For starters, the factory itself is the one that knows the details of various Grid sites and properly configures the glidein entry points, so they will run without any additional knowledge. A frontend only needs to know that an entry point exists, and the parameters it takes.
Additionally, the factory also does the submissions themselves. The frontend just publishes that it needs some glideins and the factory will start submitting them. The only handle the frontend may want to use is the ability to regulate the rate of glideins that are sent to the Grid site. In the current implementation, this can be achieved by setting the desired number of idle glideins to be kept in the Grid queue.
The typical scenario features a frontend with several (hundreds or even thousands of) user jobs in the queue that is looking for resources to run them. It will fetch the factory classads, select the ones that satisfy its needs, and advertise class-ads with requests for those glideins. If the frontend ever runs out of user jobs, it will advertise the fact that it does not need those glideins anymore. In practical terms, this means asking the factory to keep exactly 0 idle glideins in the queue.
Factory Management At a Glance
Here are some common tasks you may need to do as a factory admin (with links to more information):
- Creating a new configuration directory: glideinWMS/creation/create_glidein
- Starting and Stopping the Factory: <glidein directory>/factory_startup start|stop|restart|status
- Configuration can be found in either factory.xml or glideinWMS.xml in your factory's instance directory (depending on your installation method).
- After modifying the xml, be sure to reconfig your factory: <glidein directory>/factory_startup reconfig config_copy_fname
- Add a downtime with: <glidein directory>/factory_startup up|down -entry 'factory'|<entry name> [-delay <delay>]
- Monitoring the factory