Class CountingSource.CounterMark

java.lang.Object
org.apache.beam.sdk.io.CountingSource.CounterMark
All Implemented Interfaces:
UnboundedSource.CheckpointMark
Enclosing class:
CountingSource

@DefaultCoder(CounterMarkCoder.class) public static class CountingSource.CounterMark extends Object implements UnboundedSource.CheckpointMark
The checkpoint for an unbounded CountingSource is simply the last value produced. The associated source object encapsulates the information needed to produce the next value.
  • Constructor Details

    • CounterMark

      public CounterMark(long lastEmitted, Instant startTime)
      Creates a checkpoint mark reflecting the last emitted value.
  • Method Details

    • getLastEmitted

      public long getLastEmitted()
      Returns the last value emitted by the reader.
    • getStartTime

      public Instant getStartTime()
      Returns the time the reader was started.
    • finalizeCheckpoint

      public void finalizeCheckpoint() throws IOException
      Description copied from interface: UnboundedSource.CheckpointMark
      Called by the system to signal that this checkpoint mark has been committed along with all the records which have been read from the UnboundedSource.UnboundedReader since the previous checkpoint was taken.

      For example, this method could send acknowledgements to an external data source such as Pubsub.

      Note that:

      • This finalize method may be called from any thread, concurrently with calls to the UnboundedSource.UnboundedReader it was created from.
      • Checkpoints will not necessarily be finalized as soon as they are created. A checkpoint may be taken while a previous checkpoint from the same UnboundedSource.UnboundedReader has not yet be finalized.
      • In the absence of failures, all checkpoints will be finalized and they will be finalized in the same order they were taken from the UnboundedSource.UnboundedReader.
      • It is possible for a checkpoint to be taken but this method never called. This method will never be called if the checkpoint could not be committed, and other failures may cause this method to never be called.
      • It is not safe to assume the UnboundedSource.UnboundedReader from which this checkpoint was created still exists at the time this method is called.
      Specified by:
      finalizeCheckpoint in interface UnboundedSource.CheckpointMark
      Throws:
      IOException