Can you convert the unit test to JUnit 4 style? (ie using annotations instead of extending TestCase)
Can you add a test case for a volume that is not in vols?
Rather than sleeping in the test case, can you call shutdown and then awaitTermination() with a longer timeout? This should ensure that the test is allowed to run longer if the machine is super slow, but doesn't waste time if not necessary. This would also make you add an awaitTermination() call, which I think is a good thing to expose.
What's with the changes to FsShell? Was this accidental?
Missing license header on AsyncDIskService.java
The comment still says "In the future, we should put it in common". Since this is a common jira, please remove that
IMO the thread counts per volume should be configurable. Some systems can handle plenty of concurrent metadata ops while others, not so much. I don't feel strongly about this, though - happy to leave it to a later JIRA if people want this.
If the system can handle a lot of concurrent ops, that usually means the system is fast, so that we should be able to finish the ops pretty quickly. As a result I think there is not much need to change this option in reality. Let's postpone it until people ask for it.
Should the threads be made daemon threads? I'm not sure what the expected behavior should be when the server gets SIGINTed, but I think if they're not daemon threads it will block server shutdown.
Added "shutdownNow()" so that people can force shutdown.