Hi Zuyu, This makes sense to me. I think Harshad has some work on concurrent query execution in a branch, so would be good to get his input too. Perhaps, we could move to a unified design to allow concurrent query execution?
Cheers, Jignesh On 11/19/16, 10:48 PM, "Zuyu Zhang" <hit...@gmail.com on behalf of z...@cs.wisc.edu> wrote: Hi guys, I would like to discuss some design changes regarding the QueryHandle ownership during the life of serving a query. I would propose to let QueryManager owns QueryHandle during the query execution phase, instead of the main thread in QuickstepCli. For those who are not familiar, QueryHandle is the central data structure to hold the query id, the optimized query execution plan, and query priority or like. And QueryManager is the key data structure to hold the query execution state. For now, the main thread in QuickstepCli manages the QueryHandle, and only processes one query at a time. This situation, however, does not scale for the distributed version which will have multiple DistributedClis submit queries for concurrent execution. By moving QueryHandle ownership to QueryManager, it fits well in both the single-node and the distributed version. In addition, it becomes much easier to do the clean-ups by Foreman-managed components upon the completion of the query execution, instead of that Foreman notices the main thread to do so. Cheers, Zuyu