[ 
https://issues.apache.org/jira/browse/SOLR-14648?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17157424#comment-17157424
 ] 

Erick Erickson commented on SOLR-14648:
---------------------------------------

First, I agree that nuking all the existing PULL replica indexes is A Bad Thing 
in the scenario you point out.

That said I don't think picking a PULL replica to grab the index from 
automatically is a good solution since there's no guarantee that any PULL 
replica is up to date. Consider this scenario:

PULL replica1 is offline

the TLOG and other PULL replicas get lots of udpates. For some unfathomable 
reason, everything except replica1 is taken down. Now a new TLOG replica is 
created and it gets the index from replica1 which isn't up to date at all.

This is just the most egregious scenario. In a more realistic scenario, the 
PULL replicas may or may not have gotten the latest index changes when the TLOG 
replica goes down, so how would it be possible to choose among them? In fact 
there's no guarantee at all that _any_ of the PULL replicas remaining have the 
latest updates.

I'm thinking of something along the lines of creating a new TLOG replica in 
your scenario failing. More generally failing if there are no active TLOG 
replicas (leaders) in the existing collection. We'd need a way to fix this, 
perhaps a way to "promote" a PULL replica to a TLOG replica. There'd still be 
the possibility of losing documents, but just like FORCELEADER we can document 
this and let people decide whether it's worth the risk or they should just 
reindex everything.

We should not risk data inconsistency without somehow making sure that the 
users understand the risk.

> Creating TLOG with pure multiple PULL replica, leading to 0 doc count
> ---------------------------------------------------------------------
>
>                 Key: SOLR-14648
>                 URL: https://issues.apache.org/jira/browse/SOLR-14648
>             Project: Solr
>          Issue Type: Bug
>      Security Level: Public(Default Security Level. Issues are Public) 
>          Components: SolrCloud
>    Affects Versions: 8.3.1
>            Reporter: Sayan Das
>            Priority: Major
>
> With only PULL replica whenever we create a new TLOG as leader fresh 
> replication happens, resulting in flushing the older indexes from existing 
> PULL replicas
> Steps to replicate:
>  # Create 1 NRT or 1 TLOG replica as leader with multiple PULL replicas
>  # Index few documents and let it replicate in all the replicas
>  # Delete all the TLOG/NRT replica leaving PULL types
>  # Create a new TLOG/NRT as leader, once recovery completes it replaces all 
> the older indexes
> In ideal scenario it should have replicated from any one of the PULL replicas 
> that has latest indexes after that TLOG/NRT replica should be registered as 
> leader



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

---------------------------------------------------------------------
To unsubscribe, e-mail: issues-unsubscr...@lucene.apache.org
For additional commands, e-mail: issues-h...@lucene.apache.org

Reply via email to