TheHive-Project / TheHive-Project/Cortex

Per-user job queues instead of global job queue

Open
#233 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

feature request
Dominant language
Scala
Stars
1.6k
Forks
264
PR merge metrics
No merged PRs in 30d

Description

Request Type

Feature Request

Work Environment
Question Answer
OS version (server) Ubuntu 16.04
OS version (client) Ubuntu, ...
Cortex version / git hash 2.x
Package Type From source
Browser type & version ...
Problem Description

At the moment all jobs are being run through a single queue. If one user, e.g. a machine account of some tool runs a lot of jobs, no other user will be able to run something in parallel.

Steps to Reproduce
  1. Have a one user continuously run a constant amount of jobs.
  2. Have other users also wanting to run jobs on demand.
  3. The other users will have to wait a long time.
Possible Solutions

My proposal is to have one job queue per user account and instead of just draining one queue, the job scheduler could go through all queues in a round-robin fashion so that all users handled equally.

Complementary information

We are using Cortex as a central API gateway for observable enhancement and therefore could really make good use of a better queuing system.

Contributor guide

No contributing guide indexed for this repository

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

The issue names no files, tests, or entry points, so first locate the job scheduler and current global queue implementation. Done means jobs are separated by user account and scheduled fairly in round-robin fashion so one user's sustained workload does not block other users.

Written by the indexing model from the issue text.

Assessment

Tech stack
scala
Domain
api, backend
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.