olsonanl / app_service

Application execution service.

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

BV-BRC Application Service

Overview

The BV-BRC application service provides the client and server-side support for the execution of BV-BRC computational services.

It has two main components: a backend scheduler which manages a queue of application execution requests (or tasks), and a persistent JSONRPC-based service that provides user-level services.

The scheduler maintains the queue of tasks to be executed in a MySQL database. For each task, we maintain the following information:

  • User who owns the task
  • Application name
  • Parameters object defining the input and output for the task
  • Job execution metadata

The scheduler uses a system scheduler - in the production system, a Slurm scheduler attached to a HPC compute cluster - to execute the user tasks. It periodically checks the task queue for available work while maintaining basic fairness constraints, and feeds tasks to the system scheduler as appropriate. The system scheduler will execute users tasks under the control of a application shepherd which collects job statistics and relays job standard output and error streams to the application service.

The application service provides several services to the end-user:

  • API to browse the user's jobs
  • API for administrators to manage job status (rerunning failed jobs, changing memory and time requirements, etc.)
  • Providing access to the job standard output and error streams

About this module

This module is a component of the BV-BRC build system. It is designed to fit into the dev_container infrastructure which manages development and production deployment of the components of the BV-BRC. More documentation is available here.

About

Application execution service.


Languages

Language:Perl 94.2%Language:Shell 2.2%Language:JavaScript 1.5%Language:Makefile 1.5%Language:Ruby 0.5%