IMHO passing the shard identifier in the Properties entries is a weak
solution in long term.

I shall prefer breaking SPI but no rational thoughts to back my out of
the box opinion.

Niko

2013/4/11 Emmanuel Bernard <emman...@hibernate.org>:
> I am currently working on a solution for dynamically adding new shards
> to Hibernate Search (for example one per tenant with a list growing).
>
> https://hibernate.atlassian.net/browse/HSEARCH-472
>
> Things are going well but there is an interesting problem related to a
> subsequent feature
>
> https://hibernate.atlassian.net/browse/HSEARCH-1295
>
> In short, EntityIndexBinders create additional IndexManagers when a not
> yet created shard id requested. The IndexManager is uniquely identified
> by its indexName.
>
> In the old sharding approach, the index name was turned into indexName.n
> (n being the shard number) and this new indexName.n is passed along to
> DirectoryProviders etc
>
> To implement HSEARCH-1295 properly, you need the DirectoryProvider to
> have access to the original index name and the shard identifier as
> independent dataset.
>
> We can hack around the model and pass the original indexName and shard
> identifier in specific Properties entries. That's backward compatible.
>
> An alternative is to replace String indexName in all thee contracts with
> a proper IndexName object pointing to the original indexName and to the
> shard idenfitier. That one breaks a bunch of SPI and in particular
> DirectoryProvider.
>
> Thoughts?
>
> Emmanuel
> _______________________________________________
> hibernate-dev mailing list
> hibernate-dev@lists.jboss.org
> https://lists.jboss.org/mailman/listinfo/hibernate-dev
_______________________________________________
hibernate-dev mailing list
hibernate-dev@lists.jboss.org
https://lists.jboss.org/mailman/listinfo/hibernate-dev

Reply via email to