Agile middleware for scheduling: meeting competing performance requirements of diverse tasks

  • Authors:
  • Feng Yan;Shannon Hughes;Alma Riska;Evgenia Smirni

  • Affiliations:
  • The College of William and Mary, Williamsburg, VA, USA;The College of William and Mary, Williamsburg, VA, USA;EMC Corporation, Cambridge, MA, USA;The College of William and Mary, Williamsburg, VA, USA

  • Venue:
  • Proceedings of the 5th ACM/SPEC international conference on Performance engineering
  • Year:
  • 2014

Quantified Score

Hi-index 0.00

Visualization

Abstract

As the need for scaled-out systems increases, it is paramount to architect them as large distributed systems consisting of off-the-shelf basic computing components known as compute or data nodes. These nodes are expected to handle their work independently, and often utilize off-the-shelf management tools, like those offered by Linux, to differentiate priorities of tasks. While prioritization of background tasks in server nodes takes center stage in scaled-out systems, with many tasks associated with salient features such as eventual consistency, data analytics, and garbage collection, the standard Linux tools such as nice and ionice fail to adapt to the dynamic behavior of high priority tasks in order to achieve the best trade-off between protecting the performance of high priority workload and completing as much low priority work as possible. In this paper, we provide a solution by proposing a priority scheduling middleware that employs different policies to schedule background tasks based on the instantaneous resource requirements of the high priority applications running on the server node. The selection of policies is based on off-line and on-line learning of the high priority workload characteristics and the imposed performance impact due to low priority work. In effect, this middleware uses a {\em hybrid} approach to scheduling rather than a monolithic policy. We prototype and evaluate it via measurements on a test-bed and show that this scheduling middleware is robust as it effectively and autonomically changes the relative priorities between high and low priority tasks, consistently meeting their competing performance targets.