On Thu, Apr 16, 2009 at 6:16 PM, Richard Davies <richard.davies@elastichosts.com> wrote:
At present, the API draft specifies a single central entry point, on which a
HTTP GET returns a complete description of all objects that a user has
access to.

For a user with a large number of servers, this could be a very expensive
operation - the cloud will have to check with each individual virtualization
host to get values such as the performance monitoring.

It is probably good to offer this option, but the API should definitely
ofter separate 'retrieve' operations (which are much cheaper) such as:

- List UUIDs of all a user's objects, but do not describe them fully
- Describe a single object fully given its UUID.

Again, good to see you guys are thinking about the details. The use cases I am working on range from a single user workstation running an SOE image from a secure hypervisor burnt into the motherboard to a great global grid containing millions of objects.

In the former case there is no need for additional complexity because there should only ever be a single workload. The latter case is provided for by way of a flexible search service. It's not yet fully defined but here's a taste (inspired by GData which I can assure you is a pleasure to use even for arbitrarily large numbers of objects):

Search service (SS)

Attribute search

It is possible to search for arbitrary attributes by specifying them in the full text search query string (e.g. "?q=cpu.cores:2")

Category search

To search for members of a given category (that is, any resource with a given Atom "term" or "label") do a HTTP GET request to "<entrypoint>/-/cat1/cat2":

Full text search

For full text search append "?q=<query>" to the entry point URI and make a HTTP GET request. An XML feed containing all matching resources will be returned.

The search service should also allow you to search on attributes so you can do things like search for all servers tagged "linux" with over 4Gb RAM.

Search is important - it needs to be powerful (at least for full implementations).

Sam