cassandra-pr mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From aweisberg <...@git.apache.org>
Subject [GitHub] cassandra pull request #224: 14405 replicas
Date Wed, 16 May 2018 21:55:43 GMT
Github user aweisberg commented on a diff in the pull request:

    https://github.com/apache/cassandra/pull/224#discussion_r188784654
  
    --- Diff: src/java/org/apache/cassandra/cql3/statements/AlterKeyspaceStatement.java ---
    @@ -96,7 +98,35 @@ private void warnIfIncreasingRF(KeyspaceMetadata ksm, KeyspaceParams
params)
                                                                                         
                   StorageService.instance.getTokenMetadata(),
                                                                                         
                   DatabaseDescriptor.getEndpointSnitch(),
                                                                                         
                   params.replication.options);
    -        if (newStrategy.getReplicationFactor() > oldStrategy.getReplicationFactor())
    +
    +        validateTransientReplication(oldStrategy, newStrategy);
    +        warnIfIncreasingRF(oldStrategy, newStrategy);
    +    }
    +
    +    private void validateTransientReplication(AbstractReplicationStrategy oldStrategy,
AbstractReplicationStrategy newStrategy)
    +    {
    +        if (oldStrategy.getReplicationFactor().trans == 0 && newStrategy.getReplicationFactor().trans
> 0)
    +        {
    +            Keyspace ks = Keyspace.open(keyspace());
    +            for (ColumnFamilyStore cfs: ks.getColumnFamilyStores())
    +            {
    +                if (cfs.viewManager.hasViews())
    +                {
    +                    throw new ConfigurationException("Cannot use transient replication
on keyspaces using materialized views");
    +                }
    +
    +                if (cfs.indexManager.hasIndexes())
    +                {
    +                    throw new ConfigurationException("Cannot use transient replication
on keyspaces using secondary indexes");
    +                }
    +            }
    +
    +        }
    +    }
    +
    +    private void warnIfIncreasingRF(AbstractReplicationStrategy oldStrategy, AbstractReplicationStrategy
newStrategy)
    +    {
    +        if (newStrategy.getReplicationFactor().full > oldStrategy.getReplicationFactor().full)
    --- End diff --
    
    Huh, so because your quorum size increases you don't need to run even an incremental repair?
Is that always true. Have to think about it some more.
    
    But... while it might be safe to do one increase, if you increased transient replication
twice in sequence and it didn't change th quorum size could you get into trouble?


---

---------------------------------------------------------------------
To unsubscribe, e-mail: pr-unsubscribe@cassandra.apache.org
For additional commands, e-mail: pr-help@cassandra.apache.org


Mime
View raw message