RuntimeSave: A Graph Database of Runtime Values
To persist variable values from running programs for development purposes, we currently recognize two strategies. Techniques based on examples are only useful to store small sample objects, while record-and-replay techniques are efficient but use opaque storage formats. We lack a middle ground offering acceptable scalability and easy queryability with standard tools. In this work-in-progress paper, we present RuntimeSave – a versatile approach to saving runtime values from the Java Virtual Machine (JVM) into a persistent Neo4j graph database. Its core idea is a two-layer graph model consisting of hashed and metadata nodes, inspired by Git internals. To reduce the written data volume, it packs certain object graph shapes into simpler ones and hashes them to provide partial deduplication. We also report a preliminary evaluation, applications, and future work ideas.
Authors
- Antonia Bertolino (ORCID: https://orcid.org/0000-0001-8749-1356)
- Matúš Sulír (ORCID: https://orcid.org/0000-0003-2221-9225)
- Guglielmo De Angelis (ORCID: https://orcid.org/0000-0002-1076-0076)
Institutions
- Technical University of Košice (SK)
- Gran Sasso Science Institute (IT)
- Istituto di Analisi dei Sistemi ed Informatica Antonio Ruberti (IT)
Publication Details
- Published
- 2025-10-09
- DOI
- https://doi.org/10.1145/3759548.3763375
- Primary Topic
- Model-Driven Software Engineering Techniques
- Type
- article
- Field-Weighted Citation Impact
- 0.00
Funders
- Agentúra na Podporu Výskumu a Vývoja