  Configuration knobs of database systems are essential to achieve high
throughput and low latency. Recently, automatic tuning systems using machine
learning methods (ML) have shown to find better configurations compared to
experienced database administrators (DBAs). However, there are still gaps to
apply the existing systems in production environments, especially in the cloud.
First, they conduct tuning for a given workload within a limited time window
and ignore the dynamicity of workloads and data. Second, they rely on a copied
instance and do not consider the availability of the database when sampling
configurations, making the tuning expensive, delayed, and unsafe. To fill these
gaps, we propose OnlineTune, which tunes the online databases safely in
changing cloud environments. To accommodate the dynamicity, OnlineTune embeds
the environmental factors as context feature and adopts contextual Bayesian
Optimization with context space partition to optimize the database adaptively
and scalably. To pursue safety during tuning, we leverage the black-box and the
white-box knowledge to evaluate the safety of configurations and propose a safe
exploration strategy via subspace adaptation.%, greatly decreasing the risks of
applying bad configurations. We conduct evaluations on dynamic workloads from
benchmarks and real-world workloads. Compared with the state-of-the-art
methods, OnlineTune achieves 14.4%~165.3% improvement on cumulative performance
while reducing 91.0%~99.5% unsafe configuration recommendations.
