25 lines
1.3 KiB
Markdown
25 lines
1.3 KiB
Markdown
# UNDF: UNDF-2026-000000072
|
||
# flink-deeper — PipelinedRegionSchedulingStrategy + EdgeManagerBuildUtil CLEAN
|
||
|
||
## Files Scanned
|
||
|
||
- `flink-runtime/src/main/java/org/apache/flink/runtime/scheduler/strategy/PipelinedRegionSchedulingStrategy.java`
|
||
- `flink-runtime/src/main/java/org/apache/flink/runtime/executiongraph/EdgeManagerBuildUtil.java`
|
||
|
||
## Verdict: CLEAN
|
||
|
||
### PipelinedRegionSchedulingStrategy
|
||
|
||
All membership-tested collections use appropriate hash-based structures:
|
||
- `scheduledRegions` — `Collections.newSetFromMap(new IdentityHashMap<>())` → O(1) contains
|
||
- `crossRegionConsumedPartitionGroups` — `Collections.newSetFromMap(new IdentityHashMap<>())` → O(1) contains
|
||
- `partitionGroupConsumerRegions` — `IdentityHashMap` keyed lookup → O(1)
|
||
- `regionsToSchedule` — `HashSet<SchedulingPipelinedRegion>` → O(1) contains
|
||
|
||
`isRegionSchedulable()` calls `regionToSchedule.contains(region)` and `scheduledRegions.contains(region)` — both O(1). No CWE-407 present.
|
||
|
||
### EdgeManagerBuildUtil
|
||
|
||
No membership tests (`contains`, `anyMatch`) inside loops. The utility builds edge connectivity structures by iterating once over input lists and writing to output lists/maps. Pattern is O(V × E) construction with no quadratic membership checks.
|
||
|
||
## Scan date: 2026-03-27
|