So I'm trying to figure out how to make it possible to provision 100+
instances on EC2 in one createNodesInGroup call without getting crushed by
API rate limits. The combination of the min count/max count parameters and
the idempotency with a client token (see
http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/Run_Instance_Idempotency.html)
makes the raw creation of 100+ instances without a thundering herd of
RunInstances calls very realistic, but then we hit the issue of polling
those nodes (even with the idempotency, we'd still end up having at least
one is-node-running polling call per node, and then we'd hit the same thing
but much bigger at terminate/pause/resume/etc)...

So the problem I'm trying to tackle is bigger than just EC2, I think. A
decent number of provider APIs allow querying for more than one node in a
single DescribeInstances-equivalent call, and I've done some work in the
past that allowed for switching over ComputeService.listNodesByIds(...) to
use those approaches when possible. But polling is very much about doing
one call per node, i.e. in
https://github.com/jclouds/jclouds/blob/master/compute/src/main/java/org/jclouds/compute/predicates/internal/RefreshNodeAndDoubleCheckOnFailUnlessStatusInvalid.java?source=c-
I'm honestly completely unclear as to what the best approach would be
to
switch this to using a cached/periodically refreshed list instead.

Does anyone have any thoughts on this before I just start beating my head
against it?

A.

Reply via email to