dms

Last updated: 2025-11-05 01:15:02.444421 File source: link on GitLab

dms

Table of Contents

Specification

Description

This package is responsible for starting the whole application. It also contains various core functionality of DMS:

  • Onboarding compute provider devices

  • Job orchestration and management

  • Resource management

  • Actor implementation for each node

Structure and Organisation

Here is quick overview of the contents of this pacakge:

  • README: Current file which is aimed towards developers who wish to use and modify the dms functionality.

  • dms: This file contains code to initialize the DMS by loading configuration, starting REST API server etc

  • init: This file creates a new logger instance.

  • sanity_check: This file defines a method for performing consistency check before starting the DMS. proposed Note that the functionality of this method needs to be developed as per refactored DMS design.

Subpackages

  • jobs: Deals with the management of local jobs on the machine.

  • node: Contains implementation of Node as an actor.

  • onboarding: Code related to onboarding of compute provider machines to the network.

  • orchestrator: Contains job orchestration logic.

  • resources: Deals with the management of resources on the machine.

proposed: All files with *_test.go naming convention contain unit tests with respect to the specific implementation.

Class Diagram

The class diagram for the dms package is shown below.

Source file

dms Class diagram

Rendered from source file

Functionality

TBD

Note: the functionality of DMS is being currently developed. See the proposed section for the suggested design of interfaces and methods.

Supervision

TBD as per proposed implementation

  • Supervisor

  • SupervisorStrategy

  • Statistics

Data Types

TBD

Note: the functionality of DMS is being currently developed. See the proposed section for the suggested data types.

Testing

proposed Refer to *_test.go files for unit tests of different functionalities.

Proposed Functionality / Requirements

List of issues

All issues that are related to the implementation of dms package can be found below. These include any proposals for modifications to the package or new functionality needed to cover the requirements of other packages.

Interfaces & Methods

proposed Capability_interface

add method will combine capabilities of two nodes. Example usage - When two jobs have to be run on a single machine, the capability requirements of each will need to be combined.

subtract method will subtract two capabilities. Example usage - When resources are locked for a job, the available capability of a machine will need to be reduced.

Data types

proposed dms.Capability

The Capability struct will capture all the relevant data that defines the capability of a node to perform the job. At the same time this will be used to define capability requirements that a job requires from a node.

An initial data model for Capability is defined below.

proposed dms.Connectivity

type Connectivity struct {

}

proposed dms.PriceInformation

proposed dms.TimeInformation

type TimeInformation struct { // Units holds the units of time ex - hours, days, weeks Units string

}

References

Last updated