Long(er) running containers for better performance aka Hot Containers #69

Closed
treeder opened this Issue Aug 24, 2016 · 6 comments

Projects

None yet

5 participants

@treeder
Member
treeder commented Aug 24, 2016

Instead of one off execution, keep container running for a while and take requests.

The first version executes a container per function call/request. Which is fine for many things, but we may want a way to run for longer periods of time to increase performance due to things like keeping db connections open, etc.

This would probably require a more lambda like code format and language libraries. See https://github.com/iron-io/lambda for existing work on lambda style code format.

I created a prototype of this years ago that routed traffic into IronWorker containers, should dig that out and look into that implementation.

@seiflotfy seiflotfy added this to the Beta - Major milestone Sep 13, 2016
@seiflotfy seiflotfy added the minor label Sep 15, 2016
@seiflotfy seiflotfy removed this from the Beta - Major milestone Oct 3, 2016
@seiflotfy
Contributor

@ccirello brought up that container performance degrades over time and would not increase or improve performance! How do we proceed?

@ccirello
Contributor
ccirello commented Oct 6, 2016

It does improve the performance, because it wouldn't involve the cost of starting the container - but the tradeoff is that eventually the docker daemon degrades. That's what the rotation is all about, in the end no?

@ccirello
Contributor
ccirello commented Oct 6, 2016

My first intuition is to say that we shouldn't do it. But I think we'd better to think a little longer about the idea. Also there's the problem of the shared state between executions within the scope of the same container.

@seiflotfy seiflotfy added this to the Alpha 2 milestone Oct 12, 2016
@nikhilm
Contributor
nikhilm commented Oct 14, 2016

Some useful info here https://aws.amazon.com/blogs/compute/container-reuse-in-lambda/

This is unrelated to runner rotation really. I agree waiting on this is a good idea.

@ccirello ccirello changed the title from Long(er) running containers for better performance to Long(er) running containers for better performance aka Hot Containers Nov 2, 2016
@ccirello
Contributor

See #214

@treeder treeder added major and removed minor labels Nov 19, 2016
@ccirello
Contributor

#332 fixes this

@ccirello ccirello closed this Nov 28, 2016
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment