mirror of https://github.com/apache/cassandra
remove deprecated KsDef.replication_factor from KsMetaData
patch by jbellis; reviewed by brandonwilliams for CASSANDRA-3793
This commit is contained in:
parent
3d55a2b033
commit
f0ec9e4eaa
3
NEWS.txt
3
NEWS.txt
|
|
@ -14,6 +14,9 @@ by version X, but the inverse is not necessarily the case.)
|
|||
|
||||
Upgrading
|
||||
---------
|
||||
- The KsDef.replication_factor field (deprecated since 0.8) has
|
||||
been removed. Older clients will need to be updated to be able
|
||||
to continue to created and update keyspaces.
|
||||
- If you are running a multi datacenter setup, you should upgrade to
|
||||
the latest 1.0.x (or 0.8.x) release before upgrading. Versions
|
||||
0.8.8 and 1.0.3-1.0.5 generate cross-dc forwarding that is incompatible
|
||||
|
|
|
|||
|
|
@ -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.27.0"
|
||||
const string VERSION = "19.28.0"
|
||||
|
||||
|
||||
#
|
||||
|
|
@ -425,9 +425,6 @@ struct KsDef {
|
|||
2: required string strategy_class,
|
||||
3: optional map<string,string> strategy_options,
|
||||
|
||||
/** @deprecated */
|
||||
4: optional i32 replication_factor,
|
||||
|
||||
5: required list<CfDef> cf_defs,
|
||||
6: optional bool durable_writes=1,
|
||||
}
|
||||
|
|
|
|||
|
|
@ -17733,6 +17733,8 @@ 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);
|
||||
|
|
@ -34146,6 +34148,8 @@ 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);
|
||||
|
|
|
|||
|
|
@ -44,6 +44,6 @@ import org.slf4j.LoggerFactory;
|
|||
|
||||
public class Constants {
|
||||
|
||||
public static final String VERSION = "19.27.0";
|
||||
public static final String VERSION = "19.28.0";
|
||||
|
||||
}
|
||||
|
|
|
|||
|
|
@ -48,17 +48,12 @@ public class KsDef implements org.apache.thrift.TBase<KsDef, KsDef._Fields>, jav
|
|||
private static final org.apache.thrift.protocol.TField NAME_FIELD_DESC = new org.apache.thrift.protocol.TField("name", org.apache.thrift.protocol.TType.STRING, (short)1);
|
||||
private static final org.apache.thrift.protocol.TField STRATEGY_CLASS_FIELD_DESC = new org.apache.thrift.protocol.TField("strategy_class", org.apache.thrift.protocol.TType.STRING, (short)2);
|
||||
private static final org.apache.thrift.protocol.TField STRATEGY_OPTIONS_FIELD_DESC = new org.apache.thrift.protocol.TField("strategy_options", org.apache.thrift.protocol.TType.MAP, (short)3);
|
||||
private static final org.apache.thrift.protocol.TField REPLICATION_FACTOR_FIELD_DESC = new org.apache.thrift.protocol.TField("replication_factor", org.apache.thrift.protocol.TType.I32, (short)4);
|
||||
private static final org.apache.thrift.protocol.TField CF_DEFS_FIELD_DESC = new org.apache.thrift.protocol.TField("cf_defs", org.apache.thrift.protocol.TType.LIST, (short)5);
|
||||
private static final org.apache.thrift.protocol.TField DURABLE_WRITES_FIELD_DESC = new org.apache.thrift.protocol.TField("durable_writes", org.apache.thrift.protocol.TType.BOOL, (short)6);
|
||||
|
||||
public String name; // required
|
||||
public String strategy_class; // required
|
||||
public Map<String,String> strategy_options; // required
|
||||
/**
|
||||
* @deprecated
|
||||
*/
|
||||
public int replication_factor; // required
|
||||
public List<CfDef> cf_defs; // required
|
||||
public boolean durable_writes; // required
|
||||
|
||||
|
|
@ -67,10 +62,6 @@ public class KsDef implements org.apache.thrift.TBase<KsDef, KsDef._Fields>, jav
|
|||
NAME((short)1, "name"),
|
||||
STRATEGY_CLASS((short)2, "strategy_class"),
|
||||
STRATEGY_OPTIONS((short)3, "strategy_options"),
|
||||
/**
|
||||
* @deprecated
|
||||
*/
|
||||
REPLICATION_FACTOR((short)4, "replication_factor"),
|
||||
CF_DEFS((short)5, "cf_defs"),
|
||||
DURABLE_WRITES((short)6, "durable_writes");
|
||||
|
||||
|
|
@ -93,8 +84,6 @@ public class KsDef implements org.apache.thrift.TBase<KsDef, KsDef._Fields>, jav
|
|||
return STRATEGY_CLASS;
|
||||
case 3: // STRATEGY_OPTIONS
|
||||
return STRATEGY_OPTIONS;
|
||||
case 4: // REPLICATION_FACTOR
|
||||
return REPLICATION_FACTOR;
|
||||
case 5: // CF_DEFS
|
||||
return CF_DEFS;
|
||||
case 6: // DURABLE_WRITES
|
||||
|
|
@ -139,9 +128,8 @@ public class KsDef implements org.apache.thrift.TBase<KsDef, KsDef._Fields>, jav
|
|||
}
|
||||
|
||||
// isset id assignments
|
||||
private static final int __REPLICATION_FACTOR_ISSET_ID = 0;
|
||||
private static final int __DURABLE_WRITES_ISSET_ID = 1;
|
||||
private BitSet __isset_bit_vector = new BitSet(2);
|
||||
private static final int __DURABLE_WRITES_ISSET_ID = 0;
|
||||
private BitSet __isset_bit_vector = new BitSet(1);
|
||||
|
||||
public static final Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
|
||||
static {
|
||||
|
|
@ -154,8 +142,6 @@ public class KsDef implements org.apache.thrift.TBase<KsDef, KsDef._Fields>, jav
|
|||
new org.apache.thrift.meta_data.MapMetaData(org.apache.thrift.protocol.TType.MAP,
|
||||
new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING),
|
||||
new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING))));
|
||||
tmpMap.put(_Fields.REPLICATION_FACTOR, new org.apache.thrift.meta_data.FieldMetaData("replication_factor", org.apache.thrift.TFieldRequirementType.OPTIONAL,
|
||||
new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.I32)));
|
||||
tmpMap.put(_Fields.CF_DEFS, new org.apache.thrift.meta_data.FieldMetaData("cf_defs", org.apache.thrift.TFieldRequirementType.REQUIRED,
|
||||
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, CfDef.class))));
|
||||
|
|
@ -208,7 +194,6 @@ public class KsDef implements org.apache.thrift.TBase<KsDef, KsDef._Fields>, jav
|
|||
}
|
||||
this.strategy_options = __this__strategy_options;
|
||||
}
|
||||
this.replication_factor = other.replication_factor;
|
||||
if (other.isSetCf_defs()) {
|
||||
List<CfDef> __this__cf_defs = new ArrayList<CfDef>();
|
||||
for (CfDef other_element : other.cf_defs) {
|
||||
|
|
@ -228,8 +213,6 @@ public class KsDef implements org.apache.thrift.TBase<KsDef, KsDef._Fields>, jav
|
|||
this.name = null;
|
||||
this.strategy_class = null;
|
||||
this.strategy_options = null;
|
||||
setReplication_factorIsSet(false);
|
||||
this.replication_factor = 0;
|
||||
this.cf_defs = null;
|
||||
this.durable_writes = true;
|
||||
|
||||
|
|
@ -318,35 +301,6 @@ public class KsDef implements org.apache.thrift.TBase<KsDef, KsDef._Fields>, jav
|
|||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* @deprecated
|
||||
*/
|
||||
public int getReplication_factor() {
|
||||
return this.replication_factor;
|
||||
}
|
||||
|
||||
/**
|
||||
* @deprecated
|
||||
*/
|
||||
public KsDef setReplication_factor(int replication_factor) {
|
||||
this.replication_factor = replication_factor;
|
||||
setReplication_factorIsSet(true);
|
||||
return this;
|
||||
}
|
||||
|
||||
public void unsetReplication_factor() {
|
||||
__isset_bit_vector.clear(__REPLICATION_FACTOR_ISSET_ID);
|
||||
}
|
||||
|
||||
/** Returns true if field replication_factor is set (has been assigned a value) and false otherwise */
|
||||
public boolean isSetReplication_factor() {
|
||||
return __isset_bit_vector.get(__REPLICATION_FACTOR_ISSET_ID);
|
||||
}
|
||||
|
||||
public void setReplication_factorIsSet(boolean value) {
|
||||
__isset_bit_vector.set(__REPLICATION_FACTOR_ISSET_ID, value);
|
||||
}
|
||||
|
||||
public int getCf_defsSize() {
|
||||
return (this.cf_defs == null) ? 0 : this.cf_defs.size();
|
||||
}
|
||||
|
|
@ -435,14 +389,6 @@ public class KsDef implements org.apache.thrift.TBase<KsDef, KsDef._Fields>, jav
|
|||
}
|
||||
break;
|
||||
|
||||
case REPLICATION_FACTOR:
|
||||
if (value == null) {
|
||||
unsetReplication_factor();
|
||||
} else {
|
||||
setReplication_factor((Integer)value);
|
||||
}
|
||||
break;
|
||||
|
||||
case CF_DEFS:
|
||||
if (value == null) {
|
||||
unsetCf_defs();
|
||||
|
|
@ -473,9 +419,6 @@ public class KsDef implements org.apache.thrift.TBase<KsDef, KsDef._Fields>, jav
|
|||
case STRATEGY_OPTIONS:
|
||||
return getStrategy_options();
|
||||
|
||||
case REPLICATION_FACTOR:
|
||||
return Integer.valueOf(getReplication_factor());
|
||||
|
||||
case CF_DEFS:
|
||||
return getCf_defs();
|
||||
|
||||
|
|
@ -499,8 +442,6 @@ public class KsDef implements org.apache.thrift.TBase<KsDef, KsDef._Fields>, jav
|
|||
return isSetStrategy_class();
|
||||
case STRATEGY_OPTIONS:
|
||||
return isSetStrategy_options();
|
||||
case REPLICATION_FACTOR:
|
||||
return isSetReplication_factor();
|
||||
case CF_DEFS:
|
||||
return isSetCf_defs();
|
||||
case DURABLE_WRITES:
|
||||
|
|
@ -549,15 +490,6 @@ public class KsDef implements org.apache.thrift.TBase<KsDef, KsDef._Fields>, jav
|
|||
return false;
|
||||
}
|
||||
|
||||
boolean this_present_replication_factor = true && this.isSetReplication_factor();
|
||||
boolean that_present_replication_factor = true && that.isSetReplication_factor();
|
||||
if (this_present_replication_factor || that_present_replication_factor) {
|
||||
if (!(this_present_replication_factor && that_present_replication_factor))
|
||||
return false;
|
||||
if (this.replication_factor != that.replication_factor)
|
||||
return false;
|
||||
}
|
||||
|
||||
boolean this_present_cf_defs = true && this.isSetCf_defs();
|
||||
boolean that_present_cf_defs = true && that.isSetCf_defs();
|
||||
if (this_present_cf_defs || that_present_cf_defs) {
|
||||
|
|
@ -598,11 +530,6 @@ public class KsDef implements org.apache.thrift.TBase<KsDef, KsDef._Fields>, jav
|
|||
if (present_strategy_options)
|
||||
builder.append(strategy_options);
|
||||
|
||||
boolean present_replication_factor = true && (isSetReplication_factor());
|
||||
builder.append(present_replication_factor);
|
||||
if (present_replication_factor)
|
||||
builder.append(replication_factor);
|
||||
|
||||
boolean present_cf_defs = true && (isSetCf_defs());
|
||||
builder.append(present_cf_defs);
|
||||
if (present_cf_defs)
|
||||
|
|
@ -654,16 +581,6 @@ public class KsDef implements org.apache.thrift.TBase<KsDef, KsDef._Fields>, jav
|
|||
return lastComparison;
|
||||
}
|
||||
}
|
||||
lastComparison = Boolean.valueOf(isSetReplication_factor()).compareTo(typedOther.isSetReplication_factor());
|
||||
if (lastComparison != 0) {
|
||||
return lastComparison;
|
||||
}
|
||||
if (isSetReplication_factor()) {
|
||||
lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.replication_factor, typedOther.replication_factor);
|
||||
if (lastComparison != 0) {
|
||||
return lastComparison;
|
||||
}
|
||||
}
|
||||
lastComparison = Boolean.valueOf(isSetCf_defs()).compareTo(typedOther.isSetCf_defs());
|
||||
if (lastComparison != 0) {
|
||||
return lastComparison;
|
||||
|
|
@ -734,14 +651,6 @@ public class KsDef implements org.apache.thrift.TBase<KsDef, KsDef._Fields>, jav
|
|||
org.apache.thrift.protocol.TProtocolUtil.skip(iprot, field.type);
|
||||
}
|
||||
break;
|
||||
case 4: // REPLICATION_FACTOR
|
||||
if (field.type == org.apache.thrift.protocol.TType.I32) {
|
||||
this.replication_factor = iprot.readI32();
|
||||
setReplication_factorIsSet(true);
|
||||
} else {
|
||||
org.apache.thrift.protocol.TProtocolUtil.skip(iprot, field.type);
|
||||
}
|
||||
break;
|
||||
case 5: // CF_DEFS
|
||||
if (field.type == org.apache.thrift.protocol.TType.LIST) {
|
||||
{
|
||||
|
|
@ -808,11 +717,6 @@ public class KsDef implements org.apache.thrift.TBase<KsDef, KsDef._Fields>, jav
|
|||
oprot.writeFieldEnd();
|
||||
}
|
||||
}
|
||||
if (isSetReplication_factor()) {
|
||||
oprot.writeFieldBegin(REPLICATION_FACTOR_FIELD_DESC);
|
||||
oprot.writeI32(this.replication_factor);
|
||||
oprot.writeFieldEnd();
|
||||
}
|
||||
if (this.cf_defs != null) {
|
||||
oprot.writeFieldBegin(CF_DEFS_FIELD_DESC);
|
||||
{
|
||||
|
|
@ -864,12 +768,6 @@ public class KsDef implements org.apache.thrift.TBase<KsDef, KsDef._Fields>, jav
|
|||
}
|
||||
first = false;
|
||||
}
|
||||
if (isSetReplication_factor()) {
|
||||
if (!first) sb.append(", ");
|
||||
sb.append("replication_factor:");
|
||||
sb.append(this.replication_factor);
|
||||
first = false;
|
||||
}
|
||||
if (!first) sb.append(", ");
|
||||
sb.append("cf_defs:");
|
||||
if (this.cf_defs == null) {
|
||||
|
|
|
|||
|
|
@ -1113,9 +1113,6 @@ public class CliClient
|
|||
private KsDef updateKsDefAttributes(Tree statement, KsDef ksDefToUpdate)
|
||||
{
|
||||
KsDef ksDef = new KsDef(ksDefToUpdate);
|
||||
// server helpfully sets deprecated replication factor when it sends a KsDef back, for older clients.
|
||||
// we need to unset that on the new KsDef we create to avoid being treated as a legacy client in return.
|
||||
ksDef.unsetReplication_factor();
|
||||
|
||||
// removing all column definitions - thrift system_update_keyspace method requires that
|
||||
ksDef.setCf_defs(new LinkedList<CfDef>());
|
||||
|
|
|
|||
|
|
@ -88,23 +88,6 @@ public final class KSMetaData
|
|||
return new KSMetaData(name, strategyClass, strategyOptions, false, Arrays.asList(cfDefs));
|
||||
}
|
||||
|
||||
public static Map<String, String> forwardsCompatibleOptions(KsDef ks_def)
|
||||
{
|
||||
Map<String, String> options;
|
||||
options = ks_def.strategy_options == null
|
||||
? new HashMap<String, String>()
|
||||
: new HashMap<String, String>(ks_def.strategy_options);
|
||||
maybeAddReplicationFactor(options, ks_def.strategy_class, ks_def.isSetReplication_factor() ? ks_def.replication_factor : null);
|
||||
return options;
|
||||
}
|
||||
|
||||
// TODO remove this for 1.0
|
||||
private static void maybeAddReplicationFactor(Map<String, String> options, String cls, Integer rf)
|
||||
{
|
||||
if (rf != null && (cls.endsWith("SimpleStrategy") || cls.endsWith("OldNetworkTopologyStrategy")))
|
||||
options.put("replication_factor", rf.toString());
|
||||
}
|
||||
|
||||
public int hashCode()
|
||||
{
|
||||
return name.hashCode();
|
||||
|
|
@ -172,7 +155,6 @@ public final class KSMetaData
|
|||
strategyOptions.put(name, e.getValue().toString());
|
||||
}
|
||||
}
|
||||
maybeAddReplicationFactor(strategyOptions, ks.strategy_class.toString(), ks.replication_factor);
|
||||
|
||||
int cfsz = ks.cf_defs.size();
|
||||
List<CFMetaData> cfMetaData = new ArrayList<CFMetaData>(cfsz);
|
||||
|
|
@ -200,7 +182,7 @@ public final class KSMetaData
|
|||
{
|
||||
return new KSMetaData(ksd.name,
|
||||
AbstractReplicationStrategy.getClass(ksd.strategy_class),
|
||||
forwardsCompatibleOptions(ksd),
|
||||
ksd.strategy_options == null ? Collections.<String, String>emptyMap() : ksd.strategy_options,
|
||||
ksd.durable_writes,
|
||||
Arrays.asList(cfDefs));
|
||||
}
|
||||
|
|
@ -212,8 +194,6 @@ public final class KSMetaData
|
|||
cfDefs.add(cfm.toThrift());
|
||||
KsDef ksdef = new KsDef(name, strategyClass.getName(), cfDefs);
|
||||
ksdef.setStrategy_options(strategyOptions);
|
||||
if (strategyOptions != null && strategyOptions.containsKey("replication_factor"))
|
||||
ksdef.setReplication_factor(Integer.parseInt(strategyOptions.get("replication_factor")));
|
||||
ksdef.setDurable_writes(durableWrites);
|
||||
|
||||
return ksdef;
|
||||
|
|
|
|||
|
|
@ -722,7 +722,7 @@ public class ThriftValidation
|
|||
|
||||
// Attempt to instantiate the ARS, which will throw a ConfigException if
|
||||
// the strategy_options aren't fully formed or if the ARS Classname is invalid.
|
||||
Map<String, String> options = KSMetaData.forwardsCompatibleOptions(ks_def);
|
||||
Map<String, String> options = ks_def.strategy_options == null ? Collections.<String, String>emptyMap() : ks_def.strategy_options;
|
||||
TokenMetadata tmd = StorageService.instance.getTokenMetadata();
|
||||
IEndpointSnitch eps = DatabaseDescriptor.getEndpointSnitch();
|
||||
Class<? extends AbstractReplicationStrategy> cls = AbstractReplicationStrategy.getClass(ks_def.strategy_class);
|
||||
|
|
|
|||
Loading…
Reference in New Issue