object-storage: turn off stat() for container list

For most installations we have seen so far, we don't need the
container listing to accurately return the size of all the objects in
the container. This is very expensive to gather.

For now, turn it off by default, and provide a fs.conf configuration
parameter to turn it on:

  accurate_size_in_listing = yes

The default for the above is "no".

Change-Id: I8617e5781da9ccfbe8695a7ee45af701ad560182
Signed-off-by: Peter Portante <peter.portante@redhat.com>
object-storage: cleanup err handling in Glusterfs

Clean up the error handling in this module. This is a back-port of
work done as part of upstream refactoring work to remove the
dependency on the Swift differences we carry, see commit
6194691528d487417288e4dd0fa377fa06e85a04.

Change-Id: Ic759fcab47c24e890a8655f0cdd79ffe14064330
Signed-off-by: Peter Portante <peter.portante@redhat.com>
object-storage: turn off act and cont updates

For gluster, we don't need to update an account or a container when a PUT
operation occurs for a container or object, respectively.

Since the account is just the gluster volume (one-to-one mapping of account to
gluster volume mount point), the PUT of a container just creates a directory
in the root of the volume, so it has already "put" it into the account.

Since the object is just a file or directory placed into a container which, in
turn, is just a directory, the act of creating it has already "put" it into
the container.

Removing these two operations saves a round trip on PUT operations for
containers and objects, which is a big savings for objects.

Change-Id: Ic9b37defef3611d9ef342a17cbfe8040df9cca4e
Signed-off-by: Peter Portante <peter.portante@redhat.com>
object-storage: add worker max_clients parameter

Adding the "max_clients" parameter for a worker allows us to handle
one client at a time for a worker. This is very useful for debugging
behaviors.

But it is also useful for working around a starvation issue when the
file system underneath becomes very slow. By setting max_clients to 1,
and bumping up the number of workers significantly, we can attempt to
mitigate that starvation effect.

Change-Id: I4d7db1e0c0eb05da73f19d5abd5f32e4cec11475
Signed-off-by: Peter Portante <peter.portante@redhat.com>
object-storage: provide more common cfg defaults

Provide more common configuration defaults, as seen and recommended across
many large customer installations, as well as provide some guidance on how to
set the parameters.

We also provide the new max_clients parameter for the object-server
configuration to help situations where long runnign file system operations end
up starving other requests in-flight in the same worker in other co-routines.

Change-Id: If9b38859a46fe23fc607ed6c318894484dd2b3be
Signed-off-by: Peter Portante <peter.portante@redhat.com>