Conversation
Yes, correct. Oversaw this. Co-authored-by: Mark <mrkswrn@gmail.com>
Implements complete Java runtime infrastructure enabling serverless function benchmarking on AWS Lambda and Azure Functions platforms. Key components: - AWS/Azure function wrappers with cold start tracking and JSON handling - Maven-based build system with shaded JAR packaging - Docker build images for both platforms (Java 17) - Package structure: lib/ for JARs, handler/ for function metadata Benchmarks implemented: - 010.sleep: Basic microbenchmark for testing infrastructure - 110.dynamic-html: Web app with Mustache templating Critical fixes: - Removed Maven quiet mode (-q) causing Docker build failures - Proper dependency scoping (Azure Functions and Jackson must be compiled, not provided) - Platform-specific packaging logic (JAR structure differs from Python/Node.js) Tested and verified working on Azure Functions with Java 17.
…rverless-benchmarks into features/pypy-runtime
fix gcp images to specific runtime versions instead of ubuntu
…rking Tools - Added Rust runtime support (AWS) - Added PyPy support (AWS, Azure, GCP, Local) - Added Java runtime support (AWS, Azure) - Added cross-platform benchmarking scripts - Enhanced plotting and visualization tools - Updated Dockerfiles and system configurations - Removed sensitive credentials from config files
- Deleted `plot_comparison.py` and associated plotting functions. - Removed `run_comparison.sh` and `run_sebs_with_plots.sh` scripts for benchmark execution and plot generation. - Cleaned up the repository by eliminating unused files related to benchmarking and visualization.
- Modified `java_installer.sh` to use `mvn clean package` for more reliable builds. - Updated `Dockerfile.function` to unzip the function JAR and remove the original after extraction.
- Removed unnecessary comment in `pom.xml`. - Updated `entrypoint.sh` to ensure correct ownership of the `/mnt/function` directory. - Modified `benchmark.py` to include Java files in the hash calculation and added logic for handling Java installer script. - Improved error handling and logging for Docker builds, particularly for Rust projects.
|
Important Review skippedDraft detected. Please check the settings in the CodeRabbit UI or the You can disable this status message by setting the Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
There was a problem hiding this comment.
I don't think you need an extra object implementation for this. For "parallel" invocations, AWS Lambda spins up new instances. You can simply check for the marker file's existence in the handler.
There was a problem hiding this comment.
Roll back these changes. This is a kind of tutorial file we shouldn't touch.
scripts/cross_platform_benchmark.py
Outdated
sebs/benchmark.py
Outdated
There was a problem hiding this comment.
yes but more logging, had issues with rust
Remove ColdStartTracker and refactor cold start detection in AWS Java handler - Deleted ColdStartTracker class from the Java AWS wrapper. - Integrated cold start detection logic directly into the Handler class. - Updated configuration to reflect changes in runtime language and version. - Removed unused cross-platform benchmarking script to streamline the repository.
This PR consolidates several major feature enhancements into the SeBS framework, significantly expanding runtime support and benchmarking capabilities. It introduces native support for Rust, PyPy, and Java runtimes across multiple cloud platforms, along with comprehensive tooling for cross-platform benchmarking and result visualization.
1. New Runtime Support
benchmarks/wrappers/aws/rust.rust_installer.shand relevant Dockerfiles.010.sleepand110.dynamic-htmlbenchmarks in Rust.docs/rust-support.md.sebscore anddockerfilesto handle PyPy environments.java_installer.shand Maven project structures.2. Platform Enhancements
sebs/gcp/container.py) and ARM64 architecture support.