Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions rust/NEXT_CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,7 @@

### Bug Fixes

- **Arrow Flight — acknowledgment deadlines remain active during graceful close** (Beta): a server close signal no longer pauses or extends an already-running batch deadline. Repeated close signals preserve the earliest recovery deadline, while a valid acknowledgement already ready at either deadline is applied before recovery is considered.
- **Arrow Flight — acknowledgment deadlines now start when work becomes pending** (Beta): no timer runs while the stream is idle. The timeout is an absolute deadline for the oldest pending batch: acknowledgments that leave that batch pending do not refresh it, replayed batches receive a fresh deadline on their recovered connection, and malformed or non-progressing responses cannot indefinitely postpone recovery. A valid acknowledgment already ready at expiry is applied before recovery is considered.
- **Arrow Flight — acknowledgment watermarks are handled monotonically** (Beta): delayed, duplicate, or backward watermarks are absorbed without moving durable progress backward. A forward watermark that claims more records than were submitted on the active connection is rejected without making buffered, unsent records appear durable.

Expand Down
5 changes: 3 additions & 2 deletions rust/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -804,8 +804,9 @@ For Arrow Flight streams *(Beta)*, `server_lack_of_ack_timeout_ms` is an
absolute limit on how long a batch may remain pending, not an inactivity
timeout. No timer runs while the stream is idle. Each batch's timer starts when
it becomes pending and is not refreshed when earlier batches are acknowledged.
Partial acknowledgments do not extend it. If recovery replays pending batches
on a new connection, their deadlines restart relative to that connection.
Partial acknowledgments and graceful close do not pause or extend it. If
recovery replays pending batches on a new connection, their deadlines restart
relative to that connection.
Configure the timeout together with `max_inflight_batches` so the server can
acknowledge a full allowed backlog within the timeout.

Expand Down
5 changes: 3 additions & 2 deletions rust/sdk/src/arrow_configuration.rs
Original file line number Diff line number Diff line change
Expand Up @@ -70,8 +70,9 @@ pub struct ArrowStreamConfigurationOptions {
///
/// No timer runs while there are no pending batches. Each batch's timer starts when it
/// becomes pending and is not refreshed when earlier batches are acknowledged. Partial
/// acknowledgments do not extend it. Configure this timeout and `max_inflight_batches`
/// so the server can acknowledge a full allowed backlog within the timeout.
/// acknowledgments do not extend it, and graceful close does not pause it. Configure
/// this timeout and `max_inflight_batches` so the server can acknowledge a full allowed
/// backlog within the timeout.
/// After recovery, replayed batches receive a fresh deadline relative to the recovered
/// connection. If a batch remains pending when its deadline expires, the stream is
/// considered failed and recovery is triggered (if enabled).
Expand Down
Loading
Loading