Author: jbellis Date: Mon Jul 18 17:13:28 2011 New Revision: 1147974 URL: http://svn.apache.org/viewvc?rev=1147974&view=rev Log: fix updating KS with durable_writes=false patch by pyaskevich; reviewed by jbellis for CASSANDRA-2907
Modified: cassandra/branches/cassandra-0.8/CHANGES.txt cassandra/branches/cassandra-0.8/src/java/org/apache/cassandra/config/KSMetaData.java cassandra/branches/cassandra-0.8/src/java/org/apache/cassandra/db/migration/UpdateKeyspace.java Modified: cassandra/branches/cassandra-0.8/CHANGES.txt URL: http://svn.apache.org/viewvc/cassandra/branches/cassandra-0.8/CHANGES.txt?rev=1147974&r1=1147973&r2=1147974&view=diff ============================================================================== --- cassandra/branches/cassandra-0.8/CHANGES.txt (original) +++ cassandra/branches/cassandra-0.8/CHANGES.txt Mon Jul 18 17:13:28 2011 @@ -29,6 +29,7 @@ * support spaces in path to log4j configuration (CASSANDRA-2383) * avoid including inferred types in CF update (CASSANDRA-2809) * fix JMX bulkload call (CASSANDRA-2908) + * fix updating KS with durable_writes=false (CASSANDRA-2907) 0.8.1 Modified: cassandra/branches/cassandra-0.8/src/java/org/apache/cassandra/config/KSMetaData.java URL: http://svn.apache.org/viewvc/cassandra/branches/cassandra-0.8/src/java/org/apache/cassandra/config/KSMetaData.java?rev=1147974&r1=1147973&r2=1147974&view=diff ============================================================================== --- cassandra/branches/cassandra-0.8/src/java/org/apache/cassandra/config/KSMetaData.java (original) +++ cassandra/branches/cassandra-0.8/src/java/org/apache/cassandra/config/KSMetaData.java Mon Jul 18 17:13:28 2011 @@ -133,12 +133,12 @@ public final class KSMetaData { StringBuilder sb = new StringBuilder(); sb.append(name) - .append("rep strategy:") + .append(", rep strategy:") .append(strategyClass.getSimpleName()) .append("{") .append(StringUtils.join(cfMetaData.values(), ", ")) .append("}") - .append("durable_writes: ").append(durable_writes); + .append(", durable_writes: ").append(durable_writes); return sb.toString(); } @@ -205,8 +205,8 @@ public final class KSMetaData ksdef.setStrategy_options(ksm.strategyOptions); if (ksm.strategyOptions != null && ksm.strategyOptions.containsKey("replication_factor")) ksdef.setReplication_factor(Integer.parseInt(ksm.strategyOptions.get("replication_factor"))); - ksdef.durable_writes = ksm.durable_writes; - + ksdef.setDurable_writes(ksm.durable_writes); + return ksdef; } } Modified: cassandra/branches/cassandra-0.8/src/java/org/apache/cassandra/db/migration/UpdateKeyspace.java URL: http://svn.apache.org/viewvc/cassandra/branches/cassandra-0.8/src/java/org/apache/cassandra/db/migration/UpdateKeyspace.java?rev=1147974&r1=1147973&r2=1147974&view=diff ============================================================================== --- cassandra/branches/cassandra-0.8/src/java/org/apache/cassandra/db/migration/UpdateKeyspace.java (original) +++ cassandra/branches/cassandra-0.8/src/java/org/apache/cassandra/db/migration/UpdateKeyspace.java Mon Jul 18 17:13:28 2011 @@ -51,7 +51,8 @@ public class UpdateKeyspace extends Migr oldKsm = DatabaseDescriptor.getKSMetaData(ksm.name); if (oldKsm == null) throw new ConfigurationException(ksm.name + " cannot be updated because it doesn't exist."); - this.newKsm = new KSMetaData(ksm.name, ksm.strategyClass, ksm.strategyOptions, oldKsm.cfMetaData().values().toArray(new CFMetaData[]{})); + + this.newKsm = new KSMetaData(ksm.name, ksm.strategyClass, ksm.strategyOptions, ksm.isDurableWrites(), oldKsm.cfMetaData().values().toArray(new CFMetaData[]{})); rm = makeDefinitionMutation(newKsm, oldKsm, newVersion); } @@ -60,7 +61,6 @@ public class UpdateKeyspace extends Migr DatabaseDescriptor.clearTableDefinition(oldKsm, newVersion); DatabaseDescriptor.setTableDefinition(newKsm, newVersion); - Table table = Table.open(newKsm.name); try {