Leveled Compaction Strategy (LCS) causes load increase, especially when running on Hard Disk Drive (HDD). This is the default compacting strategy on builds older than 2016-12-08.
With the increase of usage, Cassandra is no longer able to keep up with the compaction. As a result, you may be slowly running out of disk space for analytics.
Try the method described in Contrail Analytics DB data purge .
If that does not help, and you are running a build older than 2016-12-08, change the compacting strategy manually, as you are affected by the performance limitation described in LP1648252 .
cql-truncate-table-analytics
cql-alter-compaction-strategy-analytics
Run service supervisor-analytics stop on all nodes
service supervisor-analytics stop
Truncate analytics table and alter compaction strategy
cqlsh <1st-database-node-ip> -f cql-truncate-table-analytics
nodetool status
cqlsh <1st-database-node-ip> -f cql-alter-compaction-strategy-analytics
cqlsh <1st-database-node-ip>
describe keyspace "ContrailAnalyticsCql"
concurrent_compactors
Change concurrent_compactors to 4 in /etc/cassandra/cassandra.yaml on all nodes
Rolling restart of cassandra
nodetool drain
service contrail-database restart
service supervisor-analytics start on all nodes
service supervisor-analytics start
truncate table "ContrailAnalyticsCql".flowrecordtable; truncate table "ContrailAnalyticsCql".objectvaluetable; truncate table "ContrailAnalyticsCql".messagetabletimestamp; truncate table "ContrailAnalyticsCql".statstablebyu64tagv3; truncate table "ContrailAnalyticsCql".systemobjecttable; truncate table "ContrailAnalyticsCql".objecttable; truncate table "ContrailAnalyticsCql".messagetable; truncate table "ContrailAnalyticsCql".flowtablesvnsipver2; truncate table "ContrailAnalyticsCql".flowtablevrouterver2; truncate table "ContrailAnalyticsCql".messagetablemessagetype; truncate table "ContrailAnalyticsCql".messagetablecategory; truncate table "ContrailAnalyticsCql".messagetablesource; truncate table "ContrailAnalyticsCql".flowtableprotdpver2; truncate table "ContrailAnalyticsCql".statstablebyu64u64tagv3; truncate table "ContrailAnalyticsCql".statstablebystrtagv3; truncate table "ContrailAnalyticsCql".messagetablemoduleid; truncate table "ContrailAnalyticsCql".statstablebydbltagv3; truncate table "ContrailAnalyticsCql".messagetablekeyword; truncate table "ContrailAnalyticsCql".statstablebyu64strtagv3; truncate table "ContrailAnalyticsCql".statstablebystrstrtagv3; truncate table "ContrailAnalyticsCql".statstablebystru64tagv3; truncate table "ContrailAnalyticsCql".flowtabledvndipver2; truncate table "ContrailAnalyticsCql".flowtableprotspver2;
alter table "ContrailAnalyticsCql".flowrecordtable WITH compaction = {'class': 'org.apache.cassandra.db.compaction.DateTieredCompactionStrategy'}; alter table "ContrailAnalyticsCql".objectvaluetable WITH compaction = {'class': 'org.apache.cassandra.db.compaction.SizeTieredCompactionStrategy'}; alter table "ContrailAnalyticsCql".messagetabletimestamp WITH compaction = {'class': 'org.apache.cassandra.db.compaction.SizeTieredCompactionStrategy'}; alter table "ContrailAnalyticsCql".statstablebyu64tagv3 WITH compaction = {'class': 'org.apache.cassandra.db.compaction.SizeTieredCompactionStrategy'}; alter table "ContrailAnalyticsCql".systemobjecttable WITH compaction = {'class': 'org.apache.cassandra.db.compaction.SizeTieredCompactionStrategy'}; alter table "ContrailAnalyticsCql".objecttable WITH compaction = {'class': 'org.apache.cassandra.db.compaction.SizeTieredCompactionStrategy'}; alter table "ContrailAnalyticsCql".messagetable WITH compaction = {'class': 'org.apache.cassandra.db.compaction.SizeTieredCompactionStrategy'}; alter table "ContrailAnalyticsCql".flowtablesvnsipver2 WITH compaction = {'class': 'org.apache.cassandra.db.compaction.DateTieredCompactionStrategy'}; alter table "ContrailAnalyticsCql".flowtablevrouterver2 WITH compaction = {'class': 'org.apache.cassandra.db.compaction.DateTieredCompactionStrategy'}; alter table "ContrailAnalyticsCql".messagetablemessagetype WITH compaction = {'class': 'org.apache.cassandra.db.compaction.SizeTieredCompactionStrategy'}; alter table "ContrailAnalyticsCql".messagetablecategory WITH compaction = {'class': 'org.apache.cassandra.db.compaction.SizeTieredCompactionStrategy'}; alter table "ContrailAnalyticsCql".messagetablesource WITH compaction = {'class': 'org.apache.cassandra.db.compaction.SizeTieredCompactionStrategy'}; alter table "ContrailAnalyticsCql".flowtableprotdpver2 WITH compaction = {'class': 'org.apache.cassandra.db.compaction.DateTieredCompactionStrategy'}; alter table "ContrailAnalyticsCql".statstablebyu64u64tagv3 WITH compaction = {'class': 'org.apache.cassandra.db.compaction.SizeTieredCompactionStrategy'}; alter table "ContrailAnalyticsCql".statstablebystrtagv3 WITH compaction = {'class': 'org.apache.cassandra.db.compaction.SizeTieredCompactionStrategy'}; alter table "ContrailAnalyticsCql".messagetablemoduleid WITH compaction = {'class': 'org.apache.cassandra.db.compaction.SizeTieredCompactionStrategy'}; alter table "ContrailAnalyticsCql".statstablebydbltagv3 WITH compaction = {'class': 'org.apache.cassandra.db.compaction.SizeTieredCompactionStrategy'}; alter table "ContrailAnalyticsCql".messagetablekeyword WITH compaction = {'class': 'org.apache.cassandra.db.compaction.SizeTieredCompactionStrategy'}; alter table "ContrailAnalyticsCql".statstablebyu64strtagv3 WITH compaction = {'class': 'org.apache.cassandra.db.compaction.SizeTieredCompactionStrategy'}; alter table "ContrailAnalyticsCql".statstablebystrstrtagv3 WITH compaction = {'class': 'org.apache.cassandra.db.compaction.SizeTieredCompactionStrategy'}; alter table "ContrailAnalyticsCql".statstablebystru64tagv3 WITH compaction = {'class': 'org.apache.cassandra.db.compaction.SizeTieredCompactionStrategy'}; alter table "ContrailAnalyticsCql".flowtabledvndipver2 WITH compaction = {'class': 'org.apache.cassandra.db.compaction.DateTieredCompactionStrategy'}; alter table "ContrailAnalyticsCql".flowtableprotspver2 WITH compaction = {'class': 'org.apache.cassandra.db.compaction.DateTieredCompactionStrategy'};
DateTieredCompactionStrategy
read_repair_chance
alter table "ContrailAnalyticsCql".flowrecordtable WITH read_repair_chance = 0.0; alter table "ContrailAnalyticsCql".flowtablesvnsipver2 WITH read_repair_chance = 0.0; alter table "ContrailAnalyticsCql".flowtablevrouterver2 WITH read_repair_chance = 0.0; alter table "ContrailAnalyticsCql".flowtableprotdpver2 WITH read_repair_chance = 0.0; alter table "ContrailAnalyticsCql".flowtabledvndipver2 WITH read_repair_chance = 0.0; alter table "ContrailAnalyticsCql".flowtableprotspver2 WITH read_repair_chance = 0.0;
nodetool clearsnapshot"