Hi , Recently we are seeing huge batches and log prints as below in c* logs
*Batch of prepared statements for [ks1.cf1] is of size 413350, exceeding specified threshold of 5120 by 362150* Along with the Column Family name (as found in above log print) , we would like to know the partion key , cluster column values(along with their names) too , so that it would be easy to trace out the user who is inserting such huge batches. I tried to see code base of c* as below, but could not figure out how to get values of partition keys , values of cluster columns. :( Can some one please help me out... * public static void verifyBatchSize(Iterable<ColumnFamily> cfs)* * {* * long size = 0;* * long warnThreshold = DatabaseDescriptor.getBatchSizeWarnThreshold();* * for (ColumnFamily cf : cfs)* * size += cf.dataSize();* * if (size > warnThreshold)* * {* * Set<String> ksCfPairs = new HashSet<>();* * for (ColumnFamily cf : cfs)* * {* * ksCfPairs.add(String.format("%s.%s size=%s", cf.metadata().ksName, cf.metadata().cfName , cf.dataSize()));* * Iterator<CellName> cns = cf.getColumnNames().iterator();* * CellName cn = cns.next();* * cn.dataSize();* * }* * String format = "Batch of prepared statements for {} is of size {}, exceeding specified threshold of {} by {}.";* * logger.warn(format, ksCfPairs, size, warnThreshold, size - warnThreshold);* * }* * }* Thanks TechPyaasa