} else {
// get from random set of rows
// note: as a simplification we may return less messages than length if not all rows contain messages
RandomNumberCollection rc = new RandomNumberCollection(numberPartitions);
int numFound = 0;
for (int i = 0; i < numberPartitions && numFound < length; i++) {
int partition = rc.getNext();
String key = queueHash + "_" + shard + "_" + partition;
CmbColumnSlice<CmbComposite, String> columnSlice = cassandraHandler.readColumnSlice(
AbstractDurablePersistence.CQS_KEYSPACE, COLUMN_FAMILY_PARTITIONED_QUEUE_MESSAGES, key, null, null, 1,
CMB_SERIALIZER.STRING_SERIALIZER,