blob: ff4897e6b904c46d87b3b618db8c9740f5aafc93 [file] [log] [blame]
/**
* Licensed to the Apache Software Foundation (ASF) under one
* or more contributor license agreements. See the NOTICE file
* distributed with this work for additional information
* regarding copyright ownership. The ASF licenses this file
* to you under the Apache License, Version 2.0 (the
* "License"); you may not use this file except in compliance
* with the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
/**
* Cassandra internal/internode communication protocol
*/
@namespace("org.apache.cassandra")
protocol InterNode {
@aliases(["org.apache.cassandra.config.avro.IndexType"])
@namespace("org.apache.cassandra.db.migration.avro")
enum IndexType {
KEYS
}
@aliases(["org.apache.cassandra.config.avro.ColumnDef"])
@namespace("org.apache.cassandra.db.migration.avro")
record ColumnDef {
bytes name;
string validation_class;
union { IndexType, null } index_type;
union { string, null } index_name;
}
@aliases(["org.apache.cassandra.config.avro.CfDef"])
@namespace("org.apache.cassandra.db.migration.avro")
record CfDef {
string keyspace;
string name;
union { string, null } column_type;
union { string, null } comparator_type;
union { string, null } subcomparator_type;
union { string, null } comment;
union { double, null } row_cache_size;
union { double, null } key_cache_size;
union { double, null } read_repair_chance;
boolean replicate_on_write = false;
union { int, null } gc_grace_seconds;
union { null, string } default_validation_class = null;
union { null, string } key_validation_class = null;
union { null, int } min_compaction_threshold = null;
union { null, int } max_compaction_threshold = null;
union { int, null } row_cache_save_period_in_seconds = 0;
union { int, null } key_cache_save_period_in_seconds = 3600;
union { int, null } memtable_flush_after_mins = 60;
union { null, int } memtable_throughput_in_mb = null;
union { null, double} memtable_operations_in_millions = null;
union { null, double} merge_shards_chance = null;
union { int, null } id;
union { array<ColumnDef>, null } column_metadata;
union { string, null } row_cache_provider = "org.apache.cassandra.cache.ConcurrentLinkedHashCacheProvider";
union { null, bytes } key_alias = null;
}
@aliases(["org.apache.cassandra.config.avro.KsDef"])
@namespace("org.apache.cassandra.db.migration.avro")
record KsDef {
string name;
string strategy_class;
union{ map<string>, null } strategy_options;
union{ int, null } replication_factor;
array<CfDef> cf_defs;
boolean durable_writes = true;
}
@namespace("org.apache.cassandra.utils.avro")
fixed UUID(16);
@namespace("org.apache.cassandra.db.migration.avro")
record AddColumnFamily {
CfDef cf;
}
@namespace("org.apache.cassandra.db.migration.avro")
record AddKeyspace {
KsDef ks;
}
@namespace("org.apache.cassandra.db.migration.avro")
record DropColumnFamily {
string ksname;
string cfname;
}
@namespace("org.apache.cassandra.db.migration.avro")
record DropKeyspace {
string ksname;
}
@namespace("org.apache.cassandra.db.migration.avro")
record RenameColumnFamily {
string ksname;
int cfid;
string old_cfname;
string new_cfname;
}
@namespace("org.apache.cassandra.db.migration.avro")
record RenameKeyspace {
string old_ksname;
string new_ksname;
}
@namespace("org.apache.cassandra.db.migration.avro")
record UpdateKeyspace {
KsDef oldKs;
KsDef newKs;
}
@namespace("org.apache.cassandra.db.migration.avro")
record UpdateColumnFamily {
CfDef metadata;
}
@namespace("org.apache.cassandra.db.migration.avro")
record Migration {
org.apache.cassandra.utils.avro.UUID old_version;
org.apache.cassandra.utils.avro.UUID new_version;
bytes row_mutation;
string classname;
union { AddColumnFamily,DropColumnFamily,RenameColumnFamily,AddKeyspace,DropKeyspace,RenameKeyspace,UpdateKeyspace,UpdateColumnFamily } migration;
}
}