Giriş
Bu sınıf dahili bir kod, yani bilmemize ve kullanmamıza gerek yok. Ancak ben bazı şeyleri not almak istedim. Sınıf şöyle.
public class KeyedWatermarkCoalescer {private final int queueCount;private final Map<Byte, WatermarkCoalescer> coalescers = new HashMap<>();private final Set<Integer> doneQueues = new HashSet<>();private final boolean[] idleQueues;...}
idleQueues takibi
idleQueues neden takip ediliyor bilmiyorum.
Eğer bir kuyruğa event gelirse artık bu kuyruk idle değil
public void observeEvent(int queueIndex) {
for (WatermarkCoalescer c : coalescers.values()) {
c.observeEvent(queueIndex);
}
idleQueues[queueIndex] = false;
}Eğer Watermark gelirse ve bu IDLE_MESSAGE ise kuyruk idle yapılıyor
public List<Watermark> observeWm(int queueIndex, Watermark watermark) {
if (watermark.equals(IDLE_MESSAGE)) {
idleQueues[queueIndex] = true;
...
}
...
}
Hiç yorum yok:
Yorum Gönder