  Database platform-as-a-service (dbPaaS) is developing rapidly and a large
number of databases have been migrated to run on the Clouds for the low cost
and flexibility. Emerging Clouds rely on the tenants to provide the resource
specification for their database workloads. However, they tend to over-estimate
the resource requirement of their databases, resulting in the unnecessarily
high cost and low Cloud utilization. A methodology that automatically suggests
the "just-enough" resource specification that fulfills the performance
requirement of every database workload is profitable. To this end, we propose
URSA, a capacity planning and workload scheduling system for dbPaaS Clouds.
USRA is comprised by an online capacity planner, a performance interference
estimator, and a contention-aware scheduling engine. The capacity planner
identifies the most cost-efficient resource specification for a database
workload to achieve the required performance online. The interference estimator
quantifies the pressure on the shared resource and the sensitivity to the
shared resource contention of each database workload. The scheduling engine
schedules the workloads across Cloud nodes carefully to eliminate unfair
performance interference between the co-located workloads. Our real system
experimental results show that URSA reduces 27.5% of CPU usage and 53.4% of
memory usage for database workloads while satisfying their performance
requirements. Meanwhile, URSA reduces the performance unfairness between the
co-located workloads by 42.8% compared with the Kubernetes.
