|
72 | 72 | //! assert_eq!(results[2], ((Location::new_target(2, 0), 17), -1));
|
73 | 73 | //! ```
|
74 | 74 |
|
75 |
| -use std::collections::{BinaryHeap, HashMap, HashSet, VecDeque}; |
| 75 | +use std::collections::{BinaryHeap, HashMap, VecDeque}; |
76 | 76 | use std::cmp::Reverse;
|
77 | 77 |
|
78 | 78 | use progress::Timestamp;
|
@@ -249,8 +249,6 @@ pub struct Tracker<T:Timestamp> {
|
249 | 249 | /// Compiled summaries from each internal location (not scope inputs) to each scope output.
|
250 | 250 | // output_summaries: HashMap<Location, Vec<Antichain<T::Summary>>>,
|
251 | 251 | output_changes: Vec<ChangeBatch<T>>,
|
252 |
| - |
253 |
| - global_frontier: HashSet<(Location, T)>, |
254 | 252 | }
|
255 | 253 |
|
256 | 254 | struct PerOperator<T: Timestamp> {
|
@@ -378,7 +376,6 @@ impl<T:Timestamp> Tracker<T> {
|
378 | 376 | worklist: BinaryHeap::new(),
|
379 | 377 | pushed_changes: ChangeBatch::new(),
|
380 | 378 | output_changes,
|
381 |
| - global_frontier: HashSet::new(), |
382 | 379 | }
|
383 | 380 | }
|
384 | 381 |
|
@@ -486,37 +483,6 @@ impl<T:Timestamp> Tracker<T> {
|
486 | 483 | &mut self.pushed_changes
|
487 | 484 | }
|
488 | 485 |
|
489 |
| - /// A reference to the minimal pointstamps in the scope. |
490 |
| - pub fn global(&self) -> &HashSet<(Location, T)> { |
491 |
| - |
492 |
| - // A pointstamp (location, timestamp) is in the global frontier exactly when: |
493 |
| - // |
494 |
| - // 1. `self.pointstamps[location]` has count[timestamp] > 0. |
495 |
| - // 2. `self.implications[location]` has count[timestamp] == 1. |
496 |
| - // |
497 |
| - // Such a pointstamp would, if removed, cause a change to `self.implications`, |
498 |
| - // which is what we track for per operator input frontiers. If the above do not |
499 |
| - // hold, then its removal either 1. shouldn't be possible, or 2. will not affect |
500 |
| - // the output of `self.implications`. |
501 |
| - // |
502 |
| - // As we grind through changes to `self.implications` we *should* be able to |
503 |
| - // notice changes to the above properties. At least, we can notice as the counts |
504 |
| - // for `self.implications` changes to and from 1. |
505 |
| - |
506 |
| - // There are some monotonicity properties we could perhaps exploit. A pointstamp |
507 |
| - // may have its `self.poinstamps` incremented to non-zero only when it is in |
508 |
| - // advance of its `self.implications`, it may then enter the global frontier |
509 |
| - // when this count goes to one, and it may then depart when its count goes to zero. |
510 |
| - // A pointstamp cannot return to the global frontier once departed. |
511 |
| - |
512 |
| - // Alternately, perhaps, we could just have a slighly more complicated test for |
513 |
| - // "is in global frontier" where we just test these properties for stashed updates. |
514 |
| - // We might need to re-check for many (all?) stashed updates, unless we can track |
515 |
| - // which have potentially changed (which we can do, I think). |
516 |
| - |
517 |
| - unimplemented!() |
518 |
| - } |
519 |
| - |
520 | 486 | /// Indicates if pointstamp is in the scope-wide frontier.
|
521 | 487 | ///
|
522 | 488 | /// A pointstamp (location, timestamp) is in the global frontier exactly when:
|
|
0 commit comments