On 8/26/2016 1:13 PM, Chamil Jeewantha wrote:
> We are using SolrCloud as the search provider of a multi-tenant cloud based
> application. We have one schema for all the tenants. The indexes will have
> large number(millions) of documents.
>
> As of our research, we have two options,
>
>    - One large collection for all the tenants and use Composite-ID routing
>    - Collection per tenant

I would tend to agree that you should use SolrCloud.  And to avoid
potential problems, each tenant should have their own collection or
collections.

You probably also need to put a smart load balancer in front of Solr
that can restrict access to URL paths containing the collection names to
the source addresses for each tenant.  The tenants should have no access
to the admin UI, because it's not possible to keep people using the
admin UI from seeing collections that aren't theirs.  Developing that
kind of security could be possible, but won't be easy at all.

If access to the admin UI is something that your customers demand, then
I think you'll need to have an entire cloud per tenant -- which probably
means you're going to want to delve into virtualization, possibly using
one of the lightweight implementations like Docker.  Note that if you
take this path, you're going to need a LOT of RAM -- much more than you
might imagine.

Thanks,
Shawn

Reply via email to