Hi We have a table that stores metrics but does not have TTL, it is partitioned by metrics_source, metric_type and clustered by a timestamp. we are currently using the following TWCS compaction with the settings below. {'class': 'org.apache.cassandra.db.compaction.TimeWindowCompactionStrategy', 'compaction_window_size': '7', 'compaction_window_unit': 'DAYS', 'max_threshold': '32', 'min_threshold': '4'}
Some relevant info from tablestats and table historgram, currently the performance is sufficint for our usecase. SSTable count: 529 Max SSTable size: 15.577GiB Local read/write ratio: 0.75296SSTables Time Window: 7 DAYS, max duration: 3707 days 4 hours 58 minutes 47 seconds Local read count: 3823721 Local read latency: 2.129 ms Local write count: 5078241 Local write latency: 0.011 ms Percentile Read Latency Write Latency SSTables Partition Size Cell Count 50% 1597.00 10.00 12.00 17084 1331 75% 1916.00 12.00 20.00 29521 2299 95% 3973.00 29.00 29.00 73457 5722 98% 9887.00 35.00 29.00 126934 9887 99% 14237.00 50.00 35.00 182785 11864 Min 373.00 2.00 0.00 36 0 Max 29521.00 446.00 50.00 8409007 654949 We have recently upgraded to cassandra 5.0.5 and I have been reading about UCS, since our data does not have TTL we are accumulating sstables with time. 1. Would you recommend migrating to UCS is it production ready and safe to use? 2. My scenario has mixed worload, a constant wrote and occasiouanl bursts of read. Would UCS result in comparable performance or better to TWCS? 3. Because my data has no TLL, Is there an option in UCS to use a time based compaction in the lower tiers like TWCS and a SizeBased in higher tier to have the best of both worlds? 4. Which UCS settings do you think would be a good starting point to experiemnt. Best regards, Isaeed Mohanna