The datastore is now naively distributed.
Partitions now live in specific datastores, ListInputs know
only their corresponding datastore. This allows us to make better
scheduling decisions.