I did some thinking about this problem, and it occurred to me that we might be going at this the completely wrong way. Could we reverse- bloom instance startups?
Here's the basic idea. If apps need to load in/process a bunch of stuff at startup, why don't we give them the processing power to do that, but only at the time of startup? Suppose we start up an instance. For the first 30 seconds of that instance, we give it F16 ranking (that is, 4 times the power of a current F4 instance). For the next 30 seconds, the instance gets F12 ranking (3 times F4 power). The next 30 seconds, the instance gets F8 ranking (2 times F4 power). After that, the instance gets lowered to F4 and remains there for the rest of its lifespan. For the first 90 seconds of the instance's lifespan, it gets turbocharged, and should be able to handle all startup processes and a few initial requests. The scheduler doesn't need to change; it can continue feeding requests into cold instances, because even cold instances will tear through their startup and handle the requests. Even if this turboboosted time was billed at standard rate, it wouldn't cost that much; F4 costs 32 cents per instance hour, so F16 would (theoretically) cost 4 times as much, so an F16 instance hour would cost $1.28 per instance hour. We only need 90 seconds at that rate, so 3.2 cents. I think paying 3 cents extra per instance startup is very reasonable, especially if it prevents user-facing cold instance startups. It's entirely doable on a technical level too. Amazon AWS has a similar system where Micro servers can temporarily boost to 2 compute units, then get lowered to their allotted 1 ECU. Linux has the ability built-in: see nice/renice http://en.wikipedia.org/wiki/Nice_(Unix) I'd be interested in hearing if this system is possible within the GAE hosting system. -- You received this message because you are subscribed to the Google Groups "Google App Engine" group. To post to this group, send email to [email protected]. To unsubscribe from this group, send email to [email protected]. For more options, visit this group at http://groups.google.com/group/google-appengine?hl=en.
