merge from 1.0

git-svn-id: https://svn.apache.org/repos/asf/cassandra/branches/cassandra-1.0@1170341 13f79535-47bb-0310-9956-ffa450edef68
This commit is contained in:
Jonathan Ellis 2011-09-13 20:56:44 +00:00
commit b8434fcb69
23 changed files with 499 additions and 326 deletions

View File

@ -28,7 +28,7 @@
* use lazy initialization instead of class initialization in NodeId
(CASSANDRA-2953)
* add paging to get_count (CASSANDRA-2894)
* fix "short reads" in [multi]get (CASSANDRA-2643, 3157)
* fix "short reads" in [multi]get (CASSANDRA-2643, 3157, 3192)
* add optional compression for sstables (CASSANDRA-47, 3001, 3128)
* add scheduler JMX metrics (CASSANDRA-2962)
* add block level checksum for compressed data (CASSANDRA-1717)
@ -48,7 +48,7 @@
Thrift<->Avro conversion methods (CASSANDRA-3032)
* Add timeouts to client request schedulers (CASSANDRA-3079, 3096)
* Cli to use hashes rather than array of hashes for strategy options (CASSANDRA-3081)
* LeveledCompactionStrategy (CASSANDRA-1608, 3085, 3110, 3087, 3145, 3154)
* LeveledCompactionStrategy (CASSANDRA-1608, 3085, 3110, 3087, 3145, 3154, 3182)
* Improvements of the CLI `describe` command (CASSANDRA-2630)
* reduce window where dropped CF sstables may not be deleted (CASSANDRA-2942)
* Expose gossip/FD info to JMX (CASSANDRA-2806)
@ -77,6 +77,7 @@
* Make SerializingCacheProvider the default if JNA is available (CASSANDRA-3183)
* Fix backwards compatibilty for CQL memtable properties (CASSANDRA-3190)
0.8.6
* avoid trying to watch cassandra-topology.properties when loaded from jar
(CASSANDRA-3138)
@ -86,8 +87,16 @@
(CASSANDRA-3129)
* CustomTThreadPoolServer to log TTransportException at DEBUG level
(CASSANDRA-3142)
* allow topology sort to work with non-unique rack names between
datacenters (CASSANDRA-3152)
* Improve caching of same-version Messages on digest and repair paths
(CASSANDRA-3158)
* Randomize choice of first replica for counter increment (CASSANDRA-2890)
* Fix using read_repair_chance instead of merge_shard_change (CASSANDRA-3202)
* Avoid streaming data to nodes that already have it, on move as well as
decommission (CASSANDRA-3041)
* Fix divide by zero error in GCInspector
* revert CASSANDRA-2388
0.8.5
@ -112,7 +121,7 @@
* prune index scan resultset back to original request for lazy
resultset expansion case (CASSANDRA-2964)
* (Hadoop) fail jobs when Cassandra node has failed but TaskTracker
has not (CASSANDRA-2388)
has not (CASSANDRA-2388)
* fix dynamic snitch ignoring nodes when read_repair_chance is zero
(CASSANDRA-2662)
* avoid retaining references to dropped CFS objects in

View File

@ -56,10 +56,10 @@ Other
- The old per-ColumnFamily memtable thresholds
(memtable_throughput_in_mb, memtable_operations_in_millions,
memtable_flush_after_mins) are ignored, in favor of the global
memtable_total_space_in_mb setting. This does not affect client
compatibility -- the old options are still allowed, but have no
effect. These options may be removed entirely in a future
release.
memtable_total_space_in_mb and commitlog_total_space_in_mb settings.
This does not affect client compatibility -- the old options are
still allowed, but have no effect. These options may be removed
entirely in a future release.
0.8.5

View File

@ -84,8 +84,8 @@ saved_caches_directory: /var/lib/cassandra/saved_caches
commitlog_sync: periodic
commitlog_sync_period_in_ms: 10000
# any class that implements the SeedProvider interface and has a constructor that takes a Map<String, String> of
# parameters will do.
# any class that implements the SeedProvider interface and has a
# constructor that takes a Map<String, String> of parameters will do.
seed_provider:
# Addresses of hosts that are deemed contact points.
# Cassandra nodes use this list of hosts to find each other and learn

View File

@ -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 = "19.15.0"
const string VERSION = "19.18.0"
#
@ -348,11 +348,20 @@ struct EndpointDetails {
3: string datacenter
}
/**
A TokenRange describes part of the Cassandra ring, it is a mapping from a range to
endpoints responsible for that range.
@param start_token The first token in the range
@param end_token The last token in the range
@param endpoints The endpoints responsible for the range (listed by their configured listen_address)
@param rpc_endpoints The endpoints responsible for the range (listed by their configured rpc_address)
*/
struct TokenRange {
1: required string start_token,
2: required string end_token,
3: required list<string> endpoints,
4: optional list<EndpointDetails> endpoint_details,
4: optional list<string> rpc_endpoints
5: optional list<EndpointDetails> endpoint_details,
}
/**

View File

@ -308,15 +308,15 @@ public class AuthenticationRequest implements org.apache.thrift.TBase<Authentica
case 1: // CREDENTIALS
if (field.type == org.apache.thrift.protocol.TType.MAP) {
{
org.apache.thrift.protocol.TMap _map28 = iprot.readMapBegin();
this.credentials = new HashMap<String,String>(2*_map28.size);
for (int _i29 = 0; _i29 < _map28.size; ++_i29)
org.apache.thrift.protocol.TMap _map32 = iprot.readMapBegin();
this.credentials = new HashMap<String,String>(2*_map32.size);
for (int _i33 = 0; _i33 < _map32.size; ++_i33)
{
String _key30;
String _val31;
_key30 = iprot.readString();
_val31 = iprot.readString();
this.credentials.put(_key30, _val31);
String _key34;
String _val35;
_key34 = iprot.readString();
_val35 = iprot.readString();
this.credentials.put(_key34, _val35);
}
iprot.readMapEnd();
}
@ -343,10 +343,10 @@ public class AuthenticationRequest implements org.apache.thrift.TBase<Authentica
oprot.writeFieldBegin(CREDENTIALS_FIELD_DESC);
{
oprot.writeMapBegin(new org.apache.thrift.protocol.TMap(org.apache.thrift.protocol.TType.STRING, org.apache.thrift.protocol.TType.STRING, this.credentials.size()));
for (Map.Entry<String, String> _iter32 : this.credentials.entrySet())
for (Map.Entry<String, String> _iter36 : this.credentials.entrySet())
{
oprot.writeString(_iter32.getKey());
oprot.writeString(_iter32.getValue());
oprot.writeString(_iter36.getKey());
oprot.writeString(_iter36.getValue());
}
oprot.writeMapEnd();
}

View File

@ -7736,14 +7736,14 @@ public class Cassandra {
case 0: // SUCCESS
if (field.type == org.apache.thrift.protocol.TType.LIST) {
{
org.apache.thrift.protocol.TList _list79 = iprot.readListBegin();
this.success = new ArrayList<ColumnOrSuperColumn>(_list79.size);
for (int _i80 = 0; _i80 < _list79.size; ++_i80)
org.apache.thrift.protocol.TList _list83 = iprot.readListBegin();
this.success = new ArrayList<ColumnOrSuperColumn>(_list83.size);
for (int _i84 = 0; _i84 < _list83.size; ++_i84)
{
ColumnOrSuperColumn _elem81;
_elem81 = new ColumnOrSuperColumn();
_elem81.read(iprot);
this.success.add(_elem81);
ColumnOrSuperColumn _elem85;
_elem85 = new ColumnOrSuperColumn();
_elem85.read(iprot);
this.success.add(_elem85);
}
iprot.readListEnd();
}
@ -7793,9 +7793,9 @@ public class Cassandra {
oprot.writeFieldBegin(SUCCESS_FIELD_DESC);
{
oprot.writeListBegin(new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRUCT, this.success.size()));
for (ColumnOrSuperColumn _iter82 : this.success)
for (ColumnOrSuperColumn _iter86 : this.success)
{
_iter82.write(oprot);
_iter86.write(oprot);
}
oprot.writeListEnd();
}
@ -9086,8 +9086,6 @@ public class Cassandra {
private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, ClassNotFoundException {
try {
// it doesn't seem like you should have to do this, but java serialization is wacky, and doesn't call the default constructor.
__isset_bit_vector = new BitSet(1);
read(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(in)));
} catch (org.apache.thrift.TException te) {
throw new java.io.IOException(te);
@ -9597,13 +9595,13 @@ public class Cassandra {
case 1: // KEYS
if (field.type == org.apache.thrift.protocol.TType.LIST) {
{
org.apache.thrift.protocol.TList _list83 = iprot.readListBegin();
this.keys = new ArrayList<ByteBuffer>(_list83.size);
for (int _i84 = 0; _i84 < _list83.size; ++_i84)
org.apache.thrift.protocol.TList _list87 = iprot.readListBegin();
this.keys = new ArrayList<ByteBuffer>(_list87.size);
for (int _i88 = 0; _i88 < _list87.size; ++_i88)
{
ByteBuffer _elem85;
_elem85 = iprot.readBinary();
this.keys.add(_elem85);
ByteBuffer _elem89;
_elem89 = iprot.readBinary();
this.keys.add(_elem89);
}
iprot.readListEnd();
}
@ -9653,9 +9651,9 @@ public class Cassandra {
oprot.writeFieldBegin(KEYS_FIELD_DESC);
{
oprot.writeListBegin(new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRING, this.keys.size()));
for (ByteBuffer _iter86 : this.keys)
for (ByteBuffer _iter90 : this.keys)
{
oprot.writeBinary(_iter86);
oprot.writeBinary(_iter90);
}
oprot.writeListEnd();
}
@ -10244,26 +10242,26 @@ public class Cassandra {
case 0: // SUCCESS
if (field.type == org.apache.thrift.protocol.TType.MAP) {
{
org.apache.thrift.protocol.TMap _map87 = iprot.readMapBegin();
this.success = new HashMap<ByteBuffer,List<ColumnOrSuperColumn>>(2*_map87.size);
for (int _i88 = 0; _i88 < _map87.size; ++_i88)
org.apache.thrift.protocol.TMap _map91 = iprot.readMapBegin();
this.success = new HashMap<ByteBuffer,List<ColumnOrSuperColumn>>(2*_map91.size);
for (int _i92 = 0; _i92 < _map91.size; ++_i92)
{
ByteBuffer _key89;
List<ColumnOrSuperColumn> _val90;
_key89 = iprot.readBinary();
ByteBuffer _key93;
List<ColumnOrSuperColumn> _val94;
_key93 = iprot.readBinary();
{
org.apache.thrift.protocol.TList _list91 = iprot.readListBegin();
_val90 = new ArrayList<ColumnOrSuperColumn>(_list91.size);
for (int _i92 = 0; _i92 < _list91.size; ++_i92)
org.apache.thrift.protocol.TList _list95 = iprot.readListBegin();
_val94 = new ArrayList<ColumnOrSuperColumn>(_list95.size);
for (int _i96 = 0; _i96 < _list95.size; ++_i96)
{
ColumnOrSuperColumn _elem93;
_elem93 = new ColumnOrSuperColumn();
_elem93.read(iprot);
_val90.add(_elem93);
ColumnOrSuperColumn _elem97;
_elem97 = new ColumnOrSuperColumn();
_elem97.read(iprot);
_val94.add(_elem97);
}
iprot.readListEnd();
}
this.success.put(_key89, _val90);
this.success.put(_key93, _val94);
}
iprot.readMapEnd();
}
@ -10313,14 +10311,14 @@ public class Cassandra {
oprot.writeFieldBegin(SUCCESS_FIELD_DESC);
{
oprot.writeMapBegin(new org.apache.thrift.protocol.TMap(org.apache.thrift.protocol.TType.STRING, org.apache.thrift.protocol.TType.LIST, this.success.size()));
for (Map.Entry<ByteBuffer, List<ColumnOrSuperColumn>> _iter94 : this.success.entrySet())
for (Map.Entry<ByteBuffer, List<ColumnOrSuperColumn>> _iter98 : this.success.entrySet())
{
oprot.writeBinary(_iter94.getKey());
oprot.writeBinary(_iter98.getKey());
{
oprot.writeListBegin(new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRUCT, _iter94.getValue().size()));
for (ColumnOrSuperColumn _iter95 : _iter94.getValue())
oprot.writeListBegin(new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRUCT, _iter98.getValue().size()));
for (ColumnOrSuperColumn _iter99 : _iter98.getValue())
{
_iter95.write(oprot);
_iter99.write(oprot);
}
oprot.writeListEnd();
}
@ -10908,13 +10906,13 @@ public class Cassandra {
case 1: // KEYS
if (field.type == org.apache.thrift.protocol.TType.LIST) {
{
org.apache.thrift.protocol.TList _list96 = iprot.readListBegin();
this.keys = new ArrayList<ByteBuffer>(_list96.size);
for (int _i97 = 0; _i97 < _list96.size; ++_i97)
org.apache.thrift.protocol.TList _list100 = iprot.readListBegin();
this.keys = new ArrayList<ByteBuffer>(_list100.size);
for (int _i101 = 0; _i101 < _list100.size; ++_i101)
{
ByteBuffer _elem98;
_elem98 = iprot.readBinary();
this.keys.add(_elem98);
ByteBuffer _elem102;
_elem102 = iprot.readBinary();
this.keys.add(_elem102);
}
iprot.readListEnd();
}
@ -10964,9 +10962,9 @@ public class Cassandra {
oprot.writeFieldBegin(KEYS_FIELD_DESC);
{
oprot.writeListBegin(new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRING, this.keys.size()));
for (ByteBuffer _iter99 : this.keys)
for (ByteBuffer _iter103 : this.keys)
{
oprot.writeBinary(_iter99);
oprot.writeBinary(_iter103);
}
oprot.writeListEnd();
}
@ -11551,15 +11549,15 @@ public class Cassandra {
case 0: // SUCCESS
if (field.type == org.apache.thrift.protocol.TType.MAP) {
{
org.apache.thrift.protocol.TMap _map100 = iprot.readMapBegin();
this.success = new HashMap<ByteBuffer,Integer>(2*_map100.size);
for (int _i101 = 0; _i101 < _map100.size; ++_i101)
org.apache.thrift.protocol.TMap _map104 = iprot.readMapBegin();
this.success = new HashMap<ByteBuffer,Integer>(2*_map104.size);
for (int _i105 = 0; _i105 < _map104.size; ++_i105)
{
ByteBuffer _key102;
int _val103;
_key102 = iprot.readBinary();
_val103 = iprot.readI32();
this.success.put(_key102, _val103);
ByteBuffer _key106;
int _val107;
_key106 = iprot.readBinary();
_val107 = iprot.readI32();
this.success.put(_key106, _val107);
}
iprot.readMapEnd();
}
@ -11609,10 +11607,10 @@ public class Cassandra {
oprot.writeFieldBegin(SUCCESS_FIELD_DESC);
{
oprot.writeMapBegin(new org.apache.thrift.protocol.TMap(org.apache.thrift.protocol.TType.STRING, org.apache.thrift.protocol.TType.I32, this.success.size()));
for (Map.Entry<ByteBuffer, Integer> _iter104 : this.success.entrySet())
for (Map.Entry<ByteBuffer, Integer> _iter108 : this.success.entrySet())
{
oprot.writeBinary(_iter104.getKey());
oprot.writeI32(_iter104.getValue());
oprot.writeBinary(_iter108.getKey());
oprot.writeI32(_iter108.getValue());
}
oprot.writeMapEnd();
}
@ -12796,14 +12794,14 @@ public class Cassandra {
case 0: // SUCCESS
if (field.type == org.apache.thrift.protocol.TType.LIST) {
{
org.apache.thrift.protocol.TList _list105 = iprot.readListBegin();
this.success = new ArrayList<KeySlice>(_list105.size);
for (int _i106 = 0; _i106 < _list105.size; ++_i106)
org.apache.thrift.protocol.TList _list109 = iprot.readListBegin();
this.success = new ArrayList<KeySlice>(_list109.size);
for (int _i110 = 0; _i110 < _list109.size; ++_i110)
{
KeySlice _elem107;
_elem107 = new KeySlice();
_elem107.read(iprot);
this.success.add(_elem107);
KeySlice _elem111;
_elem111 = new KeySlice();
_elem111.read(iprot);
this.success.add(_elem111);
}
iprot.readListEnd();
}
@ -12853,9 +12851,9 @@ public class Cassandra {
oprot.writeFieldBegin(SUCCESS_FIELD_DESC);
{
oprot.writeListBegin(new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRUCT, this.success.size()));
for (KeySlice _iter108 : this.success)
for (KeySlice _iter112 : this.success)
{
_iter108.write(oprot);
_iter112.write(oprot);
}
oprot.writeListEnd();
}
@ -14039,14 +14037,14 @@ public class Cassandra {
case 0: // SUCCESS
if (field.type == org.apache.thrift.protocol.TType.LIST) {
{
org.apache.thrift.protocol.TList _list109 = iprot.readListBegin();
this.success = new ArrayList<KeySlice>(_list109.size);
for (int _i110 = 0; _i110 < _list109.size; ++_i110)
org.apache.thrift.protocol.TList _list113 = iprot.readListBegin();
this.success = new ArrayList<KeySlice>(_list113.size);
for (int _i114 = 0; _i114 < _list113.size; ++_i114)
{
KeySlice _elem111;
_elem111 = new KeySlice();
_elem111.read(iprot);
this.success.add(_elem111);
KeySlice _elem115;
_elem115 = new KeySlice();
_elem115.read(iprot);
this.success.add(_elem115);
}
iprot.readListEnd();
}
@ -14096,9 +14094,9 @@ public class Cassandra {
oprot.writeFieldBegin(SUCCESS_FIELD_DESC);
{
oprot.writeListBegin(new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRUCT, this.success.size()));
for (KeySlice _iter112 : this.success)
for (KeySlice _iter116 : this.success)
{
_iter112.write(oprot);
_iter116.write(oprot);
}
oprot.writeListEnd();
}
@ -18943,38 +18941,38 @@ public class Cassandra {
case 1: // MUTATION_MAP
if (field.type == org.apache.thrift.protocol.TType.MAP) {
{
org.apache.thrift.protocol.TMap _map113 = iprot.readMapBegin();
this.mutation_map = new HashMap<ByteBuffer,Map<String,List<Mutation>>>(2*_map113.size);
for (int _i114 = 0; _i114 < _map113.size; ++_i114)
org.apache.thrift.protocol.TMap _map117 = iprot.readMapBegin();
this.mutation_map = new HashMap<ByteBuffer,Map<String,List<Mutation>>>(2*_map117.size);
for (int _i118 = 0; _i118 < _map117.size; ++_i118)
{
ByteBuffer _key115;
Map<String,List<Mutation>> _val116;
_key115 = iprot.readBinary();
ByteBuffer _key119;
Map<String,List<Mutation>> _val120;
_key119 = iprot.readBinary();
{
org.apache.thrift.protocol.TMap _map117 = iprot.readMapBegin();
_val116 = new HashMap<String,List<Mutation>>(2*_map117.size);
for (int _i118 = 0; _i118 < _map117.size; ++_i118)
org.apache.thrift.protocol.TMap _map121 = iprot.readMapBegin();
_val120 = new HashMap<String,List<Mutation>>(2*_map121.size);
for (int _i122 = 0; _i122 < _map121.size; ++_i122)
{
String _key119;
List<Mutation> _val120;
_key119 = iprot.readString();
String _key123;
List<Mutation> _val124;
_key123 = iprot.readString();
{
org.apache.thrift.protocol.TList _list121 = iprot.readListBegin();
_val120 = new ArrayList<Mutation>(_list121.size);
for (int _i122 = 0; _i122 < _list121.size; ++_i122)
org.apache.thrift.protocol.TList _list125 = iprot.readListBegin();
_val124 = new ArrayList<Mutation>(_list125.size);
for (int _i126 = 0; _i126 < _list125.size; ++_i126)
{
Mutation _elem123;
_elem123 = new Mutation();
_elem123.read(iprot);
_val120.add(_elem123);
Mutation _elem127;
_elem127 = new Mutation();
_elem127.read(iprot);
_val124.add(_elem127);
}
iprot.readListEnd();
}
_val116.put(_key119, _val120);
_val120.put(_key123, _val124);
}
iprot.readMapEnd();
}
this.mutation_map.put(_key115, _val116);
this.mutation_map.put(_key119, _val120);
}
iprot.readMapEnd();
}
@ -19008,19 +19006,19 @@ public class Cassandra {
oprot.writeFieldBegin(MUTATION_MAP_FIELD_DESC);
{
oprot.writeMapBegin(new org.apache.thrift.protocol.TMap(org.apache.thrift.protocol.TType.STRING, org.apache.thrift.protocol.TType.MAP, this.mutation_map.size()));
for (Map.Entry<ByteBuffer, Map<String,List<Mutation>>> _iter124 : this.mutation_map.entrySet())
for (Map.Entry<ByteBuffer, Map<String,List<Mutation>>> _iter128 : this.mutation_map.entrySet())
{
oprot.writeBinary(_iter124.getKey());
oprot.writeBinary(_iter128.getKey());
{
oprot.writeMapBegin(new org.apache.thrift.protocol.TMap(org.apache.thrift.protocol.TType.STRING, org.apache.thrift.protocol.TType.LIST, _iter124.getValue().size()));
for (Map.Entry<String, List<Mutation>> _iter125 : _iter124.getValue().entrySet())
oprot.writeMapBegin(new org.apache.thrift.protocol.TMap(org.apache.thrift.protocol.TType.STRING, org.apache.thrift.protocol.TType.LIST, _iter128.getValue().size()));
for (Map.Entry<String, List<Mutation>> _iter129 : _iter128.getValue().entrySet())
{
oprot.writeString(_iter125.getKey());
oprot.writeString(_iter129.getKey());
{
oprot.writeListBegin(new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRUCT, _iter125.getValue().size()));
for (Mutation _iter126 : _iter125.getValue())
oprot.writeListBegin(new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRUCT, _iter129.getValue().size()));
for (Mutation _iter130 : _iter129.getValue())
{
_iter126.write(oprot);
_iter130.write(oprot);
}
oprot.writeListEnd();
}
@ -20835,25 +20833,25 @@ public class Cassandra {
case 0: // SUCCESS
if (field.type == org.apache.thrift.protocol.TType.MAP) {
{
org.apache.thrift.protocol.TMap _map127 = iprot.readMapBegin();
this.success = new HashMap<String,List<String>>(2*_map127.size);
for (int _i128 = 0; _i128 < _map127.size; ++_i128)
org.apache.thrift.protocol.TMap _map131 = iprot.readMapBegin();
this.success = new HashMap<String,List<String>>(2*_map131.size);
for (int _i132 = 0; _i132 < _map131.size; ++_i132)
{
String _key129;
List<String> _val130;
_key129 = iprot.readString();
String _key133;
List<String> _val134;
_key133 = iprot.readString();
{
org.apache.thrift.protocol.TList _list131 = iprot.readListBegin();
_val130 = new ArrayList<String>(_list131.size);
for (int _i132 = 0; _i132 < _list131.size; ++_i132)
org.apache.thrift.protocol.TList _list135 = iprot.readListBegin();
_val134 = new ArrayList<String>(_list135.size);
for (int _i136 = 0; _i136 < _list135.size; ++_i136)
{
String _elem133;
_elem133 = iprot.readString();
_val130.add(_elem133);
String _elem137;
_elem137 = iprot.readString();
_val134.add(_elem137);
}
iprot.readListEnd();
}
this.success.put(_key129, _val130);
this.success.put(_key133, _val134);
}
iprot.readMapEnd();
}
@ -20887,14 +20885,14 @@ public class Cassandra {
oprot.writeFieldBegin(SUCCESS_FIELD_DESC);
{
oprot.writeMapBegin(new org.apache.thrift.protocol.TMap(org.apache.thrift.protocol.TType.STRING, org.apache.thrift.protocol.TType.LIST, this.success.size()));
for (Map.Entry<String, List<String>> _iter134 : this.success.entrySet())
for (Map.Entry<String, List<String>> _iter138 : this.success.entrySet())
{
oprot.writeString(_iter134.getKey());
oprot.writeString(_iter138.getKey());
{
oprot.writeListBegin(new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRING, _iter134.getValue().size()));
for (String _iter135 : _iter134.getValue())
oprot.writeListBegin(new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRING, _iter138.getValue().size()));
for (String _iter139 : _iter138.getValue())
{
oprot.writeString(_iter135);
oprot.writeString(_iter139);
}
oprot.writeListEnd();
}
@ -21493,14 +21491,14 @@ public class Cassandra {
case 0: // SUCCESS
if (field.type == org.apache.thrift.protocol.TType.LIST) {
{
org.apache.thrift.protocol.TList _list136 = iprot.readListBegin();
this.success = new ArrayList<KsDef>(_list136.size);
for (int _i137 = 0; _i137 < _list136.size; ++_i137)
org.apache.thrift.protocol.TList _list140 = iprot.readListBegin();
this.success = new ArrayList<KsDef>(_list140.size);
for (int _i141 = 0; _i141 < _list140.size; ++_i141)
{
KsDef _elem138;
_elem138 = new KsDef();
_elem138.read(iprot);
this.success.add(_elem138);
KsDef _elem142;
_elem142 = new KsDef();
_elem142.read(iprot);
this.success.add(_elem142);
}
iprot.readListEnd();
}
@ -21534,9 +21532,9 @@ public class Cassandra {
oprot.writeFieldBegin(SUCCESS_FIELD_DESC);
{
oprot.writeListBegin(new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRUCT, this.success.size()));
for (KsDef _iter139 : this.success)
for (KsDef _iter143 : this.success)
{
_iter139.write(oprot);
_iter143.write(oprot);
}
oprot.writeListEnd();
}
@ -23249,14 +23247,14 @@ public class Cassandra {
case 0: // SUCCESS
if (field.type == org.apache.thrift.protocol.TType.LIST) {
{
org.apache.thrift.protocol.TList _list140 = iprot.readListBegin();
this.success = new ArrayList<TokenRange>(_list140.size);
for (int _i141 = 0; _i141 < _list140.size; ++_i141)
org.apache.thrift.protocol.TList _list144 = iprot.readListBegin();
this.success = new ArrayList<TokenRange>(_list144.size);
for (int _i145 = 0; _i145 < _list144.size; ++_i145)
{
TokenRange _elem142;
_elem142 = new TokenRange();
_elem142.read(iprot);
this.success.add(_elem142);
TokenRange _elem146;
_elem146 = new TokenRange();
_elem146.read(iprot);
this.success.add(_elem146);
}
iprot.readListEnd();
}
@ -23290,9 +23288,9 @@ public class Cassandra {
oprot.writeFieldBegin(SUCCESS_FIELD_DESC);
{
oprot.writeListBegin(new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRUCT, this.success.size()));
for (TokenRange _iter143 : this.success)
for (TokenRange _iter147 : this.success)
{
_iter143.write(oprot);
_iter147.write(oprot);
}
oprot.writeListEnd();
}
@ -26094,13 +26092,13 @@ public class Cassandra {
case 0: // SUCCESS
if (field.type == org.apache.thrift.protocol.TType.LIST) {
{
org.apache.thrift.protocol.TList _list144 = iprot.readListBegin();
this.success = new ArrayList<String>(_list144.size);
for (int _i145 = 0; _i145 < _list144.size; ++_i145)
org.apache.thrift.protocol.TList _list148 = iprot.readListBegin();
this.success = new ArrayList<String>(_list148.size);
for (int _i149 = 0; _i149 < _list148.size; ++_i149)
{
String _elem146;
_elem146 = iprot.readString();
this.success.add(_elem146);
String _elem150;
_elem150 = iprot.readString();
this.success.add(_elem150);
}
iprot.readListEnd();
}
@ -26134,9 +26132,9 @@ public class Cassandra {
oprot.writeFieldBegin(SUCCESS_FIELD_DESC);
{
oprot.writeListBegin(new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRING, this.success.size()));
for (String _iter147 : this.success)
for (String _iter151 : this.success)
{
oprot.writeString(_iter147);
oprot.writeString(_iter151);
}
oprot.writeListEnd();
}

View File

@ -2232,14 +2232,14 @@ public class CfDef implements org.apache.thrift.TBase<CfDef, CfDef._Fields>, jav
case 13: // COLUMN_METADATA
if (field.type == org.apache.thrift.protocol.TType.LIST) {
{
org.apache.thrift.protocol.TList _list38 = iprot.readListBegin();
this.column_metadata = new ArrayList<ColumnDef>(_list38.size);
for (int _i39 = 0; _i39 < _list38.size; ++_i39)
org.apache.thrift.protocol.TList _list42 = iprot.readListBegin();
this.column_metadata = new ArrayList<ColumnDef>(_list42.size);
for (int _i43 = 0; _i43 < _list42.size; ++_i43)
{
ColumnDef _elem40;
_elem40 = new ColumnDef();
_elem40.read(iprot);
this.column_metadata.add(_elem40);
ColumnDef _elem44;
_elem44 = new ColumnDef();
_elem44.read(iprot);
this.column_metadata.add(_elem44);
}
iprot.readListEnd();
}
@ -2349,15 +2349,15 @@ public class CfDef implements org.apache.thrift.TBase<CfDef, CfDef._Fields>, jav
case 30: // COMPACTION_STRATEGY_OPTIONS
if (field.type == org.apache.thrift.protocol.TType.MAP) {
{
org.apache.thrift.protocol.TMap _map41 = iprot.readMapBegin();
this.compaction_strategy_options = new HashMap<String,String>(2*_map41.size);
for (int _i42 = 0; _i42 < _map41.size; ++_i42)
org.apache.thrift.protocol.TMap _map45 = iprot.readMapBegin();
this.compaction_strategy_options = new HashMap<String,String>(2*_map45.size);
for (int _i46 = 0; _i46 < _map45.size; ++_i46)
{
String _key43;
String _val44;
_key43 = iprot.readString();
_val44 = iprot.readString();
this.compaction_strategy_options.put(_key43, _val44);
String _key47;
String _val48;
_key47 = iprot.readString();
_val48 = iprot.readString();
this.compaction_strategy_options.put(_key47, _val48);
}
iprot.readMapEnd();
}
@ -2376,15 +2376,15 @@ public class CfDef implements org.apache.thrift.TBase<CfDef, CfDef._Fields>, jav
case 32: // COMPRESSION_OPTIONS
if (field.type == org.apache.thrift.protocol.TType.MAP) {
{
org.apache.thrift.protocol.TMap _map45 = iprot.readMapBegin();
this.compression_options = new HashMap<String,String>(2*_map45.size);
for (int _i46 = 0; _i46 < _map45.size; ++_i46)
org.apache.thrift.protocol.TMap _map49 = iprot.readMapBegin();
this.compression_options = new HashMap<String,String>(2*_map49.size);
for (int _i50 = 0; _i50 < _map49.size; ++_i50)
{
String _key47;
String _val48;
_key47 = iprot.readString();
_val48 = iprot.readString();
this.compression_options.put(_key47, _val48);
String _key51;
String _val52;
_key51 = iprot.readString();
_val52 = iprot.readString();
this.compression_options.put(_key51, _val52);
}
iprot.readMapEnd();
}
@ -2465,9 +2465,9 @@ public class CfDef implements org.apache.thrift.TBase<CfDef, CfDef._Fields>, jav
oprot.writeFieldBegin(COLUMN_METADATA_FIELD_DESC);
{
oprot.writeListBegin(new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRUCT, this.column_metadata.size()));
for (ColumnDef _iter49 : this.column_metadata)
for (ColumnDef _iter53 : this.column_metadata)
{
_iter49.write(oprot);
_iter53.write(oprot);
}
oprot.writeListEnd();
}
@ -2554,10 +2554,10 @@ public class CfDef implements org.apache.thrift.TBase<CfDef, CfDef._Fields>, jav
oprot.writeFieldBegin(COMPACTION_STRATEGY_OPTIONS_FIELD_DESC);
{
oprot.writeMapBegin(new org.apache.thrift.protocol.TMap(org.apache.thrift.protocol.TType.STRING, org.apache.thrift.protocol.TType.STRING, this.compaction_strategy_options.size()));
for (Map.Entry<String, String> _iter50 : this.compaction_strategy_options.entrySet())
for (Map.Entry<String, String> _iter54 : this.compaction_strategy_options.entrySet())
{
oprot.writeString(_iter50.getKey());
oprot.writeString(_iter50.getValue());
oprot.writeString(_iter54.getKey());
oprot.writeString(_iter54.getValue());
}
oprot.writeMapEnd();
}
@ -2574,10 +2574,10 @@ public class CfDef implements org.apache.thrift.TBase<CfDef, CfDef._Fields>, jav
oprot.writeFieldBegin(COMPRESSION_OPTIONS_FIELD_DESC);
{
oprot.writeMapBegin(new org.apache.thrift.protocol.TMap(org.apache.thrift.protocol.TType.STRING, org.apache.thrift.protocol.TType.STRING, this.compression_options.size()));
for (Map.Entry<String, String> _iter51 : this.compression_options.entrySet())
for (Map.Entry<String, String> _iter55 : this.compression_options.entrySet())
{
oprot.writeString(_iter51.getKey());
oprot.writeString(_iter51.getValue());
oprot.writeString(_iter55.getKey());
oprot.writeString(_iter55.getValue());
}
oprot.writeMapEnd();
}

View File

@ -650,15 +650,15 @@ public class ColumnDef implements org.apache.thrift.TBase<ColumnDef, ColumnDef._
case 5: // INDEX_OPTIONS
if (field.type == org.apache.thrift.protocol.TType.MAP) {
{
org.apache.thrift.protocol.TMap _map33 = iprot.readMapBegin();
this.index_options = new HashMap<String,String>(2*_map33.size);
for (int _i34 = 0; _i34 < _map33.size; ++_i34)
org.apache.thrift.protocol.TMap _map37 = iprot.readMapBegin();
this.index_options = new HashMap<String,String>(2*_map37.size);
for (int _i38 = 0; _i38 < _map37.size; ++_i38)
{
String _key35;
String _val36;
_key35 = iprot.readString();
_val36 = iprot.readString();
this.index_options.put(_key35, _val36);
String _key39;
String _val40;
_key39 = iprot.readString();
_val40 = iprot.readString();
this.index_options.put(_key39, _val40);
}
iprot.readMapEnd();
}
@ -710,10 +710,10 @@ public class ColumnDef implements org.apache.thrift.TBase<ColumnDef, ColumnDef._
oprot.writeFieldBegin(INDEX_OPTIONS_FIELD_DESC);
{
oprot.writeMapBegin(new org.apache.thrift.protocol.TMap(org.apache.thrift.protocol.TType.STRING, org.apache.thrift.protocol.TType.STRING, this.index_options.size()));
for (Map.Entry<String, String> _iter37 : this.index_options.entrySet())
for (Map.Entry<String, String> _iter41 : this.index_options.entrySet())
{
oprot.writeString(_iter37.getKey());
oprot.writeString(_iter37.getValue());
oprot.writeString(_iter41.getKey());
oprot.writeString(_iter41.getValue());
}
oprot.writeMapEnd();
}

View File

@ -44,6 +44,6 @@ import org.slf4j.LoggerFactory;
public class Constants {
public static final String VERSION = "19.15.0";
public static final String VERSION = "19.18.0";
}

View File

@ -554,15 +554,15 @@ public class CqlMetadata implements org.apache.thrift.TBase<CqlMetadata, CqlMeta
case 1: // NAME_TYPES
if (field.type == org.apache.thrift.protocol.TType.MAP) {
{
org.apache.thrift.protocol.TMap _map65 = iprot.readMapBegin();
this.name_types = new HashMap<ByteBuffer,String>(2*_map65.size);
for (int _i66 = 0; _i66 < _map65.size; ++_i66)
org.apache.thrift.protocol.TMap _map69 = iprot.readMapBegin();
this.name_types = new HashMap<ByteBuffer,String>(2*_map69.size);
for (int _i70 = 0; _i70 < _map69.size; ++_i70)
{
ByteBuffer _key67;
String _val68;
_key67 = iprot.readBinary();
_val68 = iprot.readString();
this.name_types.put(_key67, _val68);
ByteBuffer _key71;
String _val72;
_key71 = iprot.readBinary();
_val72 = iprot.readString();
this.name_types.put(_key71, _val72);
}
iprot.readMapEnd();
}
@ -573,15 +573,15 @@ public class CqlMetadata implements org.apache.thrift.TBase<CqlMetadata, CqlMeta
case 2: // VALUE_TYPES
if (field.type == org.apache.thrift.protocol.TType.MAP) {
{
org.apache.thrift.protocol.TMap _map69 = iprot.readMapBegin();
this.value_types = new HashMap<ByteBuffer,String>(2*_map69.size);
for (int _i70 = 0; _i70 < _map69.size; ++_i70)
org.apache.thrift.protocol.TMap _map73 = iprot.readMapBegin();
this.value_types = new HashMap<ByteBuffer,String>(2*_map73.size);
for (int _i74 = 0; _i74 < _map73.size; ++_i74)
{
ByteBuffer _key71;
String _val72;
_key71 = iprot.readBinary();
_val72 = iprot.readString();
this.value_types.put(_key71, _val72);
ByteBuffer _key75;
String _val76;
_key75 = iprot.readBinary();
_val76 = iprot.readString();
this.value_types.put(_key75, _val76);
}
iprot.readMapEnd();
}
@ -622,10 +622,10 @@ public class CqlMetadata implements org.apache.thrift.TBase<CqlMetadata, CqlMeta
oprot.writeFieldBegin(NAME_TYPES_FIELD_DESC);
{
oprot.writeMapBegin(new org.apache.thrift.protocol.TMap(org.apache.thrift.protocol.TType.STRING, org.apache.thrift.protocol.TType.STRING, this.name_types.size()));
for (Map.Entry<ByteBuffer, String> _iter73 : this.name_types.entrySet())
for (Map.Entry<ByteBuffer, String> _iter77 : this.name_types.entrySet())
{
oprot.writeBinary(_iter73.getKey());
oprot.writeString(_iter73.getValue());
oprot.writeBinary(_iter77.getKey());
oprot.writeString(_iter77.getValue());
}
oprot.writeMapEnd();
}
@ -635,10 +635,10 @@ public class CqlMetadata implements org.apache.thrift.TBase<CqlMetadata, CqlMeta
oprot.writeFieldBegin(VALUE_TYPES_FIELD_DESC);
{
oprot.writeMapBegin(new org.apache.thrift.protocol.TMap(org.apache.thrift.protocol.TType.STRING, org.apache.thrift.protocol.TType.STRING, this.value_types.size()));
for (Map.Entry<ByteBuffer, String> _iter74 : this.value_types.entrySet())
for (Map.Entry<ByteBuffer, String> _iter78 : this.value_types.entrySet())
{
oprot.writeBinary(_iter74.getKey());
oprot.writeString(_iter74.getValue());
oprot.writeBinary(_iter78.getKey());
oprot.writeString(_iter78.getValue());
}
oprot.writeMapEnd();
}

View File

@ -541,14 +541,14 @@ public class CqlResult implements org.apache.thrift.TBase<CqlResult, CqlResult._
case 2: // ROWS
if (field.type == org.apache.thrift.protocol.TType.LIST) {
{
org.apache.thrift.protocol.TList _list75 = iprot.readListBegin();
this.rows = new ArrayList<CqlRow>(_list75.size);
for (int _i76 = 0; _i76 < _list75.size; ++_i76)
org.apache.thrift.protocol.TList _list79 = iprot.readListBegin();
this.rows = new ArrayList<CqlRow>(_list79.size);
for (int _i80 = 0; _i80 < _list79.size; ++_i80)
{
CqlRow _elem77;
_elem77 = new CqlRow();
_elem77.read(iprot);
this.rows.add(_elem77);
CqlRow _elem81;
_elem81 = new CqlRow();
_elem81.read(iprot);
this.rows.add(_elem81);
}
iprot.readListEnd();
}
@ -597,9 +597,9 @@ public class CqlResult implements org.apache.thrift.TBase<CqlResult, CqlResult._
oprot.writeFieldBegin(ROWS_FIELD_DESC);
{
oprot.writeListBegin(new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRUCT, this.rows.size()));
for (CqlRow _iter78 : this.rows)
for (CqlRow _iter82 : this.rows)
{
_iter78.write(oprot);
_iter82.write(oprot);
}
oprot.writeListEnd();
}

View File

@ -395,14 +395,14 @@ public class CqlRow implements org.apache.thrift.TBase<CqlRow, CqlRow._Fields>,
case 2: // COLUMNS
if (field.type == org.apache.thrift.protocol.TType.LIST) {
{
org.apache.thrift.protocol.TList _list61 = iprot.readListBegin();
this.columns = new ArrayList<Column>(_list61.size);
for (int _i62 = 0; _i62 < _list61.size; ++_i62)
org.apache.thrift.protocol.TList _list65 = iprot.readListBegin();
this.columns = new ArrayList<Column>(_list65.size);
for (int _i66 = 0; _i66 < _list65.size; ++_i66)
{
Column _elem63;
_elem63 = new Column();
_elem63.read(iprot);
this.columns.add(_elem63);
Column _elem67;
_elem67 = new Column();
_elem67.read(iprot);
this.columns.add(_elem67);
}
iprot.readListEnd();
}
@ -434,9 +434,9 @@ public class CqlRow implements org.apache.thrift.TBase<CqlRow, CqlRow._Fields>,
oprot.writeFieldBegin(COLUMNS_FIELD_DESC);
{
oprot.writeListBegin(new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRUCT, this.columns.size()));
for (Column _iter64 : this.columns)
for (Column _iter68 : this.columns)
{
_iter64.write(oprot);
_iter68.write(oprot);
}
oprot.writeListEnd();
}

View File

@ -718,15 +718,15 @@ public class KsDef implements org.apache.thrift.TBase<KsDef, KsDef._Fields>, jav
case 3: // STRATEGY_OPTIONS
if (field.type == org.apache.thrift.protocol.TType.MAP) {
{
org.apache.thrift.protocol.TMap _map52 = iprot.readMapBegin();
this.strategy_options = new HashMap<String,String>(2*_map52.size);
for (int _i53 = 0; _i53 < _map52.size; ++_i53)
org.apache.thrift.protocol.TMap _map56 = iprot.readMapBegin();
this.strategy_options = new HashMap<String,String>(2*_map56.size);
for (int _i57 = 0; _i57 < _map56.size; ++_i57)
{
String _key54;
String _val55;
_key54 = iprot.readString();
_val55 = iprot.readString();
this.strategy_options.put(_key54, _val55);
String _key58;
String _val59;
_key58 = iprot.readString();
_val59 = iprot.readString();
this.strategy_options.put(_key58, _val59);
}
iprot.readMapEnd();
}
@ -745,14 +745,14 @@ public class KsDef implements org.apache.thrift.TBase<KsDef, KsDef._Fields>, jav
case 5: // CF_DEFS
if (field.type == org.apache.thrift.protocol.TType.LIST) {
{
org.apache.thrift.protocol.TList _list56 = iprot.readListBegin();
this.cf_defs = new ArrayList<CfDef>(_list56.size);
for (int _i57 = 0; _i57 < _list56.size; ++_i57)
org.apache.thrift.protocol.TList _list60 = iprot.readListBegin();
this.cf_defs = new ArrayList<CfDef>(_list60.size);
for (int _i61 = 0; _i61 < _list60.size; ++_i61)
{
CfDef _elem58;
_elem58 = new CfDef();
_elem58.read(iprot);
this.cf_defs.add(_elem58);
CfDef _elem62;
_elem62 = new CfDef();
_elem62.read(iprot);
this.cf_defs.add(_elem62);
}
iprot.readListEnd();
}
@ -798,10 +798,10 @@ public class KsDef implements org.apache.thrift.TBase<KsDef, KsDef._Fields>, jav
oprot.writeFieldBegin(STRATEGY_OPTIONS_FIELD_DESC);
{
oprot.writeMapBegin(new org.apache.thrift.protocol.TMap(org.apache.thrift.protocol.TType.STRING, org.apache.thrift.protocol.TType.STRING, this.strategy_options.size()));
for (Map.Entry<String, String> _iter59 : this.strategy_options.entrySet())
for (Map.Entry<String, String> _iter63 : this.strategy_options.entrySet())
{
oprot.writeString(_iter59.getKey());
oprot.writeString(_iter59.getValue());
oprot.writeString(_iter63.getKey());
oprot.writeString(_iter63.getValue());
}
oprot.writeMapEnd();
}
@ -817,9 +817,9 @@ public class KsDef implements org.apache.thrift.TBase<KsDef, KsDef._Fields>, jav
oprot.writeFieldBegin(CF_DEFS_FIELD_DESC);
{
oprot.writeListBegin(new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRUCT, this.cf_defs.size()));
for (CfDef _iter60 : this.cf_defs)
for (CfDef _iter64 : this.cf_defs)
{
_iter60.write(oprot);
_iter64.write(oprot);
}
oprot.writeListEnd();
}

View File

@ -42,17 +42,27 @@ import java.util.Arrays;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
/**
* A TokenRange describes part of the Cassandra ring, it is a mapping from a range to
* endpoints responsible for that range.
* @param start_token The first token in the range
* @param end_token The last token in the range
* @param endpoints The endpoints responsible for the range (listed by their configured listen_address)
* @param rpc_endpoints The endpoints responsible for the range (listed by their configured rpc_address)
*/
public class TokenRange implements org.apache.thrift.TBase<TokenRange, TokenRange._Fields>, java.io.Serializable, Cloneable {
private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("TokenRange");
private static final org.apache.thrift.protocol.TField START_TOKEN_FIELD_DESC = new org.apache.thrift.protocol.TField("start_token", org.apache.thrift.protocol.TType.STRING, (short)1);
private static final org.apache.thrift.protocol.TField END_TOKEN_FIELD_DESC = new org.apache.thrift.protocol.TField("end_token", org.apache.thrift.protocol.TType.STRING, (short)2);
private static final org.apache.thrift.protocol.TField ENDPOINTS_FIELD_DESC = new org.apache.thrift.protocol.TField("endpoints", org.apache.thrift.protocol.TType.LIST, (short)3);
private static final org.apache.thrift.protocol.TField ENDPOINT_DETAILS_FIELD_DESC = new org.apache.thrift.protocol.TField("endpoint_details", org.apache.thrift.protocol.TType.LIST, (short)4);
private static final org.apache.thrift.protocol.TField RPC_ENDPOINTS_FIELD_DESC = new org.apache.thrift.protocol.TField("rpc_endpoints", org.apache.thrift.protocol.TType.LIST, (short)4);
private static final org.apache.thrift.protocol.TField ENDPOINT_DETAILS_FIELD_DESC = new org.apache.thrift.protocol.TField("endpoint_details", org.apache.thrift.protocol.TType.LIST, (short)5);
public String start_token;
public String end_token;
public List<String> endpoints;
public List<String> rpc_endpoints;
public List<EndpointDetails> endpoint_details;
/** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
@ -60,7 +70,8 @@ public class TokenRange implements org.apache.thrift.TBase<TokenRange, TokenRang
START_TOKEN((short)1, "start_token"),
END_TOKEN((short)2, "end_token"),
ENDPOINTS((short)3, "endpoints"),
ENDPOINT_DETAILS((short)4, "endpoint_details");
RPC_ENDPOINTS((short)4, "rpc_endpoints"),
ENDPOINT_DETAILS((short)5, "endpoint_details");
private static final Map<String, _Fields> byName = new HashMap<String, _Fields>();
@ -81,7 +92,9 @@ public class TokenRange implements org.apache.thrift.TBase<TokenRange, TokenRang
return END_TOKEN;
case 3: // ENDPOINTS
return ENDPOINTS;
case 4: // ENDPOINT_DETAILS
case 4: // RPC_ENDPOINTS
return RPC_ENDPOINTS;
case 5: // ENDPOINT_DETAILS
return ENDPOINT_DETAILS;
default:
return null;
@ -134,6 +147,9 @@ public class TokenRange implements org.apache.thrift.TBase<TokenRange, TokenRang
tmpMap.put(_Fields.ENDPOINTS, new org.apache.thrift.meta_data.FieldMetaData("endpoints", org.apache.thrift.TFieldRequirementType.REQUIRED,
new org.apache.thrift.meta_data.ListMetaData(org.apache.thrift.protocol.TType.LIST,
new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING))));
tmpMap.put(_Fields.RPC_ENDPOINTS, new org.apache.thrift.meta_data.FieldMetaData("rpc_endpoints", org.apache.thrift.TFieldRequirementType.OPTIONAL,
new org.apache.thrift.meta_data.ListMetaData(org.apache.thrift.protocol.TType.LIST,
new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING))));
tmpMap.put(_Fields.ENDPOINT_DETAILS, new org.apache.thrift.meta_data.FieldMetaData("endpoint_details", org.apache.thrift.TFieldRequirementType.OPTIONAL,
new org.apache.thrift.meta_data.ListMetaData(org.apache.thrift.protocol.TType.LIST,
new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, EndpointDetails.class))));
@ -172,6 +188,13 @@ public class TokenRange implements org.apache.thrift.TBase<TokenRange, TokenRang
}
this.endpoints = __this__endpoints;
}
if (other.isSetRpc_endpoints()) {
List<String> __this__rpc_endpoints = new ArrayList<String>();
for (String other_element : other.rpc_endpoints) {
__this__rpc_endpoints.add(other_element);
}
this.rpc_endpoints = __this__rpc_endpoints;
}
if (other.isSetEndpoint_details()) {
List<EndpointDetails> __this__endpoint_details = new ArrayList<EndpointDetails>();
for (EndpointDetails other_element : other.endpoint_details) {
@ -190,6 +213,7 @@ public class TokenRange implements org.apache.thrift.TBase<TokenRange, TokenRang
this.start_token = null;
this.end_token = null;
this.endpoints = null;
this.rpc_endpoints = null;
this.endpoint_details = null;
}
@ -280,6 +304,45 @@ public class TokenRange implements org.apache.thrift.TBase<TokenRange, TokenRang
}
}
public int getRpc_endpointsSize() {
return (this.rpc_endpoints == null) ? 0 : this.rpc_endpoints.size();
}
public java.util.Iterator<String> getRpc_endpointsIterator() {
return (this.rpc_endpoints == null) ? null : this.rpc_endpoints.iterator();
}
public void addToRpc_endpoints(String elem) {
if (this.rpc_endpoints == null) {
this.rpc_endpoints = new ArrayList<String>();
}
this.rpc_endpoints.add(elem);
}
public List<String> getRpc_endpoints() {
return this.rpc_endpoints;
}
public TokenRange setRpc_endpoints(List<String> rpc_endpoints) {
this.rpc_endpoints = rpc_endpoints;
return this;
}
public void unsetRpc_endpoints() {
this.rpc_endpoints = null;
}
/** Returns true if field rpc_endpoints is set (has been assigned a value) and false otherwise */
public boolean isSetRpc_endpoints() {
return this.rpc_endpoints != null;
}
public void setRpc_endpointsIsSet(boolean value) {
if (!value) {
this.rpc_endpoints = null;
}
}
public int getEndpoint_detailsSize() {
return (this.endpoint_details == null) ? 0 : this.endpoint_details.size();
}
@ -345,6 +408,14 @@ public class TokenRange implements org.apache.thrift.TBase<TokenRange, TokenRang
}
break;
case RPC_ENDPOINTS:
if (value == null) {
unsetRpc_endpoints();
} else {
setRpc_endpoints((List<String>)value);
}
break;
case ENDPOINT_DETAILS:
if (value == null) {
unsetEndpoint_details();
@ -367,6 +438,9 @@ public class TokenRange implements org.apache.thrift.TBase<TokenRange, TokenRang
case ENDPOINTS:
return getEndpoints();
case RPC_ENDPOINTS:
return getRpc_endpoints();
case ENDPOINT_DETAILS:
return getEndpoint_details();
@ -387,6 +461,8 @@ public class TokenRange implements org.apache.thrift.TBase<TokenRange, TokenRang
return isSetEnd_token();
case ENDPOINTS:
return isSetEndpoints();
case RPC_ENDPOINTS:
return isSetRpc_endpoints();
case ENDPOINT_DETAILS:
return isSetEndpoint_details();
}
@ -433,6 +509,15 @@ public class TokenRange implements org.apache.thrift.TBase<TokenRange, TokenRang
return false;
}
boolean this_present_rpc_endpoints = true && this.isSetRpc_endpoints();
boolean that_present_rpc_endpoints = true && that.isSetRpc_endpoints();
if (this_present_rpc_endpoints || that_present_rpc_endpoints) {
if (!(this_present_rpc_endpoints && that_present_rpc_endpoints))
return false;
if (!this.rpc_endpoints.equals(that.rpc_endpoints))
return false;
}
boolean this_present_endpoint_details = true && this.isSetEndpoint_details();
boolean that_present_endpoint_details = true && that.isSetEndpoint_details();
if (this_present_endpoint_details || that_present_endpoint_details) {
@ -464,6 +549,11 @@ public class TokenRange implements org.apache.thrift.TBase<TokenRange, TokenRang
if (present_endpoints)
builder.append(endpoints);
boolean present_rpc_endpoints = true && (isSetRpc_endpoints());
builder.append(present_rpc_endpoints);
if (present_rpc_endpoints)
builder.append(rpc_endpoints);
boolean present_endpoint_details = true && (isSetEndpoint_details());
builder.append(present_endpoint_details);
if (present_endpoint_details)
@ -510,6 +600,16 @@ public class TokenRange implements org.apache.thrift.TBase<TokenRange, TokenRang
return lastComparison;
}
}
lastComparison = Boolean.valueOf(isSetRpc_endpoints()).compareTo(typedOther.isSetRpc_endpoints());
if (lastComparison != 0) {
return lastComparison;
}
if (isSetRpc_endpoints()) {
lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.rpc_endpoints, typedOther.rpc_endpoints);
if (lastComparison != 0) {
return lastComparison;
}
}
lastComparison = Boolean.valueOf(isSetEndpoint_details()).compareTo(typedOther.isSetEndpoint_details());
if (lastComparison != 0) {
return lastComparison;
@ -568,17 +668,34 @@ public class TokenRange implements org.apache.thrift.TBase<TokenRange, TokenRang
org.apache.thrift.protocol.TProtocolUtil.skip(iprot, field.type);
}
break;
case 4: // ENDPOINT_DETAILS
case 4: // RPC_ENDPOINTS
if (field.type == org.apache.thrift.protocol.TType.LIST) {
{
org.apache.thrift.protocol.TList _list23 = iprot.readListBegin();
this.endpoint_details = new ArrayList<EndpointDetails>(_list23.size);
this.rpc_endpoints = new ArrayList<String>(_list23.size);
for (int _i24 = 0; _i24 < _list23.size; ++_i24)
{
EndpointDetails _elem25;
_elem25 = new EndpointDetails();
_elem25.read(iprot);
this.endpoint_details.add(_elem25);
String _elem25;
_elem25 = iprot.readString();
this.rpc_endpoints.add(_elem25);
}
iprot.readListEnd();
}
} else {
org.apache.thrift.protocol.TProtocolUtil.skip(iprot, field.type);
}
break;
case 5: // ENDPOINT_DETAILS
if (field.type == org.apache.thrift.protocol.TType.LIST) {
{
org.apache.thrift.protocol.TList _list26 = iprot.readListBegin();
this.endpoint_details = new ArrayList<EndpointDetails>(_list26.size);
for (int _i27 = 0; _i27 < _list26.size; ++_i27)
{
EndpointDetails _elem28;
_elem28 = new EndpointDetails();
_elem28.read(iprot);
this.endpoint_details.add(_elem28);
}
iprot.readListEnd();
}
@ -615,22 +732,36 @@ public class TokenRange implements org.apache.thrift.TBase<TokenRange, TokenRang
oprot.writeFieldBegin(ENDPOINTS_FIELD_DESC);
{
oprot.writeListBegin(new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRING, this.endpoints.size()));
for (String _iter26 : this.endpoints)
for (String _iter29 : this.endpoints)
{
oprot.writeString(_iter26);
oprot.writeString(_iter29);
}
oprot.writeListEnd();
}
oprot.writeFieldEnd();
}
if (this.rpc_endpoints != null) {
if (isSetRpc_endpoints()) {
oprot.writeFieldBegin(RPC_ENDPOINTS_FIELD_DESC);
{
oprot.writeListBegin(new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRING, this.rpc_endpoints.size()));
for (String _iter30 : this.rpc_endpoints)
{
oprot.writeString(_iter30);
}
oprot.writeListEnd();
}
oprot.writeFieldEnd();
}
}
if (this.endpoint_details != null) {
if (isSetEndpoint_details()) {
oprot.writeFieldBegin(ENDPOINT_DETAILS_FIELD_DESC);
{
oprot.writeListBegin(new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRUCT, this.endpoint_details.size()));
for (EndpointDetails _iter27 : this.endpoint_details)
for (EndpointDetails _iter31 : this.endpoint_details)
{
_iter27.write(oprot);
_iter31.write(oprot);
}
oprot.writeListEnd();
}
@ -669,6 +800,16 @@ public class TokenRange implements org.apache.thrift.TBase<TokenRange, TokenRang
sb.append(this.endpoints);
}
first = false;
if (isSetRpc_endpoints()) {
if (!first) sb.append(", ");
sb.append("rpc_endpoints:");
if (this.rpc_endpoints == null) {
sb.append("null");
} else {
sb.append(this.rpc_endpoints);
}
first = false;
}
if (isSetEndpoint_details()) {
if (!first) sb.append(", ");
sb.append("endpoint_details:");

View File

@ -30,7 +30,6 @@ public class LeveledManifest
private final List<SSTableReader>[] generations;
private final DecoratedKey[] lastCompactedKeys;
private final int maxSSTableSizeInMB;
private static int MAX_COMPACTING_L0 = 32;
private LeveledManifest(ColumnFamilyStore cfs, int maxSSTableSizeInMB)
{
@ -250,8 +249,6 @@ public class LeveledManifest
{
// pick a random sstable from L0, and any that overlap with it
List<SSTableReader> L0 = overlapping(remaining.iterator().next(), remaining);
//but not too many, as we could run out of memory
L0 = L0.size() > MAX_COMPACTING_L0 ? L0.subList(0, MAX_COMPACTING_L0) : L0;
// add the overlapping ones from L1
for (SSTableReader sstable : L0)
{

View File

@ -165,7 +165,12 @@ public class BootStrapper
}
if (endpoints.isEmpty())
throw new RuntimeException("No other nodes seen! Unable to bootstrap");
throw new RuntimeException("No other nodes seen! Unable to bootstrap."
+ "If you intended to start a single-node cluster, you should make sure "
+ "your broadcast_address (or listen_address) is listed as a seed. "
+ "Otherwise, you need to determine why the seed being contacted "
+ "has no knowledge of the rest of the cluster. Usually, this can be solved "
+ "by giving all nodes the same seed list.");
Collections.sort(endpoints, new Comparator<InetAddress>()
{
public int compare(InetAddress ia1, InetAddress ia2)

View File

@ -143,6 +143,8 @@ public class ColumnFamilyRecordReader extends RecordReader<ByteBuffer, SortedMap
return true;
}
// we don't use endpointsnitch since we are trying to support hadoop nodes that are
// not necessarily on Cassandra machines, too. This should be adequate for single-DC clusters, at least.
private String getLocation()
{
InetAddress[] localAddresses;
@ -173,7 +175,7 @@ public class ColumnFamilyRecordReader extends RecordReader<ByteBuffer, SortedMap
}
}
}
throw new UnsupportedOperationException("no local connection available");
return split.getLocations()[0];
}
private class RowIterator extends AbstractIterator<Pair<ByteBuffer, SortedMap<ByteBuffer, IColumn>>>

View File

@ -67,6 +67,8 @@ public class IncomingTcpConnection extends Thread
int header = input.readInt();
isStream = MessagingService.getBits(header, 3, 1) == 1;
version = MessagingService.getBits(header, 15, 8);
if (logger.isDebugEnabled())
logger.debug("Version for " + socket.getInetAddress() + " is " + version);
if (isStream)
{
if (version == MessagingService.version_)
@ -98,6 +100,7 @@ public class IncomingTcpConnection extends Thread
else if (msg != null)
{
Gossiper.instance.setVersion(msg.getFrom(), version);
logger.debug("set version for {} to {}", socket.getInetAddress(), version);
}
// loop to get the next message.
@ -108,6 +111,7 @@ public class IncomingTcpConnection extends Thread
header = input.readInt();
assert isStream == (MessagingService.getBits(header, 3, 1) == 1) : "Connections cannot change type: " + isStream;
version = MessagingService.getBits(header, 15, 8);
logger.debug("Version is now {}", version);
receiveMessage(input, version);
}
}
@ -153,7 +157,7 @@ public class IncomingTcpConnection extends Thread
MessagingService.instance().receive(message, id);
return message;
}
logger.info("Received connection from newer protocol version. Ignorning message.");
logger.debug("Received connection from newer protocol version {}. Ignorning message", version);
return null;
}

View File

@ -346,15 +346,15 @@ public abstract class AbstractCassandraDaemon implements CassandraDaemon
}
start();
} catch (Throwable e)
}
catch (Throwable e)
{
String msg = "Exception encountered during startup.";
logger.error(msg, e);
logger.error("Exception encountered during startup", e);
// try to warn user on stdout too, if we haven't already detached
System.out.println(msg);
e.printStackTrace();
System.out.println("Exception encountered during startup: " + e.getMessage());
System.exit(3);
}
}

View File

@ -107,7 +107,7 @@ public class GCInspector
if (previousCount == null)
previousCount = 0L;
if (count == previousCount)
if (count.equals(previousCount))
continue;
gccounts.put(gc.getName(), count);

View File

@ -79,7 +79,7 @@ public class RowRepairResolver extends AbstractRowResolver
endpoints.add(message.getFrom());
// compute maxLiveColumns to prevent short reads -- see https://issues.apache.org/jira/browse/CASSANDRA-2643
int liveColumns = cf.getLiveColumnCount();
int liveColumns = cf == null ? 0 : cf.getLiveColumnCount();
if (liveColumns > maxLiveColumns)
maxLiveColumns = liveColumns;
}

View File

@ -31,9 +31,7 @@ import javax.lang.model.type.TypeKind;
import javax.management.MBeanServer;
import javax.management.ObjectName;
import com.google.common.collect.ArrayListMultimap;
import com.google.common.collect.HashMultimap;
import com.google.common.collect.Multimap;
import com.google.common.collect.*;
import org.apache.cassandra.config.*;
import org.apache.log4j.Level;
import org.apache.commons.lang.StringUtils;
@ -44,6 +42,7 @@ import org.apache.cassandra.concurrent.DebuggableScheduledThreadPoolExecutor;
import org.apache.cassandra.concurrent.Stage;
import org.apache.cassandra.concurrent.StageManager;
import org.apache.cassandra.db.*;
import org.apache.cassandra.db.Table;
import org.apache.cassandra.db.commitlog.CommitLog;
import org.apache.cassandra.dht.*;
import org.apache.cassandra.gms.*;
@ -641,11 +640,6 @@ public class StorageService implements IEndpointStateChangeSubscriber, StorageSe
*/
public Map<Range, List<String>> getRangeToEndpointMap(String keyspace)
{
// some people just want to get a visual representation of things. Allow null and set it to the first
// non-system table.
if (keyspace == null)
keyspace = Schema.instance.getNonSystemTables().get(0);
/* All the ranges for the tokens */
Map<Range, List<String>> map = new HashMap<Range, List<String>>();
for (Map.Entry<Range,List<InetAddress>> entry : getRangeToAddressMap(keyspace).entrySet())
@ -655,6 +649,21 @@ public class StorageService implements IEndpointStateChangeSubscriber, StorageSe
return map;
}
/**
* Return the rpc address associated with an endpoint as a string.
* @param endpoint The endpoint to get rpc address for
* @return
*/
public String getRpcaddress(InetAddress endpoint)
{
if (endpoint.equals(FBUtilities.getBroadcastAddress()))
return DatabaseDescriptor.getRpcAddress().getHostAddress();
else if (Gossiper.instance.getEndpointStateForEndpoint(endpoint).getApplicationState(ApplicationState.RPC_ADDRESS) == null)
return endpoint.getHostAddress();
else
return Gossiper.instance.getEndpointStateForEndpoint(endpoint).getApplicationState(ApplicationState.RPC_ADDRESS).value;
}
/**
* for a keyspace, return the ranges and corresponding RPC addresses for a given keyspace.
* @param keyspace
@ -662,11 +671,6 @@ public class StorageService implements IEndpointStateChangeSubscriber, StorageSe
*/
public Map<Range, List<String>> getRangeToRpcaddressMap(String keyspace)
{
// some people just want to get a visual representation of things. Allow null and set it to the first
// non-system table.
if (keyspace == null)
keyspace = Schema.instance.getNonSystemTables().get(0);
/* All the ranges for the tokens */
Map<Range, List<String>> map = new HashMap<Range, List<String>>();
for (Map.Entry<Range,List<InetAddress>> entry : getRangeToAddressMap(keyspace).entrySet())
@ -674,12 +678,7 @@ public class StorageService implements IEndpointStateChangeSubscriber, StorageSe
List<String> rpcaddrs = new ArrayList<String>();
for (InetAddress endpoint: entry.getValue())
{
if (endpoint.equals(FBUtilities.getBroadcastAddress()))
rpcaddrs.add(DatabaseDescriptor.getRpcAddress().getHostAddress());
else if (Gossiper.instance.getEndpointStateForEndpoint(endpoint).getApplicationState(ApplicationState.RPC_ADDRESS) == null)
rpcaddrs.add(endpoint.getHostAddress());
else
rpcaddrs.add(Gossiper.instance.getEndpointStateForEndpoint(endpoint).getApplicationState(ApplicationState.RPC_ADDRESS).value);
rpcaddrs.add(getRpcaddress(endpoint));
}
map.put(entry.getKey(), rpcaddrs);
}
@ -704,6 +703,11 @@ public class StorageService implements IEndpointStateChangeSubscriber, StorageSe
public Map<Range, List<InetAddress>> getRangeToAddressMap(String keyspace)
{
// some people just want to get a visual representation of things. Allow null and set it to the first
// non-system table.
if (keyspace == null)
keyspace = Schema.instance.getNonSystemTables().get(0);
List<Range> ranges = getAllRanges(tokenMetadata_.sortedTokens());
return constructRangeToEndpointMap(keyspace, ranges);
}
@ -1096,10 +1100,9 @@ public class StorageService implements IEndpointStateChangeSubscriber, StorageSe
// all leaving nodes are gone.
for (Range range : affectedRanges)
{
Collection<InetAddress> currentEndpoints = strategy.calculateNaturalEndpoints(range.right, tm);
Collection<InetAddress> newEndpoints = strategy.calculateNaturalEndpoints(range.right, allLeftMetadata);
newEndpoints.removeAll(currentEndpoints);
pendingRanges.putAll(range, newEndpoints);
Set<InetAddress> currentEndpoints = ImmutableSet.copyOf(strategy.calculateNaturalEndpoints(range.right, tm));
Set<InetAddress> newEndpoints = ImmutableSet.copyOf(strategy.calculateNaturalEndpoints(range.right, allLeftMetadata));
pendingRanges.putAll(range, Sets.difference(newEndpoints, currentEndpoints));
}
// At this stage pendingRanges has been updated according to leave operations. We can
@ -2086,8 +2089,9 @@ public class StorageService implements IEndpointStateChangeSubscriber, StorageSe
for (Range toStream : rangesPerTable.left)
{
List<InetAddress> endpoints = strategy.calculateNaturalEndpoints(toStream.right, tokenMetaClone);
rangeWithEndpoints.putAll(toStream, endpoints);
Set<InetAddress> currentEndpoints = ImmutableSet.copyOf(strategy.calculateNaturalEndpoints(toStream.right, tokenMetadata_));
Set<InetAddress> newEndpoints = ImmutableSet.copyOf(strategy.calculateNaturalEndpoints(toStream.right, tokenMetaClone));
rangeWithEndpoints.putAll(toStream, Sets.difference(newEndpoints, currentEndpoints));
}
// associating table with range-to-endpoints map

View File

@ -798,6 +798,7 @@ public class CassandraServer implements Cassandra.Iface
{
Range range = entry.getKey();
List<String> endpoints = new ArrayList<String>();
List<String> rpc_endpoints = new ArrayList<String>();
List<EndpointDetails> epDetails = new ArrayList<EndpointDetails>();
for (InetAddress endpoint : entry.getValue())
@ -823,13 +824,16 @@ public class CassandraServer implements Cassandra.Iface
details.datacenter = appStateDc.value;
endpoints.add(details.host);
rpc_endpoints.add(StorageService.instance.getRpcaddress(endpoint));
if (details.port != -1 || details.datacenter != null)
epDetails.add(details);
}
ranges.add(new TokenRange(tf.toString(range.left), tf.toString(range.right), endpoints)
.setEndpoint_details(epDetails));
TokenRange tr = new TokenRange(tf.toString(range.left), tf.toString(range.right), endpoints)
.setEndpoint_details(epDetails)
.setRpc_endpoints(rpc_endpoints);
ranges.add(tr);
}
return ranges;