Multi-server jobs are imperative in modern cloud computing systems. A
multi-server job has multiple components and requests multiple servers for
being served. How to allocate restricted computing devices to jobs is a topic
of great concern, which leads to the job scheduling and load balancing
algorithms thriving. However, current job dispatching algorithms require the
service rates to be changeless and knowable, which is difficult to realize in
production systems. Besides, for multi-server jobs, the dispatching decision
for each job component follows the All-or-Nothing property under service
locality constraints and resource capacity limits, which is not well supported
by mainstream algorithms. In this paper, we propose a dispatching algorithm for
multi-server jobs that learns the unknown service rates and simultaneously
maximizes the expected Accumulative Social Welfare (Asw). We formulate the Asw
as the sum of utilities of jobs and servers achieved over each time slot. The
utility of a job is proportional to the valuation for being served, which is
mainly impacted by the fluctuating but unknown service rates. We maximize the
Asw without knowing the exact valuations, but approximate them with
exploration-exploitation. From this, we bring in several evolving statistics
and maximize the statistical Asw with dynamic programming. The proposed
algorithm is proved to have a polynomial complexity and a State-of-the-Art
regret. We validate it with extensive simulations and the results show that the
proposed algorithm outperforms several benchmark policies with improvements by
up to 73%, 36%, and 28%, respectively