  Given a replicated database, a divergent design tunes the indexes in each
replica differently in order to specialize it for a specific subset of the
workload. This specialization brings significant performance gains compared to
the common practice of having the same indexes in all replicas, but requires
the development of new tuning tools for database administrators. In this paper
we introduce RITA (Replication-aware Index Tuning Advisor), a novel
divergent-tuning advisor that offers several essential features not found in
existing tools: it generates robust divergent designs that allow the system to
adapt gracefully to replica failures; it computes designs that spread the load
evenly among specialized replicas, both during normal operation and when
replicas fail; it monitors the workload online in order to detect changes that
require a recomputation of the divergent design; and, it offers suggestions to
elastically reconfigure the system (by adding/removing replicas or
adding/dropping indexes) to respond to workload changes. The key technical
innovation behind RITA is showing that the problem of selecting an optimal
design can be formulated as a Binary Integer Program (BIP). The BIP has a
relatively small number of variables, which makes it feasible to solve it
efficiently using any off-the-shelf linear-optimization software. Experimental
results demonstrate that RITA computes better divergent designs compared to
existing tools, offers more features, and has fast execution times.
