-
Notifications
You must be signed in to change notification settings - Fork 386
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Add parameter to power-tune only cold starts #177
Conversation
Just did another test with the waiter delay set to 250ms, hoping to reduce the initialization time. Unfortunately, I got the same numbers. Looks like I had already optimized the waiter delay to 500ms (it's 5s by default). |
I'd also recommend using @Parro do you think it makes sense to automatically set |
I think that are still be cases there a lambda could have some values that should be trimmed, for example when it depends from a remote service, that could take longer to respond in some calls. So I agree with youI think that we should let the user choose if trim or not the result. |
I was thinking, and if we invert the logic and instead of We should also explain in the docs that with |
@Parro I'd rather keep the current behaviour as the default one. Considering only cold starts is an "edge case" that makes sense only in specific situations. For the largest majority of cases (and invocations), you want to power-tune your functions for warm invocations. |
Ok, maybe I am biased by my need to improve cold start of my lambdas 😉 |
Closing this, as we're prioritizing the approach of #206, mainly because it removed the upperbound limit to the # of versions/aliases you can create and because it solves another issue related to SnapStart. |
Implement #176
Still a few tests to run, but it works :)
I have not encountered any quotas or rate limiting when creating new versions/aliases.
initializer
completed in 88 seconds and thecleaner
in 12 secondsinitializer
completed in 430 seconds and thecleaner
in 53 secondsAs expected, there's no major difference in the invocation time of the
executor
step, besides the cold start itself. The executor just needs to invoke the right aliases, either in series or in parallel.Two notes:
TotalExecutionTimeout
parameter at deploy time (it's 5 minutes by default and it applies to all functions). Given the maximum of 15min, there is an upperbound to the total number of aliases/versions that can be created (more or less 35 per minute, for a maximum of 500).UpdateFunctionConfiguration
(using an SDK waiter) and the current waiter delay is 500ms. I'll try to optimize this a bit, so we could increase the upperbound mentioned above.