You really are barking up the wrong tree here. Solr is a search engine, designed for batch update and "eventual consistency". This fantasy you have of knowing exactly when a document is committed is completely inappropriate with Solr. Sure, you can in fact do a hard commit at any time to guarantee that recent updates are immediately searchable, but that is strongly discouraged for performance reasons, since Solr is batch update oriented.

And the level of detail you are requesting is merely how Solr happens to work today and is not necessarily guaranteed for future releases - since the guaranteed model is only for commits with eventual consistency.

It appears that you are trying to imagine Solr as a traditional, transaction-based database, when that is not the case.

I've asked you before to disclose what problem you are really trying to solve, and so far you have not yet let us in on your secret. You are certainly welcome to peruse the Solr and Lucene source code if your goal is merely idle curiosity, but you really should not be designing a Solr-based application around this non-guaranteed level of detail.

Soft commit, commit within, hard commit, real time get, and eventual consistency are the proper tools to design a Solr-based application around.

And if you wish to have multiple, uncoordinated update streams, you need to relax your requirements for eventual consistency even further.

In short, to summarize again, Solr is not a transaction-based database, but instead is a batch-oriented search engine with eventual consistency. Focus on exploiting Solr's strengths, not trying to treat Solr as something that it is not.

-- Jack Krupansky

-----Original Message----- From: Phani Chaitanya
Sent: Saturday, September 14, 2013 7:36 PM
To: solr-user@lucene.apache.org
Subject: Re: Committing when indexing in parallel

Thanks Erick. I completely did not get the point you are trying to make w.r.t
my question. I'll add it again according to your example.

In the example you gave w.r.t P1.1, P2.1, P1.2, P2.2 and P1 issues a commit,
I understand that all documents are committed.

Now what happens when P1 issues a commit and P2 sends another document, say
P2.3, to index at the same time ?

As you said the requests are treated as if they are serial - if P1.commit is
the first one among P1.commit & P2.3, P2.3 will be indexed into a new
segment ?

Regards,
Phani.



-----
Phani Chaitanya
--
View this message in context: http://lucene.472066.n3.nabble.com/Committing-when-indexing-in-parallel-tp4089953p4090120.html Sent from the Solr - User mailing list archive at Nabble.com.

Reply via email to