[
https://issues.apache.org/jira/browse/JCLOUDS-1135?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15359016#comment-15359016
]
Ladislav Thon commented on JCLOUDS-1135:
----------------------------------------
https://github.com/jclouds/jclouds-labs/pull/294
> Azure: AzureComputeServiceAdapter.getNode/listNodes perform O(N) requests
> -------------------------------------------------------------------------
>
> Key: JCLOUDS-1135
> URL: https://issues.apache.org/jira/browse/JCLOUDS-1135
> Project: jclouds
> Issue Type: Bug
> Components: jclouds-labs
> Affects Versions: 1.9.2
> Reporter: Ladislav Thon
> Labels: azurecompute
>
> (Note that this is about the "classic" {{azurecompute}} provider, _not_ about
> {{azurecompute-arm}}.)
> The {{AzureComputeServiceAdapter.getNode}} and {{listNodes}} methods perform
> O(N) API requests (where N is the number of existing cloud services). This
> results in abysmal performance when a significant number of cloud services
> exist.
> I'm not sure how {{listNodes}} could possibly be fixed, but I don't really
> care much about this method. The only place where it's used is when
> generating a unique name for newly created nodes, but that can be overridden
> from the outside (via {{templateOptions.nodeNames}}).
> On the other hand, I care a lot about the {{getNode}} method. That one should
> IMHO complete really quickly. The Azure provider, when creating a node,
> always creates a cloud service and a deployment, both of them with the same
> name (see
> https://github.com/jclouds/jclouds-labs/blob/2b36a75f9f/azurecompute/src/main/java/org/jclouds/azurecompute/compute/AzureComputeServiceAdapter.java#L96).
> There are other places in the Azure provider that assume that the deployment
> inside the cloud service has the same name as the cloud service. With this
> assumption, the {{getNode}} method could perform O(1) requests instead of
> O(N), resulting in much better performance.
> Relying on the assumption should be completely safe when working with nodes
> created by the JClouds Azure provider itself. Maybe there are people who use
> the JClouds Azure provider within some configuration made outside of JClouds
> -- for such situations, a configuration flag could be provided, but I
> honestly think it's pretty much impossible to do that.
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)