Minor improved the scheduling algorithm in the distributed version.
Project: http://git-wip-us.apache.org/repos/asf/incubator-quickstep/repo Commit: http://git-wip-us.apache.org/repos/asf/incubator-quickstep/commit/08a70334 Tree: http://git-wip-us.apache.org/repos/asf/incubator-quickstep/tree/08a70334 Diff: http://git-wip-us.apache.org/repos/asf/incubator-quickstep/diff/08a70334 Branch: refs/heads/dist-patch Commit: 08a70334a8d6a11aad24ab6c4c1e2131d04f229f Parents: 9b0a6f9 Author: Zuyu Zhang <zu...@apache.org> Authored: Fri Feb 10 20:37:23 2017 -0800 Committer: Zuyu Zhang <zu...@apache.org> Committed: Sat Feb 11 11:30:51 2017 -0800 ---------------------------------------------------------------------- query_execution/ForemanDistributed.cpp | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/incubator-quickstep/blob/08a70334/query_execution/ForemanDistributed.cpp ---------------------------------------------------------------------- diff --git a/query_execution/ForemanDistributed.cpp b/query_execution/ForemanDistributed.cpp index 8c20e65..389d6ab 100644 --- a/query_execution/ForemanDistributed.cpp +++ b/query_execution/ForemanDistributed.cpp @@ -378,7 +378,8 @@ void ForemanDistributed::dispatchWorkOrderMessages(const vector<unique_ptr<S::Wo sendWorkOrderMessage(shiftboss_index_for_particular_work_order_type, proto); shiftboss_directory_.incrementNumQueuedWorkOrders(shiftboss_index_for_particular_work_order_type); - if (shiftboss_index == shiftboss_index_for_particular_work_order_type) { + if (shiftboss_index == shiftboss_index_for_particular_work_order_type && + shiftboss_directory_.hasReachedCapacity(shiftboss_index)) { shiftboss_index = (shiftboss_index + 1) % shiftboss_directory_.size(); } else { // NOTE(zuyu): This is not the exact round-robin scheduling, as in this case,