use of org.apache.samza.system.SystemStream in project samza by apache.
the class DefaultChooserConfig method getPriorityStreams.
/**
* Gets the priority of every SystemStream for which the priority
* was explicitly configured with a value >=0.
*
* @return the explicitly-configured stream priorities as a map from
* SystemStream to the configured priority value. Streams that
* were not explicitly configured with a priority are not returned.
*/
public Map<SystemStream, Integer> getPriorityStreams() {
Set<SystemStream> allInputs = taskConfigJava.getAllInputStreams();
Map<SystemStream, Integer> priorityStreams = new HashMap<>();
for (SystemStream systemStream : allInputs) {
int priority = streamConfig.getPriority(systemStream);
if (priority >= 0) {
priorityStreams.put(systemStream, priority);
}
}
return Collections.unmodifiableMap(priorityStreams);
}
use of org.apache.samza.system.SystemStream in project samza by apache.
the class TaskConfigJava method getBroadcastSystemStreamPartitions.
/**
* Get the systemStreamPartitions of the broadcast stream. Specifying
* one partition for one stream or a range of the partitions for one
* stream is allowed.
*
* @return a Set of SystemStreamPartitions
*/
public Set<SystemStreamPartition> getBroadcastSystemStreamPartitions() {
HashSet<SystemStreamPartition> systemStreamPartitionSet = new HashSet<SystemStreamPartition>();
List<String> systemStreamPartitions = getList(BROADCAST_INPUT_STREAMS, Collections.<String>emptyList());
for (String systemStreamPartition : systemStreamPartitions) {
int hashPosition = systemStreamPartition.indexOf("#");
if (hashPosition == -1) {
throw new IllegalArgumentException("incorrect format in " + systemStreamPartition + ". Broadcast stream names should be in the form 'system.stream#partitionId' or 'system.stream#[partitionN-partitionM]'");
} else {
String systemStreamName = systemStreamPartition.substring(0, hashPosition);
String partitionSegment = systemStreamPartition.substring(hashPosition + 1);
SystemStream systemStream = Util.getSystemStreamFromNames(systemStreamName);
if (Pattern.matches(BROADCAST_STREAM_PATTERN, partitionSegment)) {
systemStreamPartitionSet.add(new SystemStreamPartition(systemStream, new Partition(Integer.valueOf(partitionSegment))));
} else {
if (Pattern.matches(BROADCAST_STREAM_RANGE_PATTERN, partitionSegment)) {
int partitionStart = Integer.valueOf(partitionSegment.substring(1, partitionSegment.lastIndexOf("-")));
int partitionEnd = Integer.valueOf(partitionSegment.substring(partitionSegment.lastIndexOf("-") + 1, partitionSegment.indexOf("]")));
if (partitionStart > partitionEnd) {
LOGGER.warn("The starting partition in stream " + systemStream.toString() + " is bigger than the ending Partition. No partition is added");
}
for (int i = partitionStart; i <= partitionEnd; i++) {
systemStreamPartitionSet.add(new SystemStreamPartition(systemStream, new Partition(i)));
}
} else {
throw new IllegalArgumentException("incorrect format in " + systemStreamPartition + ". Broadcast stream names should be in the form 'system.stream#partitionId' or 'system.stream#[partitionN-partitionM]'");
}
}
}
}
return systemStreamPartitionSet;
}
Aggregations