1. A method for hosting, at a provider, a plurality of tenants over a network, comprising: storing, at the provider, a shared data structure; storing, at a first tenant of the plurality of tenants, a tenant-specific data structure specific to the first tenant for access by the first tenant; storing, at each of the plurality of tenants, shared-metadata referencing the shared data structure; querying, based on the shared-metadata and in response to a data request from the first tenant, at least one of the provider and the first tenant for the requested data; and providing the requested data based on the querying.