Proposal: "A Solr COLLECTION is composed of one or more SHARDS, which each have one or more REPLICAS. Each replica can have a ROLE of either: 1) A LEADER, which can process external updates for the shard 2) A FOLLOWER, which receives updates from another replica"
(Note: I prefer "role" but if others think it's too overloaded due to the overseer role, we could replace it with "mode" or something similar) ------------------------------------------- To be explicit with the above definitions: 1) In SolrCloud, the roles of leaders and followers can dynamically change based upon the status of the cluster. In standalone mode, they can be changed by manual intervention. 2) A leader does not have to have any followers (i.e. only one active replica) 3) Each shard always has one leader. 4) A follower can also pull updates from another follower instead of a leader (traditionally known as a REPEATER). A repeater is still a follower, but would not be considered a leader because it can't process external updates. 5) A replica cannot be both a leader and a follower. In addition to the above roles, each replica can have a TYPE of one of: 1) NRT - which can serve in the role of leader or follower 2) TLOG - which can only serve in the role of follower 3) PULL - which can only serve in the role of follower A replica's type may be changed automatically in the event that its role changes. I think this terminology is consistent with the current Leader/Follower usage while also being able to easily accomodate a rename of the historical master/slave terminology without mental gymnastics or the introduction or more cognitive load through new terminology. I think adopting the Primary/Replica terminology will be incredibly confusing given the already specific and well established meaning of "replica" within Solr. All the Best, Trey Grainger Founder, Searchkernel https://searchkernel.com On Wed, Jun 17, 2020 at 3:38 PM Anshum Gupta <ans...@anshumgupta.net> wrote: > Hi everyone, > > Moving a conversation that was happening on the PMC list to the public > forum. Most of the following is just me recapping the conversation that has > happened so far. > > Some members of the community have been discussing getting rid of the > master/slave nomenclature from Solr. > > While this may require a non-trivial effort, a general consensus so far > seems to be to start this process and switch over incrementally, if a > single change ends up being too big. > > There have been a lot of suggestions around what the new nomenclature might > look like, a few people don’t want to overlap the naming here with what > already exists in SolrCloud i.e. leader/follower. > > Primary/Replica was an option that was suggested based on what other > vendors are moving towards based on Wikipedia: > https://en.wikipedia.org/wiki/Master/slave_(technology) > , however there were concerns around the use of “replica” as that denotes a > very specific concept in SolrCloud. Current terminology clearly > differentiates the use of the traditional replication model from SolrCloud > and reusing the names would make it difficult for that to happen. > > There were similar concerns around using Leader/follower. > > Let’s continue this conversation here while making sure that we converge > without much bike-shedding. > > -Anshum >