TheHive-Project / TheHive-Project/Cortex
Per-user job queues instead of global job queue
Nobody has claimed this yet.
- 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
- Have a one user continuously run a constant amount of jobs.
- Have other users also wanting to run jobs on demand.
- 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
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- 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