1. A computer-implemented method, comprising: generating a grid of shards, the grid of shards forming a partitioned data set, the grid of shards being indexed by row and column, the grid of shards comprising a set of data shards and a set of derived shards, the set of derived shards comprising a set of horizontally derived shards and a set of vertically-derived shards, wherein: the partitioned data set includes one or more shards containing one or more portions of the partitioned data set and one or more shards generated by applying an erasure code to the one or more shards containing the one or more portions of the partitioned data set; and each shard of the grid of shards has a corresponding row and corresponding column and is configured such that: the shard is reproducible from other shards associated with the row and reproducible from other shards associated with the column; if the shard is a horizontally-derived shard of the set of horizontally-derived shards, the shard is derived based at least in part on a set of data shards associated with the row; and if the shard is a vertically-derived shard of the set of vertically derived shards, the shard is derived based at least in part on a set of shards associated with the column; adding a new datacenter location to a set of datacenter locations by adding a set of null shards to the grid of shards, each null shard of the set of null shards having a corresponding row and a corresponding column, the corresponding column based at least in part on the new datacenter location; and storing a data object at a storage location in the new datacenter location, the storage location selected based at least in part on a null shard of the set of null shards, the null shard having a corresponding first row and first column by at least: converting the null shard to a data shard by allocating a storage device corresponding to the storage location; storing the data object in the data shard using the allocated storage device; updating a first set of derived shards associated with the first row, the first set of derived shards associated with the first row having a shard that is associated with a second column; converting each null shard of a first set of null shards associated with the first column to a corresponding derived shard by allocating a corresponding set of storage devices; updating a second set of derived shards associated with the first column; and updating a third set of derived shards associated with the second column.