A method for storing data, comprising: providing a plurality of physical storage pools , each storage pool including a plurality of storage nodes coupled to a network , each storage node further providing a non-transitory computer readable medium for data storage; classifying a plurality of availability zones, wherein the storage nodes within an availability zone are subject to a correlated loss of access to stored data; defining a plurality of abstract partitions, wherein each possible input data management request deterministically corresponds to one of the plurality of abstract partitions, and wherein the deterministic correspondence between each possible input data management request and an abstract partition of the plurality of abstract partitions is established using a function; mapping the plurality of abstract partitions to the plurality of physical storage pools such that each mapped physical storage pool includes a replica of the data associated with the associated mapped abstract partition, and each replica for a particular abstract partition is mapped to a physical storage pool in a different availability zone, wherein the mapping the plurality of abstract partitions to the plurality of physical storage pools includes applying a constraint satisfaction algorithm; receiving a data management request over the network, the data management request associated with a data object ; determining, using the data object and function, a partition identification, ID; identifying, using the partition ID and the constraint satisfaction algorithm, a first partition corresponding to the received data management request; and manipulating the data object in the physical storage pools mapped to the first partition in accordance with the data management request. providing a plurality of physical storage pools , each storage pool including a plurality of storage nodes coupled to a network , each storage node further providing a non-transitory computer readable medium for data storage; classifying a plurality of availability zones, wherein the storage nodes within an availability zone are subject to a correlated loss of access to stored data; defining a plurality of abstract partitions, wherein each possible input data management request deterministically corresponds to one of the plurality of abstract partitions, and wherein the deterministic correspondence between each possible input data management request and an abstract partition of the plurality of abstract partitions is established using a function; mapping the plurality of abstract partitions to the plurality of physical storage pools such that each mapped physical storage pool includes a replica of the data associated with the associated mapped abstract partition, and each replica for a particular abstract partition is mapped to a physical storage pool in a different availability zone, wherein the mapping the plurality of abstract partitions to the plurality of physical storage pools includes applying a constraint satisfaction algorithm; receiving a data management request over the network, the data management request associated with a data object ; determining, using the data object and function, a partition identification, ID; identifying, using the partition ID and the constraint satisfaction algorithm, a first partition corresponding to the received data management request; and manipulating the data object in the physical storage pools mapped to the first partition in accordance with the data management request. <EOS>