multi cores vs filter queries for a multi tenant deployment
I'm sort of looking in to a deployment which will support multi tenancy. This means that there will be 1000s of tenant domains each having 1000s of users. I need to figure out which approach is better for this deployment when using the solr server.
Approach #1 - Use multi cores for each tenant and thereby use separate indexes for each. If necessary use filter queries with user ids for users.
Approach #2 - Use filter queries with tenant ids to filter out results of different tenant domains. Similarly, as above, use user ids as needed.
My concern comes on aspects of performance and security.
Will using approach #1 be a killer for performance? With this many number of users, this setup has to scale smoothly for so many number of users. When the deployment potentially will have 1000s of cores, how can I prevent a security vulnerability appearing between cores?
What are the implications of using approach #2? Will I have to constantly check around for code with security checks since only a single index is used?
Any feedback for the above concerns would be really appreciated.