Right now I create a separate thread pool executor for each query request, and I think that can be improved