Here’s an overview of AWS Lambda SnapStart.
The
concept: SnapStart
AWS Lambda SnapStart is a performance
optimization for Java-based Lambdas (Java
11 & 17 runtimes) that cuts cold start time
dramatically — often by up to 90%.
Instead of warming the environment from scratch on every
cold start, AWS:
- Initializes twtech function once ahead of time.
- Takes a snapshot
of the fully initialized runtime, code, and dependencies.
- Reuses
that frozen snapshot to instantly start new execution environments.
How SnapStart Works
1.
Initialization Phase
- Happens once when twtech publishes a Lambda
version.
- AWS:
- Starts a fresh environment.
- Runs the init code (class loading, static
blocks, dependency injection frameworks like Spring, etc.).
- Stops before your Handler’s invoke() is called.
2.
Snapshot
- AWS serializes the memory and execution state
into a snapshot image.
- Includes:
- Loaded classes
- JIT-compiled code
- Initialized static variables
- Dependency graph
3.
Restore Phase
- When a new execution environment is needed, AWS:
- Restores from the snapshot instead of re-running
initialization.
- This skips the slow JVM boot, class loading, and
dependency wiring steps.
Key Benefits
- Massive cold start reduction for Java Lambdas with heavy init times (Spring Boot,
Micronaut, Quarkus, etc.).
- Consistent performance for burst traffic.
Limitations & Caveats
- Only works with Java 11/17 runtimes.
- Immutable init state:
- Any changes made during initialization are frozen in
the snapshot.
- At restore time, twtech can’t rely on fresh data from init phase — it must fetch
dynamic data at invocation time.
- No environment-variable changes after snapshot — if env vars change, twtech would need to republish
the version.
- Ephemeral storage
(/tmp) is not snapshotted.
- Some network connections (DB sockets, API sessions) may
break after restore — use lazy initialization instead.
When to Use SnapStart
- Heavy frameworks with long cold starts.
- APIs that require low latency on first request.
- Functions triggered sporadically where cold starts
matter.
No comments:
Post a Comment