title: Correct Way to Scale Cassandra Cluster Using Authentication
body: <p>Upon starting and adding a new node to my Cassandra cluster that is configured to use authentication, I'm getting the following stack trace:</p>
  
  <pre><code>java.lang.RuntimeException: org.apache.cassandra.exceptions.AlreadyExistsException: Cannot add already existing column family "credentials" to keyspace "system_auth"
      at org.apache.cassandra.cql3.QueryProcessor.process(QueryProcessor.java:242)
      at org.apache.cassandra.auth.PasswordAuthenticator.process(PasswordAuthenticator.java:266)
      at org.apache.cassandra.auth.PasswordAuthenticator.setupCredentialsTable(PasswordAuthenticator.java:214)
      at org.apache.cassandra.auth.PasswordAuthenticator.setup(PasswordAuthenticator.java:171)
      at org.apache.cassandra.auth.Auth.setup(Auth.java:132)
      at org.apache.cassandra.service.StorageService.joinTokenRing(StorageService.java:830)
      at org.apache.cassandra.service.StorageService.initServer(StorageService.java:583)
      at org.apache.cassandra.service.StorageService.initServer(StorageService.java:482)
      at org.apache.cassandra.service.CassandraDaemon.setup(CassandraDaemon.java:345)
      at org.apache.cassandra.service.CassandraDaemon.activate(CassandraDaemon.java:462)
      at org.apache.cassandra.service.CassandraDaemon.main(CassandraDaemon.java:552)
  Caused by: org.apache.cassandra.exceptions.AlreadyExistsException: Cannot add already existing column family "credentials" to keyspace "system_auth"
          at org.apache.cassandra.service.MigrationManager.announceNewColumnFamily(MigrationManager.java:209)
          at org.apache.cassandra.cql3.statements.CreateTableStatement.announceMigration(CreateTableStatement.java:114)
          at org.apache.cassandra.cql3.statements.SchemaAlteringStatement.execute(SchemaAlteringStatement.java:71)
          at org.apache.cassandra.cql3.QueryProcessor.processStatement(QueryProcessor.java:188)
          at org.apache.cassandra.cql3.QueryProcessor.process(QueryProcessor.java:222)
          at org.apache.cassandra.cql3.QueryProcessor.process(QueryProcessor.java:234)
          ... 10 more
  </code></pre>
  
  <p>This makes sense, as one of the prior nodes will already have created it.</p>
  
  <p>What is the correct approach to bringing new nodes online, given that the <code>system_auth</code> column family already exists? Additionally, how does one cater for increasing the replication factor of the <code>system_auth</code> table as the size of the cluster increases?</p>