stackabletech / stackabletech/operator-rs

Add method to adaptively calculate JVM heap size instead of using a constant

Open
#475 2 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

type/feature-improvement
Dominant language
Rust
Stars
167
Forks
19
Avg merge
1d 6h
Merged PRs (30d)
9

Description

Recently we added the possibility to add resource requests and limits to our operators.

For the Java based products we currently use a factor of 0.8 to calculate the amount of heap for the JVM depending on the memory limit.

In most cases this will lead to unused memory when using alot of memory. E.g. a pod gets 100GB memory, this will be 80GB for the JVM and we end up with almost 20GB unused but reserved memory.

We need a method in the framework that adaptively calculates the required heap memory in order to waste less memory and leaving enough memory for the OS to run when specifying lower amounts.

Acceptance

  • A method to calculate the JVM heap depending on the amount specified is implemented in the framework
    • This includes research about a safe minimal value (e.g. 500mb for the OS that must always be respected)
  • The operator-rs is properly released
  • The resources concepts docs are updated
  • All operators managing java products use this method instead of the constant 0.8 factor

Contributor guide

Open the contributing guide

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 by locating the framework's current 0.8 JVM heap calculation and the resources concepts documentation. Research a safe minimum OS memory value, then trace all operators managing Java products to identify uses of the constant. Done means the adaptive method is used consistently, operator-rs is released, and the resources documentation is updated.

Written by the indexing model from the issue text.

Assessment

Tech stack
kubernetes, rust
Domain
devops, documentation, tooling
Issue type
Feature
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
30/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.