1. A non-transitory computer-readable medium embodying a program executable in a computing device, the program comprising: code that maintains a database that is horizontally partitioned among a first set of physical data stores in a distributed database cluster, each one of the first set of physical data stores storing a respective portion of the database that is divided into a respective set of L first buckets, L being a positive integer; code that reassigns each of the respective portions of the database from the respective set of L first buckets to a respective set of M second buckets, M being a positive integer greater than L; code that creates a corresponding second set of N physical data stores for each one of the first set of physical data stores, N being a positive integer, each one of the second set of N physical data stores mirroring the respective portion of the database stored by the one of the first set of physical data stores as a physical standby; code that updates a bucket mapping to designate, for each one of the first set of physical data stores: a distinct subset of the respective set of M second buckets is stored by the one of the first set of physical data stores; and a respective distinct subset of the respective set of M second buckets is stored by each one of the corresponding second set of N physical data stores; code that adds the second sets of N physical data stores to the distributed database cluster; and code that purges the respective portion of the database from each one of the first set of physical data stores and the second sets of N physical data stores other than a portion of the respective portion of the database that corresponds to the respective distinct subset of the respective set of M second buckets.