Uploaded image for project: 'Flink'
  1. Flink
  2. FLINK-6349

Enforce per-subtask record ordering on resharding for FlinkKinesisConsumer

    XMLWordPrintableJSON

Details

    Description

      As described in FLINK-6316, currently the Kinesis consumer does not provide any ordering guarantees when resharding occurs.

      While this cannot be enforced globally (i.e. if a merged / split shard's child shard ends up in a different subtask, we cannot do any coordination for ordering guarantee), we can definitely enforce this locally for each subtask. Simply put, we can still locally enforce ordering by making sure that discovered child shards are consumed only after any of its parent shards that were on the same subtask are fully consumed.

      To do this, we would also need to add "parent shard" information to KinesisStreamShard (Flink's representation of Kinesis shards).

      This would be directly beneficial for per-shard watermarks (FLINK-5697) to retain per-shard time characteristics after a reshard, and therefore can be seen as a prerequisite.

      Attachments

        Issue Links

          Activity

            People

              Unassigned Unassigned
              tzulitai Tzu-Li (Gordon) Tai
              Votes:
              1 Vote for this issue
              Watchers:
              5 Start watching this issue

              Dates

                Created:
                Updated: