dsmiley commented on code in PR #2039: URL: https://github.com/apache/solr/pull/2039#discussion_r1410860010
########## solr/solrj/src/java/org/apache/solr/common/cloud/Replica.java: ########## @@ -103,31 +104,41 @@ public enum Type { * support NRT (soft commits) and RTG. Any {@link Type#NRT} replica can become a leader. A shard * leader will forward updates to all active {@link Type#NRT} and {@link Type#TLOG} replicas. */ - NRT(true), + NRT(true, CollectionAdminParams.NRT_REPLICAS), /** * Writes to transaction log, but not to index, uses replication. Any {@link Type#TLOG} replica * can become leader (by first applying all local transaction log elements). If a replica is of * type {@link Type#TLOG} but is also the leader, it will behave as a {@link Type#NRT}. A shard * leader will forward updates to all active {@link Type#NRT} and {@link Type#TLOG} replicas. */ - TLOG(true), + TLOG(true, CollectionAdminParams.TLOG_REPLICAS), /** * Doesn’t index or writes to transaction log. Just replicates from {@link Type#NRT} or {@link * Type#TLOG} replicas. {@link Type#PULL} replicas can’t become shard leaders (i.e., if there * are only pull replicas in the collection at some point, updates will fail same as if there is * no leaders, queries continue to work), so they don’t even participate in elections. */ - PULL(false); + PULL(false, CollectionAdminParams.PULL_REPLICAS); public final boolean leaderEligible; + public final String numReplicasPropertyName; - Type(boolean b) { - this.leaderEligible = b; + Type(boolean leaderEligible, String numReplicasPropertyName) { + this.leaderEligible = leaderEligible; + this.numReplicasPropertyName = numReplicasPropertyName; } public static Type get(String name) { return StrUtils.isNullOrEmpty(name) ? NRT : Type.valueOf(name.toUpperCase(Locale.ROOT)); } + + /** + * Returns a default replica type. It is most notably used by the replica factor, which maps + * onto this replica type. This replica type needs to be leader-eligible. + */ + public static Type defaultType() { Review Comment: I understand it's static and not dynamic. Nonetheless with this change, it seems then there is an attempt to make the default centralized to one spot. I mean to point out that NUM_NRT_REPLICAS (or something like that?) defaults to "1" when, really, we should have code that observes this default type. If this isn't so straight-froward, maybe this `defaultType` you are adding should be backed out. I'm not sure how much value you got from introducing it. -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. To unsubscribe, e-mail: issues-unsubscr...@solr.apache.org For queries about this service, please contact Infrastructure at: us...@infra.apache.org --------------------------------------------------------------------- To unsubscribe, e-mail: issues-unsubscr...@solr.apache.org For additional commands, e-mail: issues-h...@solr.apache.org