in myriad-scheduler/src/main/java/org/apache/myriad/scheduler/resource/RangeResource.java [124:157]
private List<Long> getRandomValues(int size) {
//can improve this
List<Integer> sample = new ArrayList<>(size);
while (sample.size() < size) {
int rand = random.nextInt(numDefaultValues.intValue());
if (!sample.contains(rand)) {
sample.add(rand);
}
}
Collections.sort(sample);
long location = 0;
long lastLocation = 0;
int j = 0;
List<Long> elems = new ArrayList<>();
for (Range range : ranges) {
if (!range.role) {
long tb = range.begin;
long te = range.end;
location += te - tb + 1;
for (int i = j; i < sample.size(); i++) {
long val = sample.get(i);
if (val < location) {
elems.add(tb + val - lastLocation);
j++;
} else {
lastLocation = location;
break;
}
}
}
}
return elems;
}