I'm trying to understand how to structure keys so that data stored in the GAE NDB Datastore scales horizontally. To take a specific scenario, I'd like to ensure that in a multi-tenant application, tenant data is partitioned in such a way that there are no hot points as the number of tenants grows.

Given a simple model like

```
class Tenant(ndb.Model):
   name      = ndb.StringProperty  (required = True,  indexed = True)
   timestamp = ndb.DateTimeProperty(required = True,  indexed = True)
   tags      = ndb.StringProperty  (repeated = True,  indexed = True)

```

Do we have control over how the data is partitioned across storage nodes without overlap (as much as possible)?