Hi Folks,

Here are some my ideas to use shared file system with two separate Solr
Clouds(Writer Solr Cloud and Reader Solr Cloud).

I want to get your valuable feedbacks

For prototype, I setup two separate Solr Clouds(one for Writer and the
other for Reader).

Basically big picture of my prototype is like below.

1. Reader and Writer Solr clouds share the same directory
2. Writer SolrCloud sends the "openSearcher" commands to Reader Solr Cloud
inside postCommit eventHandler. That is, when new data are added to Writer
Solr Cloud, writer Solr Cloud sends own openSearcher command to Reader Solr
Cloud.
3. Reader opens "searcher" only when it receives "openSearcher" commands
from Writer SolrCloud
4. Writer has own deletionPolicy to keep old commit points which might be
used by running queries on Reader Solr Cloud when new searcher is opened on
reader SolrCloud.
5. Reader has no update/no commits. Everything on reader Solr Cloud are
read-only. It also creates searcher from directory not from
indexer(nrtMode=false).

That is,
In Writer Solr Cloud, I added postCommit eventListner. Inside the
postCommit eventListner, it sends own "openSearcher" command to reader Solr
Cloud's own handler. Then reader Solr Cloud will create openSearcher
directly without commit and return the writer's request.

With this approach, Writer and Reader can use the same commit points in
shared file system in synchronous way.
When a Reader SolrCloud starts, it doesn't create openSearcher. Instead.
Writer Solr Cloud listens the zookeeper of Reader Solr Cloud. Any change in
the reader SolrCloud, writer sends "openSearcher" command to reader Solr
Cloud.

Does it make sense? Or am I missing some important stuff?

any feedback would be very helpful to me.

Thanks,
Jae

Reply via email to