nikhilkumawat03 commented on code in PR #4228: URL: https://github.com/apache/cassandra/pull/4228#discussion_r2194081948
########## src/java/org/apache/cassandra/db/compaction/LeveledCompactionStrategy.java: ########## @@ -600,6 +606,22 @@ public static Map<String, String> validateOptions(Map<String, String> options) t throw new ConfigurationException(String.format("%s is not a parsable int (base10) for %s", size, LEVEL_FANOUT_SIZE_OPTION), ex); } + // Validate max Bytes for a level + try + { + long maxSSTableSizeInBytes = Math.multiplyExact(ssSize, 1024L * 1024L); // Convert MB to Bytes + BigInteger fanoutPower = BigInteger.valueOf(fanoutSize).pow(MAX_LEVEL_COUNT); + BigInteger maxBytes = fanoutPower.multiply(BigInteger.valueOf(maxSSTableSizeInBytes)); + BigInteger longMaxValue = BigInteger.valueOf(Long.MAX_VALUE); + if (maxBytes.compareTo(longMaxValue) > 0) + throw new ConfigurationException(String.format("At most %s bytes may be in a compaction level; " + + "your maxSSTableSize must be absurdly high to compute %s", Long.MAX_VALUE, maxBytes)); + } + catch (ArithmeticException ex) + { + throw new ConfigurationException(String.format("sstable_size_in_mb=%d is too large; resulting bytes exceed Long.MAX_VALUE (%d)", ssSize, Long.MAX_VALUE), ex); Review Comment: int ssSize = Integer.parseInt(size); int fanoutSize = Integer.parseInt(levelFanoutSize); For above two statements, In case size or levelFanoutSize statement is not able to parse the 'Integer.parseInt(size)' in this case we are catching NumberFormatException and throwing ConfigurationException respectively. In above case the code is only catching ConfigurationException ex -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. To unsubscribe, e-mail: pr-unsubscr...@cassandra.apache.org For queries about this service, please contact Infrastructure at: us...@infra.apache.org --------------------------------------------------------------------- To unsubscribe, e-mail: pr-unsubscr...@cassandra.apache.org For additional commands, e-mail: pr-h...@cassandra.apache.org