spdx / spdx/Spdx-Java-Library

ModelCopyManager consumes an ever increasing amount of memory over time

Open
#260 2 comments 1 reaction 0 assignees View on GitHub

Nobody has claimed this yet.

performance
Dominant language
Java
Stars
71
Forks
44
Avg merge
12h 54m
Merged PRs (30d)
7

Description

As reported by #258 - the ModelCopyManager consumes an ever increasing amount of memory due to caching the copied ID's.

One possible solution would be to implement some form of garbage collection. When a ModelStore is destroyed, it could call back to the ModelCopyManager to remove all the associated references from the cache.

Note that this approach may have some CPU performance implications due to having to lock the cache during the operation.

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 reading ModelCopyManager to understand how copied IDs are cached, then trace the ModelStore destruction lifecycle described in the issue. Reproduce or inspect the reported memory growth and evaluate how references could be removed when a ModelStore is destroyed, including the stated cache-locking performance concern. Done means the cache no longer grows indefinitely while the existing copy behavior remains correct.

Written by the indexing model from the issue text.

Assessment

Tech stack
java
Domain
performance
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.