A method for distributing a plurality of data partitions among a cluster of nodes in a computer network, comprising: dividing a database into a plurality of primary partitions; storing the primary partitions on the cluster of nodes, wherein the primary partitions are distributed among the nodes based on a round-robin placement algorithm, wherein the primary partitions are configured to serve a system workload; duplicating the primary partitions to create a plurality of corresponding secondary partitions; and storing the secondary partitions on the cluster of nodes, wherein the secondary partitions are distributed among the nodes based on a modified round-robin algorithm; wherein the modified round-robin algorithm requires that a node selected for storing a to-be-stored secondary partition is other than a node storing a corresponding primary partition, and diversity exists with respect to other secondary partitions stored in the node selected for storing the to-be-stored secondary partition, and wherein diversity exists in case that no primary partition corresponding to any secondary partition stored on the node selected for storing the to-be-stored secondary partition is stored on the same node as the primary partition of the to-be-stored secondary partition, otherwise, diversity does not exist; wherein, the method further comprises: in response to detection of a node failure, upgrading one or more secondary partitions that correspond to one or more primary partitions that previously were stored on the failed or disconnected node to primary status on the same nodes where those secondary partitions are stored; replicating each of the newly upgraded primary partitions as well as each of the secondary partitions that previously were stored on the failed or disconnected node; and redistributing the replicated partitions in accordance with the modified round-robin algorithm; wherein the redistributing of the replicated partitions in response to detection of a node failure is performed iteratively with regard to each of the newly upgraded primary partitions as well as with regard to each of the secondary partitions that previously were stored on the failed or disconnected node. dividing a database into a plurality of primary partitions; storing the primary partitions on the cluster of nodes, wherein the primary partitions are distributed among the nodes based on a round-robin placement algorithm, wherein the primary partitions are configured to serve a system workload; duplicating the primary partitions to create a plurality of corresponding secondary partitions; and storing the secondary partitions on the cluster of nodes, wherein the secondary partitions are distributed among the nodes based on a modified round-robin algorithm; wherein the modified round-robin algorithm requires that a node selected for storing a to-be-stored secondary partition is other than a node storing a corresponding primary partition, and diversity exists with respect to other secondary partitions stored in the node selected for storing the to-be-stored secondary partition, and wherein diversity exists in case that no primary partition corresponding to any secondary partition stored on the node selected for storing the to-be-stored secondary partition is stored on the same node as the primary partition of the to-be-stored secondary partition, otherwise, diversity does not exist; wherein, the method further comprises: in response to detection of a node failure, upgrading one or more secondary partitions that correspond to one or more primary partitions that previously were stored on the failed or disconnected node to primary status on the same nodes where those secondary partitions are stored; replicating each of the newly upgraded primary partitions as well as each of the secondary partitions that previously were stored on the failed or disconnected node; and redistributing the replicated partitions in accordance with the modified round-robin algorithm; wherein the redistributing of the replicated partitions in response to detection of a node failure is performed iteratively with regard to each of the newly upgraded primary partitions as well as with regard to each of the secondary partitions that previously were stored on the failed or disconnected node. in response to detection of a node failure, upgrading one or more secondary partitions that correspond to one or more primary partitions that previously were stored on the failed or disconnected node to primary status on the same nodes where those secondary partitions are stored; replicating each of the newly upgraded primary partitions as well as each of the secondary partitions that previously were stored on the failed or disconnected node; and redistributing the replicated partitions in accordance with the modified round-robin algorithm; wherein the redistributing of the replicated partitions in response to detection of a node failure is performed iteratively with regard to each of the newly upgraded primary partitions as well as with regard to each of the secondary partitions that previously were stored on the failed or disconnected node.