Author: jbellis
Date: Wed Sep 8 15:14:53 2010
New Revision: 995086
URL: http://svn.apache.org/viewvc?rev=995086&view=rev
Log:
remove keyspace from describe_splits method. patch by Jeremy Hanna; reviewed
by jbellis for CASSANDRA-1425
Modified:
cassandra/trunk/CHANGES.txt
cassandra/trunk/interface/cassandra.genavro
cassandra/trunk/interface/cassandra.thrift
cassandra/trunk/interface/thrift/gen-java/org/apache/cassandra/thrift/Cassandra.java
cassandra/trunk/src/java/org/apache/cassandra/avro/CassandraServer.java
cassandra/trunk/src/java/org/apache/cassandra/hadoop/ColumnFamilyInputFormat.java
cassandra/trunk/src/java/org/apache/cassandra/thrift/CassandraServer.java
Modified: cassandra/trunk/CHANGES.txt
URL:
http://svn.apache.org/viewvc/cassandra/trunk/CHANGES.txt?rev=995086&r1=995085&r2=995086&view=diff
==============================================================================
--- cassandra/trunk/CHANGES.txt (original)
+++ cassandra/trunk/CHANGES.txt Wed Sep 8 15:14:53 2010
@@ -61,6 +61,7 @@ dev
* make failure to remove comitlog segment non-fatal (CASSANDRA-1348)
* correct ordering of drain operations so CL.recover is no longer
necessary (CASSANDRA-1408)
+ * removed keyspace from describe_splits method (CASSANDRA-1425)
0.7-beta1
Modified: cassandra/trunk/interface/cassandra.genavro
URL:
http://svn.apache.org/viewvc/cassandra/trunk/interface/cassandra.genavro?rev=995086&r1=995085&r2=995086&view=diff
==============================================================================
--- cassandra/trunk/interface/cassandra.genavro (original)
+++ cassandra/trunk/interface/cassandra.genavro Wed Sep 8 15:14:53 2010
@@ -361,8 +361,7 @@ protocol Cassandra {
* returns list of token strings such that first subrange is (list[0],
list[1]],
* next is (list[1], list[2]], etc.
*/
- array<string> describe_splits(string keyspace,
- string cfName,
+ array<string> describe_splits(string cfName,
string start_token,
string end_token,
int keys_per_split);
Modified: cassandra/trunk/interface/cassandra.thrift
URL:
http://svn.apache.org/viewvc/cassandra/trunk/interface/cassandra.thrift?rev=995086&r1=995085&r2=995086&view=diff
==============================================================================
--- cassandra/trunk/interface/cassandra.thrift (original)
+++ cassandra/trunk/interface/cassandra.thrift Wed Sep 8 15:14:53 2010
@@ -46,7 +46,7 @@ namespace rb CassandraThrift
# for every edit that doesn't result in a change to major/minor.
#
# See the Semantic Versioning Specification (SemVer) http://semver.org.
-const string VERSION = "13.0.0"
+const string VERSION = "14.0.0"
#
@@ -523,11 +523,10 @@ service Cassandra {
returns list of token strings such that first subrange is (list[0],
list[1]],
next is (list[1], list[2]], etc. */
- list<string> describe_splits(1:required string keyspace,
- 2:required string cfName,
- 3:required string start_token,
- 4:required string end_token,
- 5:required i32 keys_per_split),
+ list<string> describe_splits(1:required string cfName,
+ 2:required string start_token,
+ 3:required string end_token,
+ 4:required i32 keys_per_split),
/** adds a column family. returns the new schema id. */
string system_add_column_family(1:required CfDef cf_def)
Modified:
cassandra/trunk/interface/thrift/gen-java/org/apache/cassandra/thrift/Cassandra.java
URL:
http://svn.apache.org/viewvc/cassandra/trunk/interface/thrift/gen-java/org/apache/cassandra/thrift/Cassandra.java?rev=995086&r1=995085&r2=995086&view=diff
==============================================================================
---
cassandra/trunk/interface/thrift/gen-java/org/apache/cassandra/thrift/Cassandra.java
(original)
+++
cassandra/trunk/interface/thrift/gen-java/org/apache/cassandra/thrift/Cassandra.java
Wed Sep 8 15:14:53 2010
@@ -226,13 +226,12 @@ public class Cassandra {
* returns list of token strings such that first subrange is (list[0],
list[1]],
* next is (list[1], list[2]], etc.
*
- * @param keyspace
* @param cfName
* @param start_token
* @param end_token
* @param keys_per_split
*/
- public List<String> describe_splits(String keyspace, String cfName, String
start_token, String end_token, int keys_per_split) throws TException;
+ public List<String> describe_splits(String cfName, String start_token,
String end_token, int keys_per_split) throws TException;
/**
* adds a column family. returns the new schema id.
@@ -336,7 +335,7 @@ public class Cassandra {
public void describe_keyspace(String keyspace,
AsyncMethodCallback<AsyncClient.describe_keyspace_call> resultHandler) throws
TException;
- public void describe_splits(String keyspace, String cfName, String
start_token, String end_token, int keys_per_split,
AsyncMethodCallback<AsyncClient.describe_splits_call> resultHandler) throws
TException;
+ public void describe_splits(String cfName, String start_token, String
end_token, int keys_per_split,
AsyncMethodCallback<AsyncClient.describe_splits_call> resultHandler) throws
TException;
public void system_add_column_family(CfDef cf_def,
AsyncMethodCallback<AsyncClient.system_add_column_family_call> resultHandler)
throws TException;
@@ -1234,17 +1233,16 @@ public class Cassandra {
throw new TApplicationException(TApplicationException.MISSING_RESULT,
"describe_keyspace failed: unknown result");
}
- public List<String> describe_splits(String keyspace, String cfName, String
start_token, String end_token, int keys_per_split) throws TException
+ public List<String> describe_splits(String cfName, String start_token,
String end_token, int keys_per_split) throws TException
{
- send_describe_splits(keyspace, cfName, start_token, end_token,
keys_per_split);
+ send_describe_splits(cfName, start_token, end_token, keys_per_split);
return recv_describe_splits();
}
- public void send_describe_splits(String keyspace, String cfName, String
start_token, String end_token, int keys_per_split) throws TException
+ public void send_describe_splits(String cfName, String start_token, String
end_token, int keys_per_split) throws TException
{
oprot_.writeMessageBegin(new TMessage("describe_splits",
TMessageType.CALL, ++seqid_));
describe_splits_args args = new describe_splits_args();
- args.setKeyspace(keyspace);
args.setCfName(cfName);
args.setStart_token(start_token);
args.setEnd_token(end_token);
@@ -2292,21 +2290,19 @@ public class Cassandra {
}
}
- public void describe_splits(String keyspace, String cfName, String
start_token, String end_token, int keys_per_split,
AsyncMethodCallback<describe_splits_call> resultHandler) throws TException {
+ public void describe_splits(String cfName, String start_token, String
end_token, int keys_per_split, AsyncMethodCallback<describe_splits_call>
resultHandler) throws TException {
checkReady();
- describe_splits_call method_call = new describe_splits_call(keyspace,
cfName, start_token, end_token, keys_per_split, resultHandler, this,
protocolFactory, transport);
+ describe_splits_call method_call = new describe_splits_call(cfName,
start_token, end_token, keys_per_split, resultHandler, this, protocolFactory,
transport);
manager.call(method_call);
}
public static class describe_splits_call extends TAsyncMethodCall {
- private String keyspace;
private String cfName;
private String start_token;
private String end_token;
private int keys_per_split;
- public describe_splits_call(String keyspace, String cfName, String
start_token, String end_token, int keys_per_split,
AsyncMethodCallback<describe_splits_call> resultHandler, TAsyncClient client,
TProtocolFactory protocolFactory, TNonblockingTransport transport) throws
TException {
+ public describe_splits_call(String cfName, String start_token, String
end_token, int keys_per_split, AsyncMethodCallback<describe_splits_call>
resultHandler, TAsyncClient client, TProtocolFactory protocolFactory,
TNonblockingTransport transport) throws TException {
super(client, protocolFactory, transport, resultHandler, false);
- this.keyspace = keyspace;
this.cfName = cfName;
this.start_token = start_token;
this.end_token = end_token;
@@ -2316,7 +2312,6 @@ public class Cassandra {
public void write_args(TProtocol prot) throws TException {
prot.writeMessageBegin(new TMessage("describe_splits",
TMessageType.CALL, 0));
describe_splits_args args = new describe_splits_args();
- args.setKeyspace(keyspace);
args.setCfName(cfName);
args.setStart_token(start_token);
args.setEnd_token(end_token);
@@ -3428,7 +3423,7 @@ public class Cassandra {
}
iprot.readMessageEnd();
describe_splits_result result = new describe_splits_result();
- result.success = iface_.describe_splits(args.keyspace, args.cfName,
args.start_token, args.end_token, args.keys_per_split);
+ result.success = iface_.describe_splits(args.cfName, args.start_token,
args.end_token, args.keys_per_split);
oprot.writeMessageBegin(new TMessage("describe_splits",
TMessageType.REPLY, seqid));
result.write(oprot);
oprot.writeMessageEnd();
@@ -20750,13 +20745,11 @@ public class Cassandra {
public static class describe_splits_args implements
TBase<describe_splits_args, describe_splits_args._Fields>,
java.io.Serializable, Cloneable {
private static final TStruct STRUCT_DESC = new
TStruct("describe_splits_args");
- private static final TField KEYSPACE_FIELD_DESC = new TField("keyspace",
TType.STRING, (short)1);
- private static final TField CF_NAME_FIELD_DESC = new TField("cfName",
TType.STRING, (short)2);
- private static final TField START_TOKEN_FIELD_DESC = new
TField("start_token", TType.STRING, (short)3);
- private static final TField END_TOKEN_FIELD_DESC = new TField("end_token",
TType.STRING, (short)4);
- private static final TField KEYS_PER_SPLIT_FIELD_DESC = new
TField("keys_per_split", TType.I32, (short)5);
+ private static final TField CF_NAME_FIELD_DESC = new TField("cfName",
TType.STRING, (short)1);
+ private static final TField START_TOKEN_FIELD_DESC = new
TField("start_token", TType.STRING, (short)2);
+ private static final TField END_TOKEN_FIELD_DESC = new TField("end_token",
TType.STRING, (short)3);
+ private static final TField KEYS_PER_SPLIT_FIELD_DESC = new
TField("keys_per_split", TType.I32, (short)4);
- public String keyspace;
public String cfName;
public String start_token;
public String end_token;
@@ -20764,11 +20757,10 @@ public class Cassandra {
/** The set of fields this struct contains, along with convenience methods
for finding and manipulating them. */
public enum _Fields implements TFieldIdEnum {
- KEYSPACE((short)1, "keyspace"),
- CF_NAME((short)2, "cfName"),
- START_TOKEN((short)3, "start_token"),
- END_TOKEN((short)4, "end_token"),
- KEYS_PER_SPLIT((short)5, "keys_per_split");
+ CF_NAME((short)1, "cfName"),
+ START_TOKEN((short)2, "start_token"),
+ END_TOKEN((short)3, "end_token"),
+ KEYS_PER_SPLIT((short)4, "keys_per_split");
private static final Map<String, _Fields> byName = new HashMap<String,
_Fields>();
@@ -20783,15 +20775,13 @@ public class Cassandra {
*/
public static _Fields findByThriftId(int fieldId) {
switch(fieldId) {
- case 1: // KEYSPACE
- return KEYSPACE;
- case 2: // CF_NAME
+ case 1: // CF_NAME
return CF_NAME;
- case 3: // START_TOKEN
+ case 2: // START_TOKEN
return START_TOKEN;
- case 4: // END_TOKEN
+ case 3: // END_TOKEN
return END_TOKEN;
- case 5: // KEYS_PER_SPLIT
+ case 4: // KEYS_PER_SPLIT
return KEYS_PER_SPLIT;
default:
return null;
@@ -20839,8 +20829,6 @@ public class Cassandra {
public static final Map<_Fields, FieldMetaData> metaDataMap;
static {
Map<_Fields, FieldMetaData> tmpMap = new EnumMap<_Fields,
FieldMetaData>(_Fields.class);
- tmpMap.put(_Fields.KEYSPACE, new FieldMetaData("keyspace",
TFieldRequirementType.REQUIRED,
- new FieldValueMetaData(TType.STRING)));
tmpMap.put(_Fields.CF_NAME, new FieldMetaData("cfName",
TFieldRequirementType.REQUIRED,
new FieldValueMetaData(TType.STRING)));
tmpMap.put(_Fields.START_TOKEN, new FieldMetaData("start_token",
TFieldRequirementType.REQUIRED,
@@ -20857,14 +20845,12 @@ public class Cassandra {
}
public describe_splits_args(
- String keyspace,
String cfName,
String start_token,
String end_token,
int keys_per_split)
{
this();
- this.keyspace = keyspace;
this.cfName = cfName;
this.start_token = start_token;
this.end_token = end_token;
@@ -20878,9 +20864,6 @@ public class Cassandra {
public describe_splits_args(describe_splits_args other) {
__isset_bit_vector.clear();
__isset_bit_vector.or(other.__isset_bit_vector);
- if (other.isSetKeyspace()) {
- this.keyspace = other.keyspace;
- }
if (other.isSetCfName()) {
this.cfName = other.cfName;
}
@@ -20902,30 +20885,6 @@ public class Cassandra {
return new describe_splits_args(this);
}
- public String getKeyspace() {
- return this.keyspace;
- }
-
- public describe_splits_args setKeyspace(String keyspace) {
- this.keyspace = keyspace;
- return this;
- }
-
- public void unsetKeyspace() {
- this.keyspace = null;
- }
-
- /** Returns true if field keyspace is set (has been asigned a value) and
false otherwise */
- public boolean isSetKeyspace() {
- return this.keyspace != null;
- }
-
- public void setKeyspaceIsSet(boolean value) {
- if (!value) {
- this.keyspace = null;
- }
- }
-
public String getCfName() {
return this.cfName;
}
@@ -21023,14 +20982,6 @@ public class Cassandra {
public void setFieldValue(_Fields field, Object value) {
switch (field) {
- case KEYSPACE:
- if (value == null) {
- unsetKeyspace();
- } else {
- setKeyspace((String)value);
- }
- break;
-
case CF_NAME:
if (value == null) {
unsetCfName();
@@ -21072,9 +21023,6 @@ public class Cassandra {
public Object getFieldValue(_Fields field) {
switch (field) {
- case KEYSPACE:
- return getKeyspace();
-
case CF_NAME:
return getCfName();
@@ -21098,8 +21046,6 @@ public class Cassandra {
/** Returns true if field corresponding to fieldID is set (has been
asigned a value) and false otherwise */
public boolean isSet(_Fields field) {
switch (field) {
- case KEYSPACE:
- return isSetKeyspace();
case CF_NAME:
return isSetCfName();
case START_TOKEN:
@@ -21129,15 +21075,6 @@ public class Cassandra {
if (that == null)
return false;
- boolean this_present_keyspace = true && this.isSetKeyspace();
- boolean that_present_keyspace = true && that.isSetKeyspace();
- if (this_present_keyspace || that_present_keyspace) {
- if (!(this_present_keyspace && that_present_keyspace))
- return false;
- if (!this.keyspace.equals(that.keyspace))
- return false;
- }
-
boolean this_present_cfName = true && this.isSetCfName();
boolean that_present_cfName = true && that.isSetCfName();
if (this_present_cfName || that_present_cfName) {
@@ -21190,15 +21127,6 @@ public class Cassandra {
int lastComparison = 0;
describe_splits_args typedOther = (describe_splits_args)other;
- lastComparison =
Boolean.valueOf(isSetKeyspace()).compareTo(typedOther.isSetKeyspace());
- if (lastComparison != 0) {
- return lastComparison;
- }
- if (isSetKeyspace()) { lastComparison =
TBaseHelper.compareTo(this.keyspace, typedOther.keyspace);
- if (lastComparison != 0) {
- return lastComparison;
- }
- }
lastComparison =
Boolean.valueOf(isSetCfName()).compareTo(typedOther.isSetCfName());
if (lastComparison != 0) {
return lastComparison;
@@ -21248,35 +21176,28 @@ public class Cassandra {
break;
}
switch (field.id) {
- case 1: // KEYSPACE
- if (field.type == TType.STRING) {
- this.keyspace = iprot.readString();
- } else {
- TProtocolUtil.skip(iprot, field.type);
- }
- break;
- case 2: // CF_NAME
+ case 1: // CF_NAME
if (field.type == TType.STRING) {
this.cfName = iprot.readString();
} else {
TProtocolUtil.skip(iprot, field.type);
}
break;
- case 3: // START_TOKEN
+ case 2: // START_TOKEN
if (field.type == TType.STRING) {
this.start_token = iprot.readString();
} else {
TProtocolUtil.skip(iprot, field.type);
}
break;
- case 4: // END_TOKEN
+ case 3: // END_TOKEN
if (field.type == TType.STRING) {
this.end_token = iprot.readString();
} else {
TProtocolUtil.skip(iprot, field.type);
}
break;
- case 5: // KEYS_PER_SPLIT
+ case 4: // KEYS_PER_SPLIT
if (field.type == TType.I32) {
this.keys_per_split = iprot.readI32();
setKeys_per_splitIsSet(true);
@@ -21302,11 +21223,6 @@ public class Cassandra {
validate();
oprot.writeStructBegin(STRUCT_DESC);
- if (this.keyspace != null) {
- oprot.writeFieldBegin(KEYSPACE_FIELD_DESC);
- oprot.writeString(this.keyspace);
- oprot.writeFieldEnd();
- }
if (this.cfName != null) {
oprot.writeFieldBegin(CF_NAME_FIELD_DESC);
oprot.writeString(this.cfName);
@@ -21334,14 +21250,6 @@ public class Cassandra {
StringBuilder sb = new StringBuilder("describe_splits_args(");
boolean first = true;
- sb.append("keyspace:");
- if (this.keyspace == null) {
- sb.append("null");
- } else {
- sb.append(this.keyspace);
- }
- first = false;
- if (!first) sb.append(", ");
sb.append("cfName:");
if (this.cfName == null) {
sb.append("null");
@@ -21375,9 +21283,6 @@ public class Cassandra {
public void validate() throws TException {
// check for required fields
- if (keyspace == null) {
- throw new TProtocolException("Required field 'keyspace' was not
present! Struct: " + toString());
- }
if (cfName == null) {
throw new TProtocolException("Required field 'cfName' was not present!
Struct: " + toString());
}
Modified:
cassandra/trunk/src/java/org/apache/cassandra/avro/CassandraServer.java
URL:
http://svn.apache.org/viewvc/cassandra/trunk/src/java/org/apache/cassandra/avro/CassandraServer.java?rev=995086&r1=995085&r2=995086&view=diff
==============================================================================
--- cassandra/trunk/src/java/org/apache/cassandra/avro/CassandraServer.java
(original)
+++ cassandra/trunk/src/java/org/apache/cassandra/avro/CassandraServer.java Wed
Sep 8 15:14:53 2010
@@ -981,9 +981,9 @@ public class CassandraServer implements
return StorageService.getPartitioner().getClass().getName();
}
- public List<CharSequence> describe_splits(CharSequence keyspace,
CharSequence cfName, CharSequence start_token, CharSequence end_token, int
keys_per_split) {
+ public List<CharSequence> describe_splits(CharSequence cfName,
CharSequence start_token, CharSequence end_token, int keys_per_split) {
Token.TokenFactory<?> tf =
StorageService.getPartitioner().getTokenFactory();
- List<Token> tokens =
StorageService.instance.getSplits(keyspace.toString(), cfName.toString(), new
Range(tf.fromString(start_token.toString()),
tf.fromString(end_token.toString())), keys_per_split);
+ List<Token> tokens =
StorageService.instance.getSplits(clientState.getKeyspace(), cfName.toString(),
new Range(tf.fromString(start_token.toString()),
tf.fromString(end_token.toString())), keys_per_split);
List<CharSequence> splits = new ArrayList<CharSequence>(tokens.size());
for (Token token : tokens)
{
Modified:
cassandra/trunk/src/java/org/apache/cassandra/hadoop/ColumnFamilyInputFormat.java
URL:
http://svn.apache.org/viewvc/cassandra/trunk/src/java/org/apache/cassandra/hadoop/ColumnFamilyInputFormat.java?rev=995086&r1=995085&r2=995086&view=diff
==============================================================================
---
cassandra/trunk/src/java/org/apache/cassandra/hadoop/ColumnFamilyInputFormat.java
(original)
+++
cassandra/trunk/src/java/org/apache/cassandra/hadoop/ColumnFamilyInputFormat.java
Wed Sep 8 15:14:53 2010
@@ -173,17 +173,22 @@ public class ColumnFamilyInputFormat ext
private List<String> getSubSplits(String keyspace, String cfName,
TokenRange range, Configuration conf) throws IOException
{
// TODO handle failure of range replicas & retry
- Cassandra.Client client = createConnection(range.endpoints.get(0),
ConfigHelper.getRpcPort(conf), true);
- int splitsize = ConfigHelper.getInputSplitSize(conf);
List<String> splits;
+ int splitsize = ConfigHelper.getInputSplitSize(conf);
try
{
- splits = client.describe_splits(keyspace, cfName,
range.start_token, range.end_token, splitsize);
+ Cassandra.Client client = createConnection(range.endpoints.get(0),
ConfigHelper.getRpcPort(conf), true);
+ client.set_keyspace(keyspace);
+ splits = client.describe_splits(cfName, range.start_token,
range.end_token, splitsize);
}
catch (TException e)
{
throw new RuntimeException(e);
}
+ catch (InvalidRequestException e)
+ {
+ throw new RuntimeException(e);
+ }
return splits;
}
Modified:
cassandra/trunk/src/java/org/apache/cassandra/thrift/CassandraServer.java
URL:
http://svn.apache.org/viewvc/cassandra/trunk/src/java/org/apache/cassandra/thrift/CassandraServer.java?rev=995086&r1=995085&r2=995086&view=diff
==============================================================================
--- cassandra/trunk/src/java/org/apache/cassandra/thrift/CassandraServer.java
(original)
+++ cassandra/trunk/src/java/org/apache/cassandra/thrift/CassandraServer.java
Wed Sep 8 15:14:53 2010
@@ -600,10 +600,10 @@ public class CassandraServer implements
return StorageService.getPartitioner().getClass().getName();
}
- public List<String> describe_splits(String keyspace, String cfName, String
start_token, String end_token, int keys_per_split) throws TException
+ public List<String> describe_splits(String cfName, String start_token,
String end_token, int keys_per_split) throws TException
{
Token.TokenFactory tf =
StorageService.getPartitioner().getTokenFactory();
- List<Token> tokens = StorageService.instance.getSplits(keyspace,
cfName, new Range(tf.fromString(start_token), tf.fromString(end_token)),
keys_per_split);
+ List<Token> tokens =
StorageService.instance.getSplits(clientState.getKeyspace(), cfName, new
Range(tf.fromString(start_token), tf.fromString(end_token)), keys_per_split);
List<String> splits = new ArrayList<String>(tokens.size());
for (Token token : tokens)
{