> + 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