* Are there any constraints as to how to safely call the /update handler for a 
core from multiple clients?

* Are there locking issues we should be aware of?

* Is there any way multiple /update calls can corrupt a core?

Backstory:

Back in 2013, when we first started using Solr 4.2.0, we had problems with our 
core getting corrupted if we tried to have multiple processes run the 
DataImportHandler at the same time.  We updated our app to make sure that could 
no longer happen.  Everything was fine, and we lived on Solr 4.2 for years.

Now, we are running 8.9, and we have moved our indexer from using the DIH to 
using /update handlers.  That works very nicely as well.  We have kept the same 
app constraints that guarantees that our app can only POST to /update one at a 
time.

However, we are adding a new core (I’ll call it userinfo) to our Solr instance 
that will require multiple clients to be updating a core at the same time.  
Each time a web user logs in to the site, we will /update a record in the 
userinfo core.  We could have, say, 100 users all updating the same core at the 
same time.  It’s also possible that there could be two clients updating the 
same record in the userinfo core at the same time.

My questions:

1) Are there any limits as to how many clients can post to 
/solr/userinfo/update at once?

2) Are there are problems with multiple clients trying to update the same 
record at the same time?  Will Solr just handle the requests sequentially, and 
the last client POSTing is the one that “wins”?  (I’m talking about updating 
the entire record, not doing partial updates at the field level)

3) Is there any way we could corrupt our Solr core through /update POSTs?

My assumption is that the answers are “No, this is safe to do.”  However, I 
can’t find anything in the docs that explicitly say that.  I also can’t find 
anything in the docs saying “Don’t do that.”  We want to make sure before we 
move forward.

Can someone please help point to something to address these questions?

Thanks,
Andy

Reply via email to