The control pool is made up of one or more machines. These host:
- Scheduling service—runs periodic tasks at set intervals.
- Database service—provides permanent storage of LGTM data.
- File storage service—provides storage of frequently accessed data. This gives immediate access to repositories in LGTM format, recent build/analysis log files, unprocessed job results, and the latest CodeQL database for each project (used by the query console).
- Message queue service—manages work. The associated job dealer ensures that build/analysis jobs are processed by a suitable worker.
- Search service— provides help search functionality.
- Task worker service—loads the results of analysis jobs into the LGTM database and performs other background processing.
- Web pool which runs:
- Web application—handles requests to the LGTM web interface.
- Web proxy service—acts as a proxy and SSL terminator for the LGTM web interface.
For more information about these services, see Services.
The machine that hosts the scheduling service is referred to as the coordinator. If the control pool components are distributed across multiple machines, it is important to know which machine is the coordinator because LGTM command-line actions must be run from this machine.
The arrow directions on the diagram give an indication of data flow between system components.