Publications
Publications in reversed chronological order.
2024
- SANERSoftware Architecture Reconstruction for Microservice Systems Using Static Analysis via GraalVM Native ImageRichard Hutcheson , Austin Blanchard , Noah Lambaria , and 3 more authorsIn SANER 2024 , Mar 2024
Microservices are the mainstream architecture when designing cloud-native systems. The performance and elastic scalability of such systems are the main attraction for many vendors. Recent advancements improving microservice initialization times are related to the ahead-of-time compilation, which produces self-contained executables, significantly reducing load times. Despite recent advancements and various benefits of cloud-native systems, the evolution of such systems might be threatened by a missing system-centered view. Such a view would guide in a better contextual understanding of individual microservices and their dependencies from the holistic system perspective and aid developers in informed decisions to mitigate ripple effects. One way literature has addressed this gap is by performing Software Architecture Reconstruction (SAR), a process essential for understanding, maintaining, and evolving software systems. This paper questions whether instruments used to produce self-contained executables for microservices can be utilized for SAR, producing system-centered views. We propose a methodology for such a process, implement a proof of concept tool, MicroGraal, for the Java Platform, and assess it through a case study involving a third-party microservice system benchmark. We uncovered a system service dependency graph and a context map, comparing the approach and obtained results with source code analysis
@inproceedings{saner24, author = {Hutcheson, Richard and Blanchard, Austin and Lambaria, Noah and Hale, Jack and David Kozak, Amr Elsayed and Cerny, Tomas}, title = {Software Architecture Reconstruction for Microservice Systems Using Static Analysis via GraalVM Native Image}, year = {2024}, month = mar, booktitle = {SANER 2024}, publisher = {Institute of Electrical and Electronics Engineers}, url = {https://conf.researchr.org/details/saner-2024/saner-2024-papers/94/Software-Architecture-Reconstruction-for-Microservice-Systems-Using-GraalVM-Native-Im}, keywords = {Software Architecture Reconstruction, Microservices, Service Dependency Graph, GraalVM Native Image}, location = {Rovaniemi, Finland}, series = {SANER}, }
- PLDIScaling Type-Based Points-to Analysis with SaturationDavid Kozak , Codrut Stancu , Christian Wimmer, and 1 more authorIn PLDI , Jun 2024
Designing a whole-program static analysis requires trade-offs between precision and scalability. While a context-insensitive points-to analysis is often considered a good compromise, it still has non-linear complexity that leads to scalability problems when analyzing large applications. On the other hand, rapid type analysis scales well but lacks precision. We use saturation in a context-insensitive type-based points-to analysis to make it as scalable as a rapid type analysis, while preserving most of the precision of the points-to analysis. With saturation, the points-to analysis only propagates small points-to sets for variables. If a variable can have more values than a certain threshold, the variable and all its usages are considered saturated and no longer analyzed. Our implementation in the points-to analysis of GraalVM Native Image, a closed-world approach to build standalone binaries for Java applications, shows that saturation allows GraalVM Native Image to analyze large Java applications with hundreds of thousands of methods in less than two minutes.
@inproceedings{pldi24, author = {Kozak, David and Stancu, Codrut and Wimmer, Christian and Wurthinger, Thomas}, title = {Scaling Type-Based Points-to Analysis with Saturation}, year = {2024}, month = jun, booktitle = {PLDI}, url = {https://d-kozak.github.io/assets/pdf/pldi24.pdf}, doi = {10.1145/3617651.3622980}, series = {PLDI 2024}, }
2023
- MPLRComparing Rapid Type Analysis with Points-To Analysis in GraalVM Native ImageDavid Kozak , Vojin Jovanovic , Codrut Stancu , and 2 more authorsIn Proceedings of the 20th ACM SIGPLAN International Conference on Managed Programming Languages and Runtimes , Jun 2023
Whole-program analysis is an essential technique that enables advanced compiler optimizations. An important example of such a method is points-to analysis used by ahead-of-time (AOT) compilers to discover program elements (classes, methods, fields) used on at least one program path. GraalVM Native Image uses a points-to analysis to optimize Java applications, which is a time-consuming step of the build. We explore how much the analysis time can be improved by replacing the points-to analysis with a rapid type analysis (RTA), which computes reachable elements faster by allowing more imprecision. We propose several extensions of previous approaches to RTA: making it parallel, incremental, and supporting heap snapshotting. We present an extensive experimental evaluation of the effects of using RTA instead of points-to analysis, in which RTA allowed us to reduce the analysis time for Spring Petclinic (a popular demo application of the Spring framework) by 64% and the overall build time by 35% at the cost of increasing the image size due to the imprecision by 15%.
@inproceedings{mplr23, author = {Kozak, David and Jovanovic, Vojin and Stancu, Codrut and Vojnar, Tom\'{a}\v{s} and Wimmer, Christian}, title = {Comparing Rapid Type Analysis with Points-To Analysis in GraalVM Native Image}, year = {2023}, isbn = {9798400703805}, publisher = {Association for Computing Machinery}, address = {New York, NY, USA}, url = {https://doi.org/10.1145/3617651.3622980}, doi = {10.1145/3617651.3622980}, booktitle = {Proceedings of the 20th ACM SIGPLAN International Conference on Managed Programming Languages and Runtimes}, pages = {129–142}, numpages = {14}, keywords = {GraalVM, Java, ahead-of-time compilation, compiler, optimization, static analysis}, location = {Cascais, Portugal}, series = {MPLR 2023}, }