Conversation

This PR adds a job-manager module that handles submit requests from ingest module(s) and builds a queue. It orders the queue by 1) job priority, 2) jobid.

It supports the following operations

list - list queue (entire thing or some number from head of queue), with configurable attributes

purge - remove a job (including all KVS vestiges) if it hasn't yet been seen by the scheduler

priority - set priority of a job that has already been submitting (changing its queue position)

The module can be unloaded and reloaded, and it rebuilds its state.

Each operation is going to need more work once we have scheduler allocations and exec requests involved. I tried to keep the module functionality divided up in multiple source files to make it easier to follow as we add to it.

This is intended for early comments. It needs more detail in the commit messages. It needs more extensive testing.

There are some comments about the operations in list.c, purge.c, and priority.c, including caveats for the initial implementation.

This comment has been minimized.

Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.