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.