public Map<String, CheckpointableWatermark> getCommittableWatermarks() { Map<String, CheckpointableWatermark> commitableWatermarks = new HashMap<String, CheckpointableWatermark>(_watermarksMap.size()); for (Map.Entry<String, Deque<AcknowledgableWatermark>> entry: _watermarksMap.entrySet()) { String source = entry.getKey(); Iterable<AcknowledgableWatermark> watermarks = entry.getValue(); AcknowledgableWatermark highestWatermark = null; for (AcknowledgableWatermark watermark: watermarks) { if (watermark.isAcked()) { highestWatermark = watermark; } else { // hopefully we've already found the highest contiguous acked watermark break; } } if (highestWatermark != null) { commitableWatermarks.put(source, highestWatermark.getCheckpointableWatermark()); } } return commitableWatermarks; }
public Map<String, CheckpointableWatermark> getUnacknowledgedWatermarks() { Map<String, CheckpointableWatermark> unackedWatermarks = new HashMap<>(_watermarksMap.size()); for (Map.Entry<String, Deque<AcknowledgableWatermark>> entry: _watermarksMap.entrySet()) { String source = entry.getKey(); Iterable<AcknowledgableWatermark> watermarks = entry.getValue(); AcknowledgableWatermark lowestUnacked = null; for (AcknowledgableWatermark watermark: watermarks) { if (!watermark.isAcked()) { lowestUnacked = watermark; break; } } if (lowestUnacked != null) { unackedWatermarks.put(source, lowestUnacked.getCheckpointableWatermark()); } } return unackedWatermarks; }
private void writeEnvelope(ConsoleWriter consoleWriter, String content, String source, long value) throws IOException { CheckpointableWatermark watermark = new DefaultCheckpointableWatermark(source, new LongWatermark(value)); AcknowledgableWatermark ackable = new AcknowledgableWatermark(watermark); RecordEnvelope<String> mockEnvelope = (RecordEnvelope<String>) new RecordEnvelope<>(content).addCallBack(ackable); consoleWriter.writeEnvelope(mockEnvelope); Assert.assertTrue(ackable.isAcked()); }
public Map<String, CheckpointableWatermark> getUnacknowledgedWatermarks() { Map<String, CheckpointableWatermark> unackedWatermarks = new HashMap<>(_watermarksMap.size()); for (Map.Entry<String, Deque<AcknowledgableWatermark>> entry: _watermarksMap.entrySet()) { String source = entry.getKey(); Iterable<AcknowledgableWatermark> watermarks = entry.getValue(); AcknowledgableWatermark lowestUnacked = null; for (AcknowledgableWatermark watermark: watermarks) { if (!watermark.isAcked()) { lowestUnacked = watermark; break; } } if (lowestUnacked != null) { unackedWatermarks.put(source, lowestUnacked.getCheckpointableWatermark()); } } return unackedWatermarks; }
public Map<String, CheckpointableWatermark> getCommittableWatermarks() { Map<String, CheckpointableWatermark> commitableWatermarks = new HashMap<String, CheckpointableWatermark>(_watermarksMap.size()); for (Map.Entry<String, Deque<AcknowledgableWatermark>> entry: _watermarksMap.entrySet()) { String source = entry.getKey(); Iterable<AcknowledgableWatermark> watermarks = entry.getValue(); AcknowledgableWatermark highestWatermark = null; for (AcknowledgableWatermark watermark: watermarks) { if (watermark.isAcked()) { highestWatermark = watermark; } else { // hopefully we've already found the highest contiguous acked watermark break; } } if (highestWatermark != null) { commitableWatermarks.put(source, highestWatermark.getCheckpointableWatermark()); } } return commitableWatermarks; }