> +         String marker = listing.getNextMarker();
> +         if (marker != null) {
> +            logger.debug("%s with marker %s", message, marker);
> +            options = options.afterMarker(marker);
> +            listing = getListing(containerName, options, semaphore,
> +                  outstandingFutures, deleteFailure);
> +         } else {
> +            break;
> +         }
> +      }
> +   }
> +
> +   public void execute(final String containerName,
> +         ListContainerOptions listOptions) {
> +      final AtomicBoolean deleteFailure = new AtomicBoolean();
> +      final int numOutStandingRequests = 1024;

Done.

There is a configurable property called "jclouds.max-parallel-deletes" that can 
be used for this.

You're point about whether the # of semaphores should be equal to the # of 
threads in the executorService is valid. The default value of 
"jclouds.max-parallel-threads" is equal to the # of user threads.

Given that these two are equal, I thought about whether we need the extra 
config option. Can we just use the value of PROPERTY_USER_THREADS instead. 
However, I'm not sure if the executorService object injected into 
DeleteAllKeysInList is  also being used somewhere else. If it is used 
somewhere, I guess, it would be good to have an option where the use can limit 
the number of parallel deletes being issued when deleting a container thereby 
limiting the number of threads being used from the executorService.

Let me know if this isn't necessary.

---
Reply to this email directly or view it on GitHub:
https://github.com/jclouds/jclouds/pull/214/files#r10872420

Reply via email to