You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cassandra.apache.org by jb...@apache.org on 2011/01/14 00:38:55 UTC
svn commit: r1058797 - in /cassandra/trunk: CHANGES.txt conf/cassandra.yaml
src/java/org/apache/cassandra/cli/CliClient.java
src/java/org/apache/cassandra/config/KSMetaData.java
Author: jbellis
Date: Thu Jan 13 23:38:55 2011
New Revision: 1058797
URL: http://svn.apache.org/viewvc?rev=1058797&view=rev
Log:
make NetworkTopologyStrategy the default
patch by Pavel Yaskevich; reviewed by brandonwilliams for CASSANDRA-1960
Modified:
cassandra/trunk/CHANGES.txt
cassandra/trunk/conf/cassandra.yaml
cassandra/trunk/src/java/org/apache/cassandra/cli/CliClient.java
cassandra/trunk/src/java/org/apache/cassandra/config/KSMetaData.java
Modified: cassandra/trunk/CHANGES.txt
URL: http://svn.apache.org/viewvc/cassandra/trunk/CHANGES.txt?rev=1058797&r1=1058796&r2=1058797&view=diff
==============================================================================
--- cassandra/trunk/CHANGES.txt (original)
+++ cassandra/trunk/CHANGES.txt Thu Jan 13 23:38:55 2011
@@ -1,6 +1,7 @@
0.8-dev
* avoid double RowMutation serialization on write path (CASSANDRA-1800)
* adds support for columns that act as incr/decr counters (CASSANDRA-1072)
+ * make NetworkTopologyStrategy the default (CASSANDRA-1960)
0.7.1-dev
Modified: cassandra/trunk/conf/cassandra.yaml
URL: http://svn.apache.org/viewvc/cassandra/trunk/conf/cassandra.yaml?rev=1058797&r1=1058796&r2=1058797&view=diff
==============================================================================
--- cassandra/trunk/conf/cassandra.yaml (original)
+++ cassandra/trunk/conf/cassandra.yaml Thu Jan 13 23:38:55 2011
@@ -314,8 +314,7 @@ index_interval: 128
# With NetworkTopologyStrategy,
# for each datacenter, you can specify how many replicas you want
# on a per-keyspace basis. Replicas are placed on different racks
-# within each DC, if possible. This strategy also requires rack aware
-# snitch, such as RackInferringSnitch or PropertyFileSnitch.
+# within each DC, if possible.
# An example:
# - name: Keyspace1
# replica_placement_strategy: org.apache.cassandra.locator.NetworkTopologyStrategy
Modified: cassandra/trunk/src/java/org/apache/cassandra/cli/CliClient.java
URL: http://svn.apache.org/viewvc/cassandra/trunk/src/java/org/apache/cassandra/cli/CliClient.java?rev=1058797&r1=1058796&r2=1058797&view=diff
==============================================================================
--- cassandra/trunk/src/java/org/apache/cassandra/cli/CliClient.java (original)
+++ cassandra/trunk/src/java/org/apache/cassandra/cli/CliClient.java Thu Jan 13 23:38:55 2011
@@ -18,6 +18,8 @@
package org.apache.cassandra.cli;
import java.io.IOException;
+import java.net.InetAddress;
+import java.net.UnknownHostException;
import java.nio.ByteBuffer;
import java.util.*;
@@ -29,6 +31,7 @@ import org.apache.cassandra.config.Confi
import org.apache.cassandra.db.ColumnFamilyStoreMBean;
import org.apache.cassandra.db.CompactionManagerMBean;
import org.apache.cassandra.db.marshal.*;
+import org.apache.cassandra.locator.SimpleSnitch;
import org.apache.cassandra.thrift.*;
import org.apache.cassandra.tools.NodeProbe;
import org.apache.cassandra.utils.ByteBufferUtil;
@@ -92,7 +95,8 @@ public class CliClient extends CliUserHe
PLACEMENT_STRATEGY,
STRATEGY_OPTIONS
}
- private static final String DEFAULT_PLACEMENT_STRATEGY = "org.apache.cassandra.locator.SimpleStrategy";
+
+ private static final String DEFAULT_PLACEMENT_STRATEGY = "org.apache.cassandra.locator.NetworkTopologyStrategy";
private Cassandra.Client thriftClient = null;
private CliSessionState sessionState = null;
@@ -803,6 +807,30 @@ public class CliClient extends CliUserHe
}
}
+ // using default snitch options if strategy is NetworkTopologyStrategy and no options were set.
+ if (ksDef.getStrategy_class().contains(".NetworkTopologyStrategy"))
+ {
+ Map<String, String> currentStrategyOptions = ksDef.getStrategy_options();
+
+ // adding default data center from SimpleSnitch
+ if (currentStrategyOptions == null || currentStrategyOptions.isEmpty())
+ {
+ SimpleSnitch snitch = new SimpleSnitch();
+ Map<String, String> options = new HashMap<String, String>();
+
+ try
+ {
+ options.put(snitch.getDatacenter(InetAddress.getLocalHost()), "1");
+ }
+ catch (UnknownHostException e)
+ {
+ throw new RuntimeException(e.getMessage());
+ }
+
+ ksDef.setStrategy_options(options);
+ }
+ }
+
return ksDef;
}
Modified: cassandra/trunk/src/java/org/apache/cassandra/config/KSMetaData.java
URL: http://svn.apache.org/viewvc/cassandra/trunk/src/java/org/apache/cassandra/config/KSMetaData.java?rev=1058797&r1=1058796&r2=1058797&view=diff
==============================================================================
--- cassandra/trunk/src/java/org/apache/cassandra/config/KSMetaData.java (original)
+++ cassandra/trunk/src/java/org/apache/cassandra/config/KSMetaData.java Thu Jan 13 23:38:55 2011
@@ -28,7 +28,7 @@ import org.apache.commons.lang.ObjectUti
import org.apache.avro.util.Utf8;
import org.apache.cassandra.io.SerDeUtils;
import org.apache.cassandra.locator.AbstractReplicationStrategy;
-import org.apache.cassandra.locator.SimpleStrategy;
+import org.apache.cassandra.locator.NetworkTopologyStrategy;
public final class KSMetaData
{
@@ -41,7 +41,7 @@ public final class KSMetaData
public KSMetaData(String name, Class<? extends AbstractReplicationStrategy> strategyClass, Map<String, String> strategyOptions, int replicationFactor, CFMetaData... cfDefs)
{
this.name = name;
- this.strategyClass = strategyClass == null ? SimpleStrategy.class : strategyClass;
+ this.strategyClass = strategyClass == null ? NetworkTopologyStrategy.class : strategyClass;
this.strategyOptions = strategyOptions;
this.replicationFactor = replicationFactor;
Map<String, CFMetaData> cfmap = new HashMap<String, CFMetaData>();