Asynchronous Task Processing in PCS Project

PCS is a configuration tool for High-availability clusters with a client-server architecture written (mostly) in Python. It is required to add a feature of asynchronous execution of tasks. To do so, mechanism for executing and managing synchronous tasks in asynchronous manner is required. Also, this mechanism should be possible to integrate to an existing HTTP server (which is using tornado, asynchronous programming).

Thesis goals:

  • Familiarize yourself with Python and its libraries for asynchronous processing (e.g.: asyncio, multiprocessing, tornado).
  • Familiarize yourself with the PCS project and requirements for the tasks that it facilitates in the cluster.
  • Design an interface for creating and managing tasks in asynchronous environment. This interface should enable running more PCS commands at the same time and provide information about their status and results.
  • Implement the proposed interface in a form of a REST API (tornado library can be used)
  • Create a set of unit and integration tests for the implemented interface.
  • Demonstrate on two simultaneously running PCS commands that the asynchronous processing works.

Sources:

Technical lead:

Ondrej Mular

This topic is no longer accepting new applications!

Ondrej Mular

Team: High Availability Cluster
Location: Brno
Diploma theses with this Topic:
Asynchronous Task Processing in PCS Project