There are some inconsistent configuration/behaviors regarding asynchronous upload executor handling.
- VFSBackend disables async upload based on asyncPoolSize not based on CachingDataStore#asyncUploadLimit.
- FSBackend disables it based on CachingDataStore#asyncUploadLimit correctly as of
- S3Backend doesn't have a feature to disable async uploading yet.
Probably it would be nicer to have AbstractBackend for all the practical Backend implementations to share the handling on asynchronous uploading features such as how to create an Executor and async executor pool size, etc. There are already some duplicate code regarding this in VFSBackend and FSBackend.