Patent ID: 8832273

Claim:
A method comprising: detecting failure of a failed host of a plurality of hosts, wherein the failed host is assigned exclusive access to a first subset of partitions of a plurality of partitions, and the first subset of partitions comprises a first unassigned partition and a second unassigned partition, after failure; selecting a reassignment operation of a plurality of available reassignment operations, wherein the plurality of available reassignment operations comprises an optimistic reassignment operation and an exhaustive reassignment operation, and the optimistic reassignment operation comprises reassigning the first subset of partitions of the plurality of partitions to the plurality of hosts; and persisting existing assignments of a second subset of partitions of the plurality of partitions among the plurality of hosts; and performing the reassignment operation, wherein the selecting and the performing are performed in response to the detecting, and the reassignment operation comprises calculating a first value associated with a first host of the plurality of hosts, wherein the first host has exclusive access to a first data partition, the first value is based at least in part on a first processing power of the first host, and a first processing requirement for a first quantity of data on the first data partition, wherein the first processing requirement depends at least in part on a product of: a size of the first quantity of data, and a weighting factor based at least in part on an access characteristic of the first quantity of data, and calculating a second value associated with a second host of the plurality of hosts, wherein the second value is based at least in part on a second processing power of a second host; comparing the first and second values, wherein the comparing is performed by a processor; calculating a third value associated with the first unassigned partition, wherein the third value depends at least in part on a product of: a size of a quantity of data in the first unassigned partition, and a weighting factor based at least in part on an access characteristic of the data in the first unassigned partition, and calculating a fourth value associated with the second unassigned partition, wherein the fourth value depends at least in part on a product of: a size of a quantity of data in the second unassigned partition, and a weighting factor based at least in part on an access characteristic of the data in the second unassigned partition, comparing the third and fourth values, wherein the comparing is performed by the processor; and assigning, in response to the comparing the first and second values and the comparing the third and fourth values, exclusive access of one of the first unassigned partition and the second unassigned partition to one of the first and second hosts.