A self-healing database system is a grand-challenge vision where the system will detect, diagnose, and repair software/hardware failures automatically. We identify performance-availability problems (PAPs) as an important target for self-healing, and develop techniques that enable database systems to recover automatically from common PAPs. PAPs can be caused by many factors in database systems, e.g., contention for hardware (e.g., CPU, memory) and software resources (e.g., locks), inappropriate setting of configuration parameters (e.g., undersized buffer pool), and poor physical design (e.g., missing indexes). Many "tuning knobs" (mechanisms) are available to recover from these failures online. We propose to demonstrate the Shaman database system that implements policies to invoke these mechanisms automatically, efficiently, and correctly by addressing two challenges: (i) which knob to turn? and (ii) by how much? Shaman uses a mix of analytical modeling (queuing networks) and statistical learning (planned experiments and regression) techniques to estimate the benefit and cost associated with the tuning of each knob.
展开▼