Skip to content

Conversation

@platinumhamburg
Copy link
Contributor

This change enhances the UpsertWriter API to return bucket and log end offset information in UpsertResult and DeleteResult, which is essential for implementing exactly-once semantics in Flink sink connectors.

Changes:

  • Add bucket and logEndOffset fields to UpsertResult and DeleteResult
  • Extend WriteCallback interface to include bucket and logEndOffset parameters
  • Add log_end_offset field to PbPutKvRespForBucket protobuf message
  • Update Sender to propagate log end offset from server response to callbacks
  • Add sendWithResult() method in AbstractTableWriter for result-aware writes
  • Add integration tests for log end offset tracking

The log end offset (LEO) represents the offset of the next record to be written, allowing Flink sink to track checkpoint offsets for exactly-once delivery.

Purpose

Linked issue: close #2529 2529

Brief change log

Tests

API and Format

Documentation

… for exactly-once semantics

This change enhances the UpsertWriter API to return bucket and log end offset
information in UpsertResult and DeleteResult, which is essential for
implementing exactly-once semantics in Flink sink connectors.

Changes:
- Add bucket and logEndOffset fields to UpsertResult and DeleteResult
- Extend WriteCallback interface to include bucket and logEndOffset parameters
- Add log_end_offset field to PbPutKvRespForBucket protobuf message
- Update Sender to propagate log end offset from server response to callbacks
- Add sendWithResult() method in AbstractTableWriter for result-aware writes
- Add integration tests for log end offset tracking

The log end offset (LEO) represents the offset of the next record to be written,
allowing Flink sink to track checkpoint offsets for exactly-once delivery.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Return log end offset in UpsertResult and DeleteResult for exactly-once semantics

1 participant