Need to use Math.ceil() to ensure that we start at least one TransactionCleaner thread