liquidmetal-dev / liquidmetal-dev/brigade

Bin-pack scheduling strategy

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

Nobody has claimed this yet.

Dominant language
Elixir
Stars
2
Forks
0
PR merge metrics
No merged PRs in 30d

Description

Goal

Add a bin-pack (consolidation) placement strategy alongside the default least-loaded (spread).

Context

Brigade.Scheduler.Strategy is a behaviour (filter/2 + score/2). LeastLoaded picks the emptiest host (spread, blast-radius friendly). Bin-pack would pick the most-loaded host that still fits, packing VMs densely so idle hosts can scale to zero.

Scope

  • New Brigade.Scheduler.Strategy.BinPack implementing the same behaviour (reuse filter/2, invert scoring).
  • Selectable via :scheduler_strategy config (already wired).
  • Tests: table-driven scoring + an integration placement test.

Low-risk, self-contained. Deferred from the M0–M4 build.

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

Start with the existing Brigade.Scheduler.Strategy behaviour and the LeastLoaded strategy, especially filter/2 and score/2. Implement the BinPack strategy as the corresponding selectable entry for :scheduler_strategy, then add table-driven scoring tests and an integration placement test. Done means the strategy selects the most-loaded host that still fits and can be chosen through the existing configuration.

Written by the indexing model from the issue text.

Assessment

Tech stack
elixir
Domain
infrastructure
Issue type
Feature
Difficulty
3/5
Estimated time
1-2 days
Activity status
Quiet
Clarity
Mostly clear
Newbie friendliness
72/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.