lucene-solr-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Erick Erickson <erickerick...@gmail.com>
Subject Re: index version - replicable versus searching
Date Tue, 25 Jul 2017 00:59:18 GMT
 Actually, I'm surprised that the slave returns the new document and I
suspect that there's actually a commit on the master, but no new
searcher is being opened.

On replication, the slave copies all _closed_ segments from the master
whether or not they have been opened for searching. Hmmm, a little
arcane.

Here's a long blog on the subject:
https://lucidworks.com/2013/08/23/understanding-transaction-logs-softcommit-and-commit-in-sorlcloud/

But...
Whenever you hard commit (often configured in solrconfig.xml) you have
a choice whether opensearcher=true|false. _IF_ opensearcher=false, the
current segment is closed but the docs are not searchable yet.

When the slave does a replication, it copies all closed segments and
opens a new searcher on them. So here's one possibility:

1> you added some docs on the master but your solrconfig has an
autocommit setting that tripped in and has openSearcher=false. This
closed all open segments (i.e. the segments with the new docs)

2> the slave replicated the closed segments and opened a new searcher
on the index, so it shows the new docs

3> the master still hasn't opened a new searcher so continues to not
be able to see the new documents.

Is that possible?
Erick

On Mon, Jul 24, 2017 at 3:04 PM, Stanonik, Ronald <rstanonik@ucsd.edu> wrote:
> I'm testing replication on solr 5.5.0.
>
> I set up one master and one slave.
>
> The index versions match; that is, master(replicable), master(searching), and slave(searching)
are the same.
>
> I make a change to the index on the master, but do not commit yet.
>
> As expected, the version master(replicable) changes, but not master(searching).
>
> If I "replicate now" on the slave, then slave(searching) matches master(replicable),
which seems wrong because the slave now returns answers from master(replicable), while the
master returns answers from master(searching).
>
> Shouldn't the slave continue to return answers from master(searching), so that master
and slave return the same answers?
>
> What do I not understand?  The documentation I found about replication doesn't seem to
explain in depth how the versions are affected by changes and commit.
>
> Thanks,
>
> Ron

Mime
View raw message