Resource management within the SDP

The SDP has to make sure that processing only starts when all the necessary resources are available for them. This includes buffer space, processing nodes, and IP address ranges.

Currently, the SDP is set up to manage capacity buffer storage via resource requests generated by processing scripts and resource allocations, granted by the processing controller.

If a processing script requests more space than what is available in the buffer (monitored by the buffer manager) then the allocations are not created and, after a set time, the processing script will raise an error.

The processing controller grants requests for any processing block, where all of the block’s requests can be fulfilled. But if there are multiple requests of a single processing block, and at least one cannot be fulfilled, none of the requests will have allocations and the block will fail after the timeout.

Note that this feature is only meaningful if the persistent volume used by SDP is shared between the control and processing namespaces, since the buffer manager will only be able to monitor it from the control namespace, but processing scripts write to it from the processing namespace.

ADR-90 describes SDP resource management in detail.

The feature is under development and currently lives behind a feature flag. To enable this, install SDP with the following Helm chart values:

ska-sdp:
  feature-flags:
    resourceManagement: true