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
{