Skip to content

Latest commit

 

History

2 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

MoleculeGC Artifact

This is the artifact repository for MoleculeGC: a Low-pause and High-CPU-efficiency Garbage Collector for Tiered Memory (EuroSys 2027). MoleculeGC extends G1 in OpenJDK 21 to trace and reclaim coarse-grained object groups while reducing the collector's working set on tiered memory.

The paper evaluates nine workloads from seven application frameworks: Spark Naive Bayes and Isotonic Regression, GraphChi WCC and K-Core, CoreNLP Clinical Text Knowledge Extraction, Cassandra Update Intensive, Neo4j FastRP, Spring PetClinic, and an Akka Online Editing service.

Repository layout

  • moleculegc/ contains the pinned OpenJDK base, the exact MoleculeGC patch, source/build verification, a functional smoke test, and the workload-profile launcher.
  • memliner/ contains the compact MemLiner baseline package: its JDK/kernel patches, remote-swap code, workload adapters, and smoke/full entry points.

MoleculeGC and MemLiner are different collectors. Their JVM patches and options are not interchangeable; MemLiner is included as a paper baseline.

Quick start: MoleculeGC

The following commands verify the package, reconstruct the patched OpenJDK, build it, and run a bounded allocation test:

cd moleculegc
bash scripts/verify-package.sh
bash scripts/fetch-source.sh
BOOT_JDK=/path/to/jdk-20-or-21 bash scripts/build.sh
bash scripts/smoke-profiles.sh
bash scripts/smoke.sh

If a built image is already available, skip fetching/building and select it explicitly:

cd moleculegc
MOLECULEGC_JAVA=/path/to/moleculegc-jdk/bin/java bash scripts/smoke.sh

Successful output ends with MOLECULEGC_SMOKE_PASS and the GC log contains use data structure GCTest. See the MoleculeGC instructions for the nine workload aliases, direct JVM launch examples, a matched G1 control, and the 100%, 25%, and 13% local-memory configurations. Clean-build and smoke evidence is recorded in moleculegc/VALIDATION.md.

Artifact scope

Large upstream source trees, third-party distributions, datasets, generated binaries, and experiment output are intentionally excluded from Git. Source archives and the MoleculeGC patch are SHA-256 pinned. Dataset and application preparation notes are under memliner/workloads/; the launchers in that baseline package use MemLiner flags, so use the MoleculeGC launcher documented in moleculegc/ for MoleculeGC runs.

Paper-scale tiered-memory experiments require a compatible Linux 5.11 remote-swap/Hermit environment, RDMA hardware and drivers, cgroup memory control, and the external datasets. The standalone MoleculeGC smoke test checks the collector build and profile dispatch; it is not a paper-performance run.

Licensing status

Third-party portions and their known or unresolved licensing status are documented in THIRD_PARTY_NOTICES.md. That notice does not declare a repository-wide license for project-authored material. The authors still need to publish that license and resolve the explicitly listed source-header and RemoteSwap licensing gaps.

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages